1. DNS/毒盛再考/co.jp毒盛
ゾーンとしては存在していない co.jp ドメインにはNSレコードなどの毒を入れやすい。
1.1. 偽 co.jp ゾーン
キャッシュサーバに対して、co.jp 毒(NS)が入って、効果を示すまでの流れを説明してみましょう。
query |
キャッシュされたRRSet |
問い合せ先 |
返答 |
毒 |
(start) |
root, jp NS あり |
|
|
|
$.co.jp |
|
jp |
nxdomain |
偽co.jp委譲 |
(毒が入る) |
root, jp, co.jp NS |
|
|
|
$.co.jp |
root, jp, co.jp |
co.jp(偽) |
毒返答 |
-- |
$.co.jp |
root, jp, co.jp |
jp |
nxdomain |
偽co.jp委譲 |
毒がキャッシュされた直後でも jp サーバからは nxdomain が返ってくるので、上書きされて無毒化されることはない。
偽返答でキャッシュに毒が入っても、並列実行された問い合せに対する正規の返答が 毒を消すということがない。そのことを示すことも毒が入る説明では重要だと思いました。 (キャッシュからゾーンサーバへの問い合せは攻撃のために並列して行われているからです。)
jp NS が消えた状態は想定していません。(話を複雑にしたくなかったためです。演習問題)
1.2. dns.jp ゾーン毒盛
../dns.jp ゾーンについても同様の説明ができるはずです。 (親子同居が危険なことはJPRSの指摘です。)
- dns.jp 正規 NS がキャッシュにない状態を保ちつづけることができることを示せば十分でしょう。
ただし、それがjpゾーン全体への毒盛につながるかどうかは検討課題です。 -- ToshinoriMaeno 2014-05-17 22:53:35
1.3. 誤解される説明
co.jp の件は 「事前に NS のキャッシュがないか容易に上書きでき、本物の応答に邪魔されないノードが危険である」 という表現では誤解されると思う。
- 事前(毒盛より前) にNSがキャッシュされていない、だけではなく、本物の返答でもキャッシュされることがない。
- NSレコードが存在していないドメイン名だから。 (Mueller 手法全般に言えること)
- それを邪魔されないという表現から読み取れるかどうか。 (毒盛に詳しいはずのひとすら、正しく理解していそうもない。)
厳密には攻撃では毒NS以外はキャッシュされることがない。
- それがco.jp (ドメイン名)の現在の特徴です。 キャッシュの上書きはまったく関係のない話なので、分けて考えるべき項目です。
1.4. NS レコードがキャッシュされていないドメイン名が危ない
JPRSは jp/dns.jp ゾーンの同居を解消しただけで、その理由の説明も十分にはしていません。
他の問題はどうするのでしょうか。 co.jp ドメインはゾーンに分離しないのでしょうか。
1.5. JPRS の言い訳
本件は新しい問題ではない。
- これは正しくない。Kaminsky, Mueller 攻撃手法は 2008年に公表されているが、
- JPドメインが攻撃に弱いことは指摘されるまで気づいていなかったと思われるからだ。
「ポートランダム化以外の対策も提案、実装されている」 と言いながら、jp/dns.jpゾーンの分離以外の対応は進んでいない。
- 例えば、co.jp ドメインにNSレコードを毒として注入することは相対的に容易である。なぜ、対策しないのか。
そして、一番の問題:
- ゾーン分離されていないempty-node の危険性については、「警告」すら行われていない。
- みずからに問題を抱えていては、他者への警告どころではないのだろう。
-- ToshinoriMaeno 2014-08-03 11:53:38