Hitach Incident Response Team

 2008年7月から世界的に話題になっているDNSキャッシュ・ポイズニングを効率的に実現する手法について,発見者であるダン・カミンスキー氏が,Black Hat 2008の席上でプレゼンテーションを行いました(8月6日)。このキャッシュ・ポイズニングのぜい弱性については,いろいろ動きがありましたので,ぜい弱性に関連するイベントを追いかけておきましょう。

■キャッシュ・ポイズニングのぜい弱性の対応経過

 まずは,ぜい弱性に代表的なイベント一覧です。他の関連イベントについては, Status Tracking Note TRTA08-190B:複数の DNS 実装にキャッシュ・ポイズニングのぜい弱性 を参照してください。

2008年7月8日  BINDを含む複数のDNSサーバーが,ダン・カミンスキー氏が指摘するキャッシュ・ポイズニングを効率的に実現する手法に対してぜい弱であったことから,対策版がリリースされました。具体的な対策は,DNSサーバーが発信元ポート番号をなるべくランダムに使うようにすることで,詐称パケットを作成しにくくするというものです。この時期に対策情報が公開されたのは,2008年8月のBlack Hat 2008において本ぜい弱性の詳細が公開されることを踏まえ,対策展開の猶予期間をとったからです。

2008年7月9日  US-CERT,JPCERT/CC,日本レジストリサービスから,DNSのキャッシュ・ポイズニングのぜい弱性対策について注意喚起が出されました。また,NAT(Network Address Translation)の実装によっては,せっかく発信元ポート番号をランダムにしたにもかかわらず,そのランダム性をなくしてしまうという現象が報告されました。

2008年7月17日  DNS-OARC(Domain Name System Operations, Analysis, and Research Center)から,DNSサーバーが使用する発信元ポート番号とトランザクションIDのランダム性をチェックするツール「Web-based DNS Randomness Test」がリリースされました。このツールを利用すると,自分が使用している(再帰問い合わせが有効な)DNSサーバーの発信元ポート番号とトランザクションIDのランダム性を「GREAT」,「POOR」という2段階評価でチェックできます。

図1 Web-based DNS Randomness Test
図1 Web-based DNS Randomness Test

 また,DNSサーバー問い合わせツール「dig」を使えば,コマンドラインでランダム性をチェックできます。使い方は,1.2.3.4のところに,DNSサーバーのIPアドレスを記載します。

dig +short porttest.dns-oarc.net txt @1.2.3.4

図2 Command line-based DNS Randomness Test
図2 Command line-based DNS Randomness Test

2008年7月22日 04:34  “Matasano Security blog”からダン・カミンスキー氏が指摘するキャッシュ・ポイズニングを効率的に実現する手法の詳細が公開されてしまいました。US-CERT,JPCERT/CCでは,当初予定より早くぜい弱性の攻撃手法に関する情報が公開されてしまったことを受けて,再度注意喚起を開始しました。

2008年7月24日 07:53  DNSサーバーのキャッシュ・ポイズニングのぜい弱性を攻撃する検証ツールがリリースされました。日本レジストリサービス,情報処理推進機構(IPA),JPCERT/CC,US-CERTは,攻撃ツール公開という状況変化を踏まえた注意喚起を開始しました。

2008年7月25日  DNSサーバーのキャッシュ・ポイズニングのぜい弱性を攻撃する検証ツールが複数リリースされはじめました。

2008年7月29日  米AT&TのISPが運営するDNSキャッシュ・サーバーが攻撃を受け,Googleへのトラフィックが別のサイトに誘導されたという侵害活動が報告されました。

2008年8月6日  発見者であるダン・カミンスキーがDNSサーバーのキャッシュ・ポイズニングを効率的に実現する手法についてBlack Hat 2008でプレゼンテーションを行いました。また同日,Black Hat 2008でのプレゼンテーション資料(DMK_BO2K8.ppt)も公開されました。

■次の対策フェーズへ

2008年8月6日  インターネットのアドレス資源(IPアドレス,ドメイン名,プロトコル番号など)の標準化や割り当てを管理する団体 IANA(Internet Assigned Numbers Authority)からCross-Pollination Checkというテスト・ページが公開されました。

 Cross-Pollination Checkページでは,ドメイン名を入力すると,該当するドメインの情報を持つDNSサーバー(Authoritative DNSサーバー,コンテンツ・サーバーと呼ばれることもあります)に対して,再帰問い合わせ機能の無効化と発信元ポート番号のランダム性の2つの視点からDNSサーバーの状況をチェックします。 評価は,筆者の知る限り「Highly Vulnerable」,「Vulnerable」,「Safe」の3段階です。

図3 Cross-Pollination Check, Highly Vulnerable
図3 Cross-Pollination Check, Highly Vulnerable
図4 Cross-Pollination Check, Vulnerable
図4 Cross-Pollination Check, Vulnerable
図5 Cross-Pollination Check, Safe
図5 Cross-Pollination Check, Safe
 再帰問い合わせ機能
の無効化
発信元ポート番号
のランダム性
Highly Vulnerable
Vulnerable
Safe

 上記の評価を見て分かる通り,再帰問い合わせ機能の無効化を実施していない場合には,発信元ポート番号のランダム性を上げる対策を実施しても,Vulnerableと判定されることになります。つまり,Authoritative DNSサーバーでは再帰問い合わせ機能を無効化するか,ごく限られたユーザーだけが再帰問い合わせ機能を利用できるように設定変更する必要があります。

 DNSキャッシュ・ポイズニングのぜい弱性対応で開発されたDNS-OARCのWeb-based DNS Randomness Testツールは,再帰問い合わせ機能の無効化をチェックするCross-Pollination Checkツールへと進化しました。せっかく便利なツールが出てきましたので,キャッシュ・ポイズニングのぜい弱性対策を契機に,該当するドメインの情報を持つDNSサーバー(Authoritative DNSサーバー)をより安全に運用する活動を進めていきたいものです。

 再帰問い合わせ機能の無効化を行うためには,構築済みのDNSサーバーの設定や構成変更を行う必要があります。DNSサーバーの役割や利用状況を十分に調査した上で実施しないと,ドメイン名からIPアドレスに変換するという基本的なDNSサービスに影響を与えてしまうことになります。あせらず,計画を立てて確実に実施していきましょう。


寺田 真敏
Hitachi Incident Response Team
チーフコーディネーションデザイナ

『 HIRT(Hitachi Incident Response Team)とは 』

HIRTは,日立グループのCSIRT連絡窓口であり,ぜい弱性対策,インシデント対応に関して,日立グループ内外との調整を行う専門チームです。ぜい弱性対策とはセキュリティに関するぜい弱性を除去するための活動,インシデント対応とは発生している侵害活動を回避するための活動です。HIRTでは,日立の製品やサービスのセキュリティ向上に関する活動に力を入れており,製品のぜい弱性対策情報の発信やCSIRT活動の成果を活かした技術者育成を行っています。