## page was renamed from DNS/キャッシュ毒盛/攻撃/2 ## page was renamed from DNS/キャッシュ毒盛/攻撃2 ## page was renamed from DNS/キャッシュサーバ毒盛/攻撃2 == DNS/キャッシュサーバへの毒盛/攻撃2 == [[../Kaminskyの攻撃手法]]ではTTLの満期を待つ必要がない。 {{{ キャッシュになさそうな問い合わせをする。 $R.qmail.jp }}} ($R は適当にランダムに生成した文字列) これなら本来のサーバとのレースに勝つことで毒が入るかもしれない。 {{{ でも、こんな名前に毒をつけても誰もひっかからない。使われないから。 }}} == ドメイン委譲の仕組みを悪用する == これは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 に送られるものとする。 防御のあまいキャッシュだと毒を受け取ってしまう。(レースに勝つ必要はある。)  qmail.jp の NS レコードが上書きされる。 (毒) 本来のサーバからの返事はこんなもの(当該名なし-->ネガティブキャッシュされる) {{{ $ 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 }}} この毒入れには対策法もある。 * answer section が存在する場合、authority section を無視すればよい。  キャッシュの効率は下がるが、防毒を優先すべきだ。 しかし、answer section をもたない返答をされると回避される。 == もうひと工夫 == answer は無くて、 authority (+additional)の返事なら、受け取るものが多いだろう。 {{{ authority: qmail.jp NS www.qmail.jp additional: www.qmail.jp A *.*.*.* (glue 扱いされてもよい。) }}} これでも、www.qmail.jpのAレコードがキャッシュにあると、防御できるかもしれない。 もし毒が入れば、あとは、www.qmail.jp の A が尽きるのを待つ。  それまでにqmail.jp の NS レコードが上書きされないことを期待する。   TTLを十分長くしておけば、消えることはないだろう。 www.qmail.jp の A の問い合わせをさせる。(attacker-hostに来る)  偽 A をキャッシュさせる。 {{{ A だけでなく、qmail.jp ドメインをまるごと乗っ取ったことになる。 }}} Kaminsky 型の攻撃で毒が入ったと言っているページの説明はこういうのが多い。  内部名+glueという形のものの場合は古いBINDか、不良BINDという条件が必要になる。   Kaminsky の説明スライドでは attacker-host が www.example.com となっていて、   そのglueも含まれている返答を用いている。 qmail.jp の NS (ホスト)に問い合わせしたのだから、 NSのキャッシュは置き換えないという対策もありえる。 ----- [[DNS/Kaminskyの攻撃手法/講演のスライド(18)]] は間違いを含んでおり、毒入れできない。 前野のベストの修正案: {{{ $RANDOM.www.foo.com について query を送る }}} 問合せる相手は foo.com の権威サーバである。 その偽返答 (referral)はこういうものにする。 www.foo.com IN NS attaker-host [authority section]  www.foo.com の A レコードなどがキャッシュにあっても構わない。 この方法のより詳しい説明: [[../攻撃3]] ---- これらの説明から、毒盛(毒入れ)の危険性は存在することが示された。 しかし、DNSSECのような大げさな対策をしなくとも実用的な対策は可能で あることも知ってほしい。