<> = DNS/毒盛/入門 = リゾルバーになんらかの「偽造返答を受け取らせる」ことが最初の関門です。 * それにはリゾルバーに「問い合わせを送りださせる」ことが重要です。    送ってもいない問い合わせに対する返答を受け取るリゾルバーがないとは言えませんが。 * どこからの問い合わせにも返答する「オープンリゾルバー」はこの危険性を抱えています。 [[../キャッシュサーバ]]はキャッシュにある情報は通常は問い合わせを送出しません。  Kaminskyはリゾルバーに「次々と」問い合わせを送り出させる攻撃手法を示しました。(2008年)  [[DNS/毒盛/Kaminsky手法|Kaminsky流攻撃手法]] そして、ここでは、どういう返答であればキャッシュに取り込まれるか、 つまり[[/有効な毒]]となるかを考えます。 あとは誰かがキャッシュにある偽の情報を参照するのを待ちます。 == 関連用語 == 入門書(!!)で説明をする必要のある項目、チェックリストとしても使おう。 DNSの基礎知識は前提にする。 = 毒盛シナリオ = == 利用者と攻撃者 == 人間あるいはソフトウェア  どこからどこを攻撃するか (おなじネットワークなら簡単。内部犯) == DNS キャッシュサーバ == 毒盛対象のキャッシュサーバ(ホスト) 実装の種類にもよる(BINDが一番あやしげ) == DNS問い合せ(きっかけ) == 攻撃開始: Kaminsky 流攻撃では「キャッシュされていないレコード」を問い合せる。 外部に問い合せを送らせて、その偽返答で毒入れする。  攻撃対象のキャッシュサーバに直接問い合せするのが簡単(オープンリゾルバー)だが、それだけではない。   ISPの共用キャッシュサーバはオープンリゾルバーも同然だ。   spam 対策のためにDNSを利用していたら、 内輪で利用しているキャッシュサーバだって。 == DNS問い合せ == キャッシュにないレコードが(返答のために)必要になると、キャッシュサーバは外部(ゾーンサーバなど)へ問い合せる。  通常はゾーン(権威)サーバへ問い合せられる。 別のキャッシュサーバに問い合せることもある。(fowarding) このときに「問い合せポートが固定」だと毒を受けとり易い。 (DNSの仕様不備といえる) == DNS返答(期待される返答) == Kaminsky 流攻撃の問い合せに対しては、本来のサーバからはNXDOMAIN返答が返ってくる。  キャッシュ(ネガティブ)されるが、影響はない。 == DNS偽返答(毒) == 返答に見せかけた返答を送り込む。(委譲返答を使うのがMueller)  そんなことがなぜ可能なのか。 --> UDP だから === 受け取らせる条件 === タイミング、問い合せ(query string)、TXID、port === 受け取らないための対策 === ポートランダム化、 問い合せのエントロピー増強、 拡張仕様(TXID が16ビットだなんて) そもそも問い合せをするのが問題かもしれない。 == 偽返答をキャッシュさせるには == 現状は受け取った返答が偽返答だと疑う実装はすくない。 (Deadwood は別格)  偽返答はこないという前提になっている。 (RFC2181なども) 参照返答(上位からの委譲返答、あるいはゾーンサーバからの移転返答)がキャッシュされやすい。 (Kaminsky, Mueller ) いまや、毒盛の常識。 Kaminsky の示した例はなぜか毒として有効にならない。   民田による改訂版がKaminsky の意図したものだということにはならない。 キャッシュにないレコード(ドメイン名、レコードタイプ)がキャッシュされやすい。(Mueller 手法、 前野らの探索) 上書き: Ranking(RFC2181)を考慮すると毒をいれやすい。 (鈴木) == 毒の有効性 == 期間, 効果 キャッシュさせても、直ちに毒の効果が現れるとはかぎらない。 (TTLが関係する) キャッシュさせても、正規の返答で上書きされると毒の効果が発揮されない。 (RFC2181や glue の扱い) -- ToshinoriMaeno <> == 毒盛対策 == 毒が入るまでの手順が理解できたら、それが成功しないようにじゃまをすること  いろんな対策が考えられるだろう。 -- ToshinoriMaeno <> == ゾーンサーバを使った毒 == Kaminsky 流攻撃だけが、毒盛手段ではない。  「浸透いうな!」、[[DNS/脆弱性/GhostDomainNames]] [[../Kashpureff型攻撃]] https://en.wikipedia.org/wiki/AlterNIC こんなサービス: http://www.ipillion.com/ip/208.91.197.132 ---- <>