1. DNS/毒盛再考/ゾーンなしドメイン名
ゾーンとしては存在していないドメイン名は偽NSという毒で偽委譲され易い
1.1. ゾーンではない属性JP
属性JPドメインでは xxxxxx.co.jp のようなドメイン名を使っています。
- これらのゾーンは jp ゾーンから直接委譲されています。 co.jp からではありません。
co.jp というゾーンは存在していない。
- co.jp NS を問い合せてみるか、co.jp のサブドメインを jp サーバに問い合せてみるかすると分かります。
1.2. 偽 co.jp ゾーン返答の可能性
この構成を利用して、co.jp ゾーンが存在するかのような偽返答を返してやると、 比較的簡単にキャッシュへの毒盛が成功すると考えました。
DNS/毒盛/Mueller手法(Kaminsky攻撃を利用)を単純に適用するだけのものです。
毒盛可能なことをJPRSに連絡しました。 (第一報は2014-2-15)
危険性について、JPRSは一部のキャッシュサーバ提供業者には説明しているようです。
- 一般向けに注意喚起はするつもりはなさそうなので、危険が存在することを鈴木さんが公表されました。
私は以前から、Mueller 手法を説明しています。これを機会に co.jp を例に毒を入れる方法の説明をします。 -- ToshinoriMaeno 2014-04-28 08:08:39
1.3. co.jp zone への毒盛
co.jp がゾーンとして、 jp から委譲(委任)されているかのように NS レコードをキャッシュさせる。
- Kaminsky 型攻撃 : キャッシュされていそうもない名前 $$(random).co.jp を問い合せる。
- キャッシュにない場合、キャッシュは jp NS サーバに問い合せる。
- 通常の返事はNXDOMAINだろう。
- キャッシュにない場合、キャッシュは jp NS サーバに問い合せる。
- Mueller 攻撃(偽返答): co.jp NS がキャッシュされていないことを利用する。
- co.jp NS xxx という返答を送りつける。 (co.jp zone は存在していないので、キャッシュにはないはず)
- 通常返答のチェックを通れば、 co.jp NS としてキャッシュされる。 TTL 限界まで生き残ることを期待する。
- もともとゾーンとしては存在しないので、通常返答では NS が上書きされることもない。
- キャッシュされていない *.co.jp が問い合せられた場合にはこの偽NSが使われる。 (毒として効果を示す; キャッシュの通常動作)
- NS の TTL 期間はキャッシュされる可能性がある。 (Ghost Domain Names 脆弱性があれば、いつまでも残るかも)
このように非常に簡単にco.jp のような重要なドメインが乗っ取れる。
- ここでは RFC2181 のようなキャッシュ上書き原則は関係していないことに注意してください。
-- ToshinoriMaeno 2014-04-29 03:10:33
1.4. 背景
Mueller 手法は Kaminsky 講演とおなじ 2008 年に公表され、2009年にはKaminsky も取り上げています。
これほど簡単な話をDNS専門家が知らなかったとは考えづらいのです。
攻撃する側はすでに十分な知識を持っているはずなのに、対策すべき側のほとんどのひとに知らされていない。
そして、連絡して3ヶ月が過ぎたいまも、一般には対応(注意喚起)されていないのです。-- ToshinoriMaeno 2014-05-14 22:56:11
このまま黙って待っていることはできない、ということで公開しているものです。 -- ToshinoriMaeno 2014-04-29 10:00:23
co.jp に毒盛できたからと言って、 jp や net のような TLD に対して簡単に毒が入るものではありません。
- co.jp だけで十分危険だと思っていただければ幸いです。