1. DNS/毒盛/概要

UDP をやめよう、という話になってきています。 TCPにするなら、DNSSEC もいらない。

1.1. 毒盛とは

../部品紹介

../キャッシュサーバ

../成立の要件

対策?: ../ゾーンサーバの監視

http://cloud.watch.impress.co.jp/epw/cda/security/2008/08/28/13724.html 「ポートランダム化もすでに破られている」

1.1.1. 2014 年にあらたな展開

http://www.e-ontap.com/blog/20140415.html

1.1.2. 攻撃手法

DNS/キャッシュ毒盛 /雨だれ攻撃 DNS_spoofing

/成立の要件 /taxonomy /poison https://moin.qmail.jp/DNS/RFC2181/s5

/Guide DNS/The Hitchhiker’s Guide to DNS Cache Poisoning

https://www.nic.ad.jp/ja/newsletter/No40/0800.html /nicの説明

https://tools.ietf.org/html/rfc5452

1.2. 経緯

1.2.1. Kaminsky 攻撃

Kaminsky 手法は「キャッシュされていない名前を問い合わせる」ことにより、「毒を送りつける機会を増やす」ものである。

1.2.2. Mueller の委譲返答攻撃

Mueller は偽委譲返答(NSなど)を送りこむ攻撃が考えられると言っています。 DNS/毒盛/Mueller手法

Mueller paper の指摘では

 キャッシュにないレコードを毒として注入します。ここでもTTLは関係しません。(ランキングも)

ここまでが2008年に明らかになったことです。(それに世界が気づいていなかったとしたら不思議です。)

問い合わせポートのランダム化である程度の防御ができるからでしょう。

DNS/NSレコード/返答中のNS

1.2.3. Ghost Domain Names

そして、2012年にはDNS/GhostDomainNames脆弱性が指摘されています。(これもキャッシュへの毒盛です)

unbound などのキャッシュサーバ(実装)での対策も追加されていますが、十分利用されているとは言えません。 -- ToshinoriMaeno 2014-03-22 23:56:19

1.3. いまも残る脅威

A レコード(web サーバやDNSゾーンサーバ) はキャッシュされていることが多いので、対象としません。

1.3.1. NS レコードが危ない

Mueller 手法にある NSレコードを狙うのが有効そうです。

RFC2181 では参照返答に含まれるNSレコードでキャッシュを上書きしてよいか、あいまいです。

正規の返答がNXDOMAINであるような問い合せを送るので、
 毒盛したいNSレコードがキャッシュさせられることがない。
これにより効果的な攻撃になります。

--> Kaminsky 流の「存在しない下位の名前」を問い合せて、一段上位のNSを返答します。

1.3.2. NSレコードを持っていないノードが危ない

現実のDNSゾーン構成を観察すると、簡単に毒盛できそうなケースが多数見つかります。

NSレコードを持たないノードです。たとえば、co.jp などの属性型JPドメイン名のおおもとです。

DNS/委任毒盛 一部の人だけが読めます。 -- ToshinoriMaeno 2014-03-25 22:52:27

1.4. いますぐ確認して欲しいこと

ゾーンサーバとキャッシュサーバは分けていますか。

キャッシュサーバのポートランダム化はお済みでしょうか。

http://snoopy.e-ontap.com/   http://snoopy.e-ontap.com/announce.html

1.5. 毒盛に使う毒

Answer Section ではなさそうですね。

Mueller にあるように Authoriyt Section 内の NS レコードが一番狙われ易い。

なかでも、DNS/委譲毒盛 はターゲットを発見できれば、すぐにも毒盛できてしまう危険な手口です。

1.6. キャッシュにあっても危ないかも

キャッシュが優先されて、置き換えが起きないのなら、 余計なお節介のNSレコードも毒盛防御には役にたっているのかもしれない。

でも、置き換えられるのではないか。 DNS/RFC2181/s5 /root-servers.net

1.7. 参考情報

DNS/キャッシュサーバの動作/毒盛耐性

http://www.e-ontap.com/dns/bindmatrix.html (Kaminsky Bug の検証)

DNS/GhostDomainNames DNS/GDN

DNS/NSレコード/DNS返答中のNS

DNS/BINDの歴史/場当たり的対応

http://dnsops.jp/event/20130719/20130719-undocumented-DNS-orange-6.pdf 教科書には載っていないDNS (JPRS 森下)

DNSキャッシュポイズニング対策 IPA https://www.ipa.go.jp/security/vuln/DNS_security.html