1. DNS/キャッシュサーバへの毒盛/攻撃2

../Kaminskyの攻撃手法ではTTLの満期を待つ必要がない。

キャッシュになさそうな問い合わせをする。 $R.qmail.jp 

($R は適当にランダムに生成した文字列)

これなら本来のサーバとのレースに勝つことで毒が入るかもしれない。

でも、こんな名前に毒をつけても誰もひっかからない。使われないから。

2. ドメイン委譲の仕組みを悪用する

これはKaminsky以前から知られていた手法だが、TTLの制約で守られると思われていた。

DNS返答を以下のようにする。 (返答は一番ありそうな qmail.jp DNSサーバからのものを偽装する。)

answer: $R.qmail.jp A *.*.*.*
authority: qmail.jp NS attacker-host

この返事は委譲ではないので、authorityは無視してK舞わない。

問い合わせはqmail.jp の NSのひとつ a.ns.qmail.jp に送られるものとする。

防御のあまいキャッシュだと毒を受け取ってしまう。(レースに勝つ必要はある。)

本来のサーバからの返事はこんなもの(当該名なし-->ネガティブキャッシュされる)

$ dnsq a zzz.qmail.jp a.ns.qmail.jp
1 zzz.qmail.jp:
84 bytes, 1+0+1+0 records, response, authoritative, nxdomain
query: 1 zzz.qmail.jp
authority: qmail.jp 86400 SOA a.ns.qmail.jp hostmaster.m.qmail.jp 1295430114 16384 2048 1048576 86400

この毒入れには対策法もある。

3. もうひと工夫

answer は無くて、 authority (+additional)の返事なら、受け取るものが多いだろう。

authority: qmail.jp NS www.qmail.jp
additional: www.qmail.jp A *.*.*.*   (glue 扱いされてもよい。)

これでも、www.qmail.jpのAレコードがキャッシュにあると、防御できるかもしれない。

もし毒が入れば、あとは、www.qmail.jp の A が尽きるのを待つ。

www.qmail.jp の A の問い合わせをさせる。(attacker-hostに来る)

A だけでなく、qmail.jp ドメインをまるごと乗っ取ったことになる。

Kaminsky 型の攻撃で毒が入ったと言っているページの説明はこういうのが多い。

qmail.jp の NS (ホスト)に問い合わせしたのだから、 NSのキャッシュは置き換えないという対策もありえる。


DNS/Kaminskyの攻撃手法/講演のスライド(18) は間違いを含んでおり、毒入れできない。

前野のベストの修正案:

    $RANDOM.www.foo.com について query を送る

問合せる相手は foo.com の権威サーバである。

その偽返答 (referral)はこういうものにする。

この方法のより詳しい説明: ../攻撃3


これらの説明から、毒盛(毒入れ)の危険性は存在することが示された。 しかし、DNSSECのような大げさな対策をしなくとも実用的な対策は可能で あることも知ってほしい。