1. DNS/キャッシュ毒盛 (2012-03-19 初稿)

/2014 -- DNS/キャッシュサーバ -- DNS/毒盛 -- DNS/毒盛再考

The Hitchhiker’s Guide to DNS Cache Poisoning http://www.cs.utexas.edu/~shmat/shmat_securecomm10.pdf

WSEC-DNS http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.155.3826&rep=rep1&type=pdf

http://tools.ietf.org/search/draft-wijngaards-dnsext-resolver-side-mitigation-01

2. 毒盛攻撃のターゲットは共用のキャッシュサーバだ

毒盛は偽返答を送りつけることで成立するが、それには問い合わせをさせる必要がある。

3. 共用キャッシュサーバを避けよ

できれば、自前のキャッシュサーバを動かして、非公開の設定にせよ。

たしかに、bot化したPCが存在するネットワークではキャッシュへの毒盛は簡単だろう。

/共用キャッシュサーバ

4. 外部からの再帰検索を禁止しても危険

コンテンツサーバとキャッシュサーバが同居しているケースはまだ残っています。

http://www.linuxjournal.com/content/understanding-kaminskys-dns-bug

   <img src="http://aaaa.example.com/image.jpg"/>
    <img src="http://aaab.example.com/image.jpg"/>
    <img src="http://aaac.example.com/image.jpg"/>
    ...

/内部サーバの攻撃

5. キャッシュ毒盛対策にはTCP検索を推奨する

UDPだと送信元アドレスアドレスは詐称しやすい。TCPなら困難である。

-- ToshinoriMaeno 2011-05-19 15:25:53


警告: DNS キャッシュサーバへの毒盛攻撃 (キャッシュポイズニング/キャッシュ汚染ともいわれています)

DNSSECしか解決方法がないような宣伝にはのせられないようにしましょう。

いまも/危険な大手サイトがあります。(2009-04-13, 9-15 更新)


利用者ができること


6. キャッシュサーバへの毒盛

http://greyhat-security.com/dns-cache-poisoning-overview

http://aspirationsoftware.com/indexthe-hitchhiker%E2%80%99s-guide-to-dns-cache-poisoning/

Kaminsky (2008-07)の発表で注目されました。(キャッシュ汚染とも呼ばれます。)

../攻撃手法の説明 -- JPRS 説明図 キャッシュポイズニング一般

../Kaminskyの攻撃手法 -- http://www.doxpara.com/ Dan Kaminsky のページ -- ../Kaminskyの警告 --

Halvar Flake

/対策 -- /歴史 DNSを信用するのは危険

毒盛対策の RFC http://tools.ietf.org/html/rfc5452

6.1. 緊急かつ必須の対策

Kaminsky は今回の脆弱性を 2008 年初めに発見し、 いくつかのベンダーに通告したとのこと。 それらのベンダーが会合を持ったのが 3 月末で、修正版の公開が 7 月初めです。 この間に情報が漏れなかったという保証はありません。

query port を random 化 することです。(patch, patch, patch!)
    djbdns (dnscache)には公開当初から実装されています。

流れ弾(だま)に当る可能性を大幅に削減できます。 でも、これだけでは不十分です。

  オープンリゾルバ(公開キャッシュサーバ)は非常に脆弱です。すぐに使用をやめましょう。

6.2. キャッシュサーバを分離しよう (管理者むけ)

キャッシュサーバを一般公開することはとても危険です。(オープンリゾルバ)

6.2.1. まだまだ不十分

アクセス制限しても、内部からの間接攻撃があります。

6.3. キャッシュサーバでの対策

問い合わせのエントロピーを増やすことで危険を減らせます。

  1. 問い合わせの大文字小文字化(randomに)
  2. secure DNS cache by George Barwood

6.4. 利用者ができること

自分が使っている DNS サーバ(キャッシュ)の安全度を確かめましょう。

https://www.dns-oarc.net/oarc/services/dnsentropy

6.5. ここまでやっても DNS は危険

http://marc.info/?l=djbdns&m=121816690908827&w=2 UIC press release

http://www.nytimes.com/2008/08/09/technology/09flaw.html NYT 記事

現状では接続した先が偽物かもしれないと思って、十分注意して使うしかありません。

DNSSECは解決策になりえるか? DNSの脆弱性の発見者に聞く

6.6. DNSCurve

DNSCurve が普及すれば状況は改善されますが、それにはまずあなたがDNSCurveを使うことから始める必要があります。

6.7. 警告情報

https://www.kb.cert.org/CERT_WEB\services\vul-notes.nsf/id/800113

        Insufficient transaction ID space
        Multiple outstanding requests
        Fixed source port for generating queries

http://jprs.jp/tech/security/multiple-dns-vuln-cache-poisoning.html 複数のDNSソフトウェアにおけるキャッシュポイズニングの脆弱性について

Bruce Schneier:

7. でも

Kaminsky のスライドでは攻撃可能なことや毒の内容の説明が不十分です。

../BINDの歴史 -- Kashpureff-style DNS cache corruption attack

http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20050411/158828/ (2005年の記事)

8. DNS 拡張

http://www.jhsoft.com/dns-xqid.htm 拡張 transaction ID

http://dnscurve.org/ DNSCurve


DNS 入門

DNSを信用するのは危険です。 詐欺にあってからでは遅いのです。

DNS は『自己責任』で使うものだと理解しましょう。(それが現実だが、そうさせたくない人たちが甘い言葉を大声で)

9. 関連情報

DNS/RFC  /関連ページ 

http://djbdns.qmail.jp/jp/ djbdns 入門 -- http://tinydns.org/ tinydns.org --

http://wiki.tokai-ic.or.jp/hiki.cgi?OpenSourceSM13 これでいいのかインターネット (DNS 編)

TIC セミナー 3/25 問題提起編のスライド

-- ToshinoriMaeno 2011-07-24 01:23:29