== DNS/毒盛/go.jp攻略への道 == <> co.jpに対する偽NSレコードをリゾルバーに送り込めるということを2014年に警告しましたが、  2016年に至っても注意喚起すらない状態ですので、危険性はないとみなされていると判断します。 危険ではないのか、各人で判断していただけるように、手口を紹介します。。  Kaminsky流の攻撃手法は理解していただいているものと仮定します。 == Muellerの指摘 == {{{ NSレコードをもたないドメイン名にはNSレコードを追加する攻撃が成立する。 }}} とくに、co.jpやgo.jpのようなレコードをひとつも持たないドメイン名(2014年にTXTレコードが追加された)には毒盛しやすい。 == 攻撃手法 == 1. リゾルバーに$random.go.jpのAを問い合わせる。 キャッシュにはない。jp NSはキャッシュされているとする。 2. リゾルバーはa.dns.jp (JP NS)に問い合わせを送る。      a.dns.jpはNXDOMAIN返答を返す。(negative cachingの対象) 3. NXDOMAINがキャッシュされても、次の問い合わせに対する障害にはならない。(Kaminskyの指摘)    次の返答が a.dns.jpとの競争に勝つまで1.を繰り返す。 4. 問い合わせに対する以下の偽返答を(a.dns.jpを騙って)送りつける。(Muellerの指摘)     go.jp NS evil-host [go.jp は evil-hostに委任されている] 5. 偽返答が受け取られたら、毒盛成功である。     以降、go.jp 下のドメインに対する問い合わせはすべてevil-hostに送られる。(乗取りの成功) 攻撃前にはgo.jp NSはキャッシュにないことは確実である。(キャッシュの上書きは障害にならない。) 用心深いリソルバーであれば、毒を受け入れないこともある。それはこのページの範囲外w -- ToshinoriMaeno <> == 経緯 == Kaminsky-Muellerの手法により攻略しやすいドメインがJP下に存在することは2014年に前野が気付き、 鈴木がBINDキャッシュで確認した。JPRSはこれを「委任インジェクション」と呼んでいる。 さらに親子ゾーンが同居している場合にも毒盛脆弱であることはJPRSが指摘している。 当時のdns.jpゾーンはjpゾーンと同居状態であったが、7月ころにjpゾーンから分離された。 -- ToshinoriMaeno <> キャッシュにあるNSを上書きする手法も存在するが、こちらはリゾルバーの実装不良であると考える。 控えめに言っても毒盛脆弱性である。 -- ToshinoriMaeno <> == 防衛策 == 防衛は簡単である。NXDOMAINについてくるSOAレコードを活用すればよい。 -- ToshinoriMaeno <> この防衛手法は2022年現在も見かけない。 ---- <>