DNS の脆弱性情報 (2008/7/9)





2008年7月9日、JPCERT/CC より DNS の脆弱性に関して発表がありました。

内容は DNS サーバや DNS 機能などのほとんど全てにおいて、
キャッシュポイズニングが可能になる脆弱性が見つかったというものです。

キャッシュポイズニングとは DNS サーバに偽のキャッシュ情報を覚えさせる攻撃です。

DNS における名前解決の問い合わせは UDP で行われるため、
TCP による通信とは異なり、セッション管理が行われません。

通常は問い合わせ (A) に対する正規の応答である応答 (A) を受け取って
一連の名前解決は完了となり、結果をキャッシュに入れます。

キャッシュポイズニングでは、何かしらの方法で応答 (A) に似せた応答 (A') の
内容をキャッシュに入れさせます。

したがって、キャッシュポイズニング自体で被害を被る訳ではなく、
偽のキャッシュ情報を持ってしまった DNS サーバを利用するユーザが
偽のキャッシュ情報により偽のサイトなどに誘導されることによる
フィッシングなどの二次被害が問題となります。

※ 2008月7月24日、この情報に更新がかかりました。

2008年8月に脆弱性の詳細が公表される予定だったところ、
誤って公表されてしまったとのこと。
さらに攻撃ツールも公開されてしまったそうです。

脆弱性を利用した攻撃が開始する可能性がありますので、
早急な対応が必要になってしまいました。

○対象に挙げられた主な製品

ISC BIND の全てのバージョン (BIND 8 を含む)
Microsoft DNS サーバ
複数の Cisco 製品
複数の Juniper 製品 (Netscreen 社製品を含む)
SUN SPARC プラットフォーム
  * Solaris 8
  * Solaris 9
  * 119783-06 未適用の Solaris 10
SUN x86 プラットフォーム
  * Solaris 8
  * Solaris 9
  * 119784-06 未適用の Solaris 10
YAHAMA RT シリーズ
古河電工 FITELnet シリーズの一部

ISC - CERT VU#800113 DNS Cache Poisoning Issue
http://www.isc.org/index.pl?/sw/bind/forgery-resilience.php

Microsoft MS08-037
DNS の脆弱性により、なりすましが行われる (953230)
http://www.microsoft.com/japan/technet/security/bulletin/MS08-037.mspx

Cisco Security Advisory: Multiple Cisco Products Vulnerable to DNS Cache Poisoning Attacks
Advisory ID: cisco-sa-20080708-dns
http://www.cisco.com/en/US/products/products_security_advisory09186a00809c2168.shtml

Sun Alert : 239392
Title:Security Vulnerability in the DNS Protocol may lead to
DNS Cache Poisoning
http://sunsolve.sun.com/search/document.do?assetkey=1-66-239392-1

JVNVU#800113
複数の DNS 実装にキャッシュポイズニングの脆弱性
http://jvn.jp/cert/JVNVU800113/index.html


キャッシュポイズニングの最も単純な方法は、次のような方法です。

1.攻撃対象 DNS サーバから正規の名前解決問い合わせを実施

問い合わせ (A)
  送信元 IP アドレス:1.1.1.1
  送信元ポート:5353
  送信先 IP アドレス:yahoo.co.jp を管理する DNS サーバの IP アドレス
  送信先ポート:53
  問い合わせ内容:www.yahoo.co.jp の IP アドレス

2.攻撃者が偽の名前解決応答を送りつける

応答 (A')
  送信元 IP アドレス:yahoo.co.jp を管理する DNS サーバの IP アドレス
  送信元ポート:53
  送信先 IP アドレス:1.1.1.1
  送信先ポート:5353
  応答内容:www.yahoo.co.jp の IP アドレス(偽)

この攻撃が成功するには、以下の項目が揃わないと成功しません。

・攻撃対象 DNS サーバの使用する送信元ポートが分かっている
・攻撃対象 DNS サーバが問い合わせた先が分かっている
・攻撃対象 DNS サーバが問い合わせた内容が分かっている
・時間的に応答として許容される範囲で攻撃対象 DNS サーバに偽の名前解決応答を送りつける

これらの条件を狙って揃えることは非常に困難なため、
攻撃者は偶然を狙って偽の名前解決応答を送り続けるか、
他の手口と組み合わせることが考えられます。