警告: http://www.e-ontap.com/blog/20080831.html インターノット崩壊論者の日記などをみて、 こちらにやってこられた方へ


1. DNS/攻撃手法の説明

現状の DNS (特にキャッシュ)にはさまざまな脆弱性(の歴史)が存在します。

1.1. キャッシュサーバの脆弱性 (1)

1.2. キャッシュサーバの脆弱性 (2)

1.3. Kaminsky の発見した攻撃法 (2008-08-06 公開)

多数の問合せを送りださせ、その返答として偽パケットを送りつけます。 transaction ID が合致することを期待する方法です。

../Kaminskyの攻撃手法

公開されている攻撃コード: Kaminsky の発見に基づくとあります。 http://www.caughq.org/exploits/CAU-EX-2008-0002.txt http://www.caughq.org/exploits/CAU-EX-2008-0003.txt

多数の問合せをさせる方法は Kaminsky の方法以外にもたくさん存在するようです。

2. 基本対策

  1. query port randomization などの entropy 増大策 (patch も)
  2. アクセス制限 (公開は非常に危険)
  3. コンテンツサーバとの分離
  4. 外部からのトラフィック制限 (監視)

Kaminsky は「まずは port randomizationを」と言っています。議論はその後で。

2.1. 毒入れは簡単ではない

port と transaction ID が一致するだけで必らず毒入れされる訳ではありません。

しかしながら、毒盛手法(**)は存在しますから、 『patch しなくても安全という意味ではありません。』 念のため。


(**) re-delegation 攻撃: /Bernhard Muellerによりre-delegation攻撃という方法が公表されています。


毒盛手法がきちんと説明されていないことの背景は以下のようなものでしょう。

2.2. 対抗手段

解決策ではありません。提案されているものなどの紹介です。

glue を受入れてよいかの条件を見直す。

問合せに TCP を使うなどの影響が大きそうな対策は別途検討します。

DNSCurveを使うのもいいでしょう。

2.3. 功罪

キャッシュを優先すると、サーバの変更に即時追従できなくなる。

3. 参考資料

../毒盛の脆弱性

RFC 2181 Clarifications to the DNS Specification


前野年紀 質問歓迎