## page was renamed from DNS/用語/委任毒盛 ## page was renamed from DNS/委任毒盛 == DNS/委任毒盛 == <> 影響の大きさについてはセキュリティ専門家の意見も聞いた方がいいでしょう。 (理解できる人がいるかどうかはわかりません) JPRSの非公開スライドで「[[DNS/用語/JPRS用語/委任インジェクション攻撃]]」と名づけられたものを議論します。 参考: [[DNS/毒盛]] == 「委任インジェクション攻撃」とは == {{{ キャッシュ毒盛のひとつの手法で  「委任(委譲)返答」に現れるNSレコード値に毒盛するもの。 }}} NSレコードは委任返答以外にも現れるが、それらについては議論の対象外である。 効果的に毒盛するために、Kaminsky流攻撃手法(存在しない名前を問い合わせさせる)を利用する。 また、毒盛対象としては Mueller 攻撃法により、「キャッシュにないNS RRSet」 を用いる。    (*) Mueller paper を読み直すまではキャッシュされていないNSレコードを狙う(容易な)方法は見過ごしていた。  キャッシュされていても毒盛できることが分かっていたのが理由だろう。防御も実装されているキャッシュもあることだし。  -- ToshinoriMaeno <> ---- {{{ 攻撃対象となるドメイン名は前野が見つけたco.jpに限らないことが分かっている。 }}}  それらは目的のRRSet がキャッシュにないことがほぼ確実なドメイン名であり、  偽返答がある種の条件を満たせば、かならず受け入れられるものである。 www.google.com, www.qmail.jp などはAレコードはキャッシュされていても、  NS RRSet を毒注入できることに注意。 .net NS については、簡単とは思っていないが、前野の知らない理由がある可能性はある。  (キャッシュ上のNSを上書きするので) == これまでのキャッシュ毒盛に比べて、なにが新しいか == JPRSは毒盛対象として、A レコードしか考えていなかったようだ。 しかし、NSへの毒盛攻撃は以前から知られている。 (Mueller 2008 以前にもある可能性は高い) つまり、スライドにある「通常のキャッシュポイズニングとの違い」は無用な説明だということです。  森下さん(あるいは重複しか見ていないひとたち)にとっては NS攻撃は新しいかもしれないけど、  DNSプロにとっては常識であって欲しかった。 [JPRS が反省として告白するのなら、結構だと思う。] ただし、Mueller 報告では具体的な攻撃対象はあきらかにされていない。[当然の配慮]  キャッシュされていないNSがどういうものを指すのか、書きたくなかったのであろうと想像している。 [それが「広く知られる』ことがなかった遠因か。] {{{ JP管理下では co.jp などのゾーンが作られていないノード(NSレコードも存在しないはず)を攻撃する。 この攻撃対象の発見が今回の前野らの指摘の新しい点である。 毒盛に成功した場合に得られるものが、単一のAレコード毒盛に比べてはるかに大きという特徴がある。 被害が大きいので、ポートランダム化程度の防御では不十分と思われる。 }}} == 攻撃されやすいドメイン == 1. NS レコードがもともと作られていないドメイン名(前野の指摘) 2. NS レコードがキャッシュされる機会がほとんどないドメイン名(JPRSの指摘)    子ゾーンがあっても、親子同居しているケース (同居だけでは危ないとは言えないけど)     .net , root-servers.net は同居でしたか。  .net、 gtld-servers.net は同居ではありませんね。 これら以外のもの(net) なども含めるかどうか。 == キャッシュサーバでの対策 == Kaminsky 流攻撃手法(という道具)を利用しているので、道具が無効になるような防御方法が効果をしめす。  ポートランダム化を含むquery エントロピー増加策である。 TCP で問い合わせるのでもよい。 攻撃検知も。   これらに比べて、DNSSECは手間の割に得られるものが少ない。別の問題を引き起こすだろうから、今は勧めない。 偽委任(委譲)を判別することを強化する。 == ゾーンサーバでの対策 == NSレコードがキャッシュに残りやすくなるような構成にする。  特に毒を防ぎたい名前について。 親子同居をやめるのも一案。 dns.jp はなにかした方がよい。 -- ToshinoriMaeno <> == その他のNSへの毒盛 == Ghost Domain Names は「移転案内」(「転居通知」)型返答内のNSレコードへの毒盛だと考えることができます。  私はBINDの脆弱性だと考えていますが、委任インジェクションではないので、別途取り上げる必要がありそうです。 これら以外のNSへの毒盛は知る限りでは実装の不良なので、いまは扱わなくてもいいでしょう。 -- ToshinoriMaeno <>