1. Kaminsky講演/対策1
Kaminsky のスライドにある攻撃方法は毒盛対策されたキャッシュに対しては成功の可能性は少ない。
../講演のスライド(18)からの引用
攻撃の内容
$RANDOM.foo.com についての query を送りつける。(start)
200個 の偽返答を送る。(返答の内容は矛盾のないように改訂; 別案 ../毒盛対策(2))
$RANDOM.foo.com IN NS www.foo.com [authority section] www.foo.com IN A 6.6.6.6 [additional section]
これで毒盛成功!
- この説明と同類の解釈を載せているページが大部分だ。
1.1. 対策は簡単
additional sectionにあるAレコードは狭義のglueではない。
- bailiwick検査をやっていれば、検出できるものである。 {当時のbindはやっていなかったのだろうか。}
この www.foo.com Aレコードは無視すればいい。
"glue ではない"のであるから、受け入れる必要はない。../Tony Finch の疑問
- ただし、foo.com サーバからの返答だと信じられるなら受け入れてよい。(dnscache の立場)
www.foo.com の A レコードは改めて検索すればいい。(すでにキャッシュされている可能性もある。)
BIND ではこの程度の防御もしていないのかもしれない。DNS/毒盛/Kashpureff型攻撃を参照せよ。
1.2. この対策で十分か
Kaminsky がスライドで示した例に対しての対策になっていても、 これがすべての同種の攻撃に対して有効かというと、残念ながらそうではない。
- Bernhard Mueller re-delegation を検索してみよ。
Kaminsky が成功の可能性の小さい例を示した真意は不明だが、 世間を説得するには十分だと考えたのだろう。
当面の対策としては (一年前だったら)
- 公開キャッシュサーバをやめる。
- キャッシュサーバの使うportをランダム化する。
ことが重要である。
DNSSECを普及させたい人達はDNSSECしか解がないようなことを言っているが、 それは嘘である。ほかにも方法はあるし、DNSSECが急速に普及する可能性は小さい。
Kaminsky の指摘と警告があっても対策されていない DNS サーバが多数ある現状では、 「DNS を信用しない」という態度が重要であると考える。 たとえ対策ずみであっても、(ISP 提供の)公開キャッシュサーバは危険である。
-- ToshinoriMaeno 2009-08-11 05:22:54