DNSにおけるキャッシュ汚染攻撃

Similar documents
学生実験 3 日目 DNS IP ネットワークアーキテクチャ 江崎研究室

2 注意事項 教材として会場を提供していただいている ConoHa さんのドメイン名とその権威ネームサーバを使 用しています conoha.jp ns1.gmointernet.jp

DNSSEC の仕組みと現状 平成 22 年 11 月 DNSSEC ジャパン

目次 1 本マニュアルについて 設定手順 (BIND 9 利用 ) 設定例の環境 設定例のファイル構成 named.conf の設定例 逆引きゾーンの設定例 動作確認 ( ゾーン転送 )

キャッシュポイズニング攻撃対策

DNSとメール

Zone Poisoning

Microsoft PowerPoint - private-dnssec

DNSの負荷分散とキャッシュの有効性に関する予備的検討

クラウドDNS へのネームサーバー切替手順

DNS (BIND, djbdns) JPNIC・JPCERT/CC Security Seminar 2005

ブロードバンドルータにおける問題(オープンリゾルバ)の解説、対策の説明

DNSSECの基礎概要

−uDNSƒzƒXƒeƒB?ƒOƒT?ƒrƒX−v??ƒU?ƒ}ƒj?ƒA?_

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

1 TCP/IPがインストールされていて正常に動作している場合は ループバックアドレィング5.3 ネットワークのトラブルシューティング スでリプライが返ってきます リプライが返ってこない場合 なんらかの原因でサービスが無効になっていたり TCP/IPプロトコルが壊れていたりする可能性があります 2

untitled

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

ISP技術者SWG報告書 およびその後の検討状況

DNSを「きちんと」設定しよう

JJ SIP ドメイン解決のための DNS 相互接続共通インタフェース Common interconnection interface for SIP domain name resolution based on DNS 第 1.0 版 2018 年 8 月 29 日 一般社団法人情

enog-ryuichi

初心者のためのDNSの設定とよくあるトラブル事例

IPアドレス・ドメイン名資源管理の基礎知識

上位 DNS の設定 YaST > Network Device > Network Card > HostName and DNS Server を開き DNS サーバとなる自分自身と上位となる ( プロバイダの指定 あるいは社内のマスター )DNS サーバを確認します この結果は /etc/re

当社は 7-dj.com DNS アウトソーシングサービス に加入したく 7-dj.com インターネットサービス規約を承認の上 下記の通り申込みます 初期費用 月額費用は貴社の指定する課金方法にて支払います お申込者申込年月日年月日 フリガナ 法人名 フリガナ ご住所 フリガナ 連絡担当者氏名 (

DNS DNS 2002/12/19 Internet Week 2002/DNS DAY 2

キャッシュポイズニング攻撃対策

PowerPoint プレゼンテーション

UNIVERGE SG3000 から SG3600 Ver.6.2(2012 年モデル ) への 移行手順 All Rights Reserved, Copyright(C) NEC Corporation 2017 年 11 月 4 版

目次 1. サービス概要 提供機能... 2 DNS ゾーン... 2 正引き 逆引き... 2 レコードタイプ... 2 初期ゾーン... 3 コントロールパネル操作メニュー一覧 コントロールパネル ユーザ認証 ドメイン所有者確認

DNSサーバー設定について

ENMA とは 送信ドメイン認証の ( 受信側 ) 検証をおこなう milter Sendmail Postfix と連携動作 認証結果をヘッダとして挿入 認証結果ヘッダの例 Authentication-Results: mx.example.jp; spf=pass smtp.mailfrom=

HDE Controller X 1-5. DNS サーバー

9. システム設定 9-1 ネットワーク設定 itmはインターネットを経由して遠隔地から操作を行ったり 異常が発生したときに電子メールで連絡を受け取ることが可能です これらの機能を利用するにはiTM 本体のネットワーク設定が必要になります 設定の手順を説明します 1. メニューリスト画面のシステム設

目次 1. はじめに 2 2. ドメイン名の移行に伴う変更箇所について 3 3. スケジュールについて 4 4.DNS サーバー /DNS レコードの設定要否について 5 5. ドメイン名 DNS サーバーの管理元を確認する方法について 6 6.DNS サーバーの設定 7 7.DNS レコードの設定

2014 年電子情報通信学会総合大会ネットワークシステム B DNS ラウンドロビンと OpenFlow スイッチを用いた省電力法 Electric Power Reduc8on by DNS round- robin with OpenFlow switches 池田賢斗, 後藤滋樹

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

日本語ドメイン名運用ガイド

CloudEdgeあんしんプラス月次レポート解説書(1_0版) _docx

DNSのセキュリティとDNSに関する技術

Microsoft Word - XOOPS インストールマニュアルv12.doc

はじめに このマニュアルは BACREX-R を実際に使用する前に知っておいて頂きたい内容として 使用する前の設定や 動作に関する注意事項を記述したものです 最初に必ずお読み頂き 各設定を行ってください 実際に表示される画面と マニュアルの画面とが異なる場合があります BACREX-R は お客様の

目次 1. サービス概要 提供機能... 2 DNS ゾーン... 2 正引き 逆引き... 2 権威ネームサーバへの反映... 2 レコードタイプ... 2 初期ゾーン... 3 GUI 操作メニュー一覧 エンドユーザ GUI ユーザ認証... 4

Microsoft PowerPoint - BIND9新機能.ppt

なぜIDSIPSは必要なのか?(v1.1).ppt

McAfee SaaS Protection 統合ガイド Microsoft Office 365 と Exchange Online の保護

BACREX-R クライアント利用者用ドキュメント

Microsoft PowerPoint Windows-DNS.pptx

Hik-Connect アカウントにデバイスを追加する方法ユーザーは Hik-Connect APP ウェブポータル ivms4500 アプリまたは ivms クライアント経由で Hik-Connect 機能を有効にすることができます 注 : iv

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

サーバーで安全な設定とは 正しい情報を正しく提供する 不確かな情報を提供したりしない ( 安全というより正しい設定 ) サービス経由で侵入されない 万が一侵入されても被害を最小限にする 2

提案書タイトルサブタイトルなし(32ポイント)

Microsoft IISのWebDAV認証回避の脆弱性に関する検証レポート

SSL サムプリントの検証 SSL サムプリントの検証はリモートユーザーがホストの信頼性を検証するために使用します この検証はリモートとホスト間の接続の安全性を確立して MITM 攻撃から保護するために実行する必要があります デフォルトで リモートユーザーが TCP/IP を使用してホストに接続しよ

Transcription:

SPN セキュリティ技術解説セミナー DNS におけるキャッシュ汚染攻撃 2008 年 10 月 25 日 ( 土 ) 2008 年 11 月 3 日改訂 塩月誠人 <mshio@sec-pro.net> 合同会社セキュリティ プロフェッショナルズ ネットワーク

本セッションの概要 DNS はインターネットを利用する際に誰もがお世話になる非常に基本的なサービスです そのため DNS サーバにおけるセキュリティ侵害は 多くのインターネット利用者に重大な影響を与えかねません 中でも DNS キャッシュの汚染は 効果的なファーミング攻撃手法として特に近年注目されています 本セッションではこの DNS キャッシュ汚染が発生する仕組みについて クエリ ID の予測 バースデイアタック 古典的キャッシュ汚染攻撃 (Ka shpureff Attack) Kaminsky's Attack といった手法を例に挙げ解説するとともに その対策方法について考察します 2

DNS とは DNS Domain Name System 平たく言うと ホストの名前と IP アドレスを関連付ける仕組み 名前の例 www.example.co.jp IP アドレスの例 192.168.1.1 名前から IP アドレスを調べる 正引き IP アドレスから名前を調べる 逆引き www.example.co.jp? www.example.co.jp? 192.168.1.1 192.168.1.1 組織内の DNS サーバ インターネット上の DNS サーバ群 3

DNS の階層構造 ルート "." arpa mil edu org com jp in-addr co ad ac or 218 example 45 www 192.168.1.1 www2 4

DNS における名前解決の仕組み ルート DNS サーバ 権威 の 委任 net の NS 反復的問い合わせ Iterative Query ドメイン net DNS サーバ 権威 の 委任 ドメイン sec-pro.net DNS サーバ sec-pro.net の NS 61.12.249.254 キャッシュDNSサーバ組織内 DNSサーバ 61.12.249.254 権威 DNS サーバ cache 再帰的問い合わせ Recursive Query 5

一般的な DNS の問題点 情報の漏洩 BIND バージョン情報の取得 (BIND に固有の問題 ) ゾーン転送 情報の改竄 不正な情報の挿入 ダイナミックアップデート 偽造 DNS リプライの挿入 DNS キャッシュの汚染 外部からの再帰的問い合わせ 資源の浪費 (CPU キャッシュ ) 各種 DNS サーバ攻撃の助長 Pharming 攻撃に利用 その他 DNS サービスのバグによる各種脆弱性を利用した攻撃 ( サービス妨害 不正コードの実行 ) 6

Pharming の脅威 Phishing エサ ( 電子メール等 ) を使って一本釣り Fishing( 釣り ) から派生した造語 不正な電子メール等を用い 犠牲者を偽サイトに誘導 Pharming タネ ( 不正な名前解決 ) をまいて 一気に収穫 Farming( 農場経営 ) から派生した造語 ホストの名前解決の仕組みを不正に操作し その仕組みを利用する犠牲者すべてを偽サイトに誘導 DNS の情報を不正に操作 いずれも主としてオンライン詐欺 ( カード番号やパスワード等の不正取得 ) に利用 Pharming の方が効率的かつ効果的 The Pharming Guide http://www.ngssoftware.com/papers/thepharmingguide.pdf 7

Pharming の概念 不正に介入 攻撃者 WWW. 銀行.JP DNS による名前解決 10.1.1.1 クライアント 192.168.1.1 偽の 銀行 Web サイト 10.1.1.1 本物の 銀行 Web サイト 192.168.1.1 8

各種 Pharming 手法 ホストファイルの改ざん DNS リプライの詐称クエリ クエリ リプライ ルート DNS サーバ クエリ リプライ クエリ JP DNS サーバ 不正なダイナミックアップデート ドメイン名の乗っ取り クライアント 参照 ホストファイル (/etc/hosts 等 ) リプライキャッシュDNSサーバ参照格納キャッシュ リプライ Kashpureff タイプのキャッシュ汚染 Kaminsky タイプのキャッシュ汚染 銀行.JP DNS サーバ 参照 DNS 設定情報 不正侵入による DNS 設定情報の改ざん 9

DNS のキャッシュとは キャッシュ DNS サーバは 問合せた結果のレコードを一定期間保持 DNS レコードのキャッシュ 同じ問合せに対して キャッシュに保持されたレコードを返すことでレスポンス時間を短縮 ネットワークトラフィック等の資源を節約 キャッシュの情報が汚染される ( 誤った情報がキャッシュされる ) と そのキャッシュ DNS サーバに問合せるすべてのホストが騙される キャッシュに保持される期間は 当該レコードの TTL 値に依存 TTL 値は権威 DNS サーバで定義 通常は 1 日 (86400sec) に設定 最近は短い値の場合も多い 攻撃者はキャッシュ汚染時に自由な TTL 値を設定することが可能 ただし実装によりキャッシュ保持時間の最大値が異なる (?) Windows Server 2003 DNS 86400sec (1 day) BIND 9 604800sec (1 week) 10

キャッシュ汚染手法の分類 DNS リプライの詐称によるキャッシュ汚染 偽のリプライを返すことで結果的にキャッシュを汚染 いかにしてクエリ ID を合致させるかがポイント 1) MITM/ ネットワーク盗聴 2) ブルートフォース 3) クエリ ID 予測 4) バースデイアタック Kashpureff タイプのキャッシュ汚染 DNS リプライに権威外のレコードを入れて返すことでキャッシュを汚染 古典的キャッシュ汚染手法 (1997 年 2005 年にインターネット上で攻撃 ) Kaminsky タイプのキャッシュ汚染 リプライ詐称を効率的に実行し 権威の委任を利用して偽情報を入れる 2008 年に Kaminsky 氏により発表 同 7 月に各種 DNS サーバが一斉パッチ 11

DNS リプライの詐称によるキャッシュ汚染 正常な DNS クエリとリプライ ドメイン sec-pro.net 権威 DNS サーバ 61.12.249.254 キャッシュ DNSサーバ 61.12.249.254 cache 次の問い合わせにはキャッシュの情報を返す 偽の DNS リプライの挿入 ドメイン sec-pro.net 権威 DNS サーバ 攻撃者 10.1.1.1 偽造 DNS リプライ キャッシュ DNSサーバ 10.1.1.1 cache 10.1.1.1 12

DNS リプライの詐称が成功する条件 (1) DNS の応答パケットは基本的に UDP なので トランスポート層での詐称は容易 偽の DNS リプライを挿入するためには以下の条件が必要 正規の DNS サーバからのリプライよりも先に送り込まなければならない 正規の DNS サーバが遠い 動作していない DOS でダウン 成功率 UP 以下が正しいリプライパケットでなければならない ソースおよびデスティネーション IP アドレス ソースおよびデスティネーション UDP ポート番号 クエリの内容 クエリ ID IP アドレス? キャッシュ DNS サーバ / 権威 DNS サーバいずれも IP アドレスは既知 13

DNS リプライの詐称が成功する条件 (2) ポート番号? 権威 DNS サーバ側 53 番固定 キャッシュ DNS サーバ側 今年 7 月の一斉パッチ以前は多くの場合固定のため 事前に問合せることで判明 クエリの内容? 攻撃者が能動的に問合わせを発行すれば既知 クエリ ID(Transaction ID)? DNS の問い合わせの識別子 (2 バイト 65,536 通り ) 古い BIND や NT4.0DNS(SP4 より前?) では連番だったため 容易に予測可能であったが 最近の DNS サービスは基本的にランダムなクエリ ID を使用 ローカルネットワーク上では比較的容易に詐称可能 ( ネットワーク盗聴や MITM 攻撃を利用 ) 14

DNS リプライパケット IP Header UDP Header DNS Message src-ip dst-ip src-port dst-port 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ID +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ QR Opcode AA TC RD RA Z RCODE +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ QDCOUNT +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ANCOUNT +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ NSCOUNT +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ARCOUNT +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +---------------------+ HEADER +---------------------+ QUESTION SECTION +---------------------+ ANSWER SECTION +---------------------+ AUTHORITY SECTION +---------------------+ ADDITIONAL SECTION +---------------------+ 15

クエリ ID によるリプライ詐称の防止 (1) C 権威 DNS サーバ QUERY ANSWER IP-B IP-C P-1138 P-53 QID: 5678 IP-C IP-B P-53 P-1138 QID: 5678 一致!! B キャッシュ DNS サーバ QUERY IP-A IP-B P-1024 P-53 QID: 1234 ANSWER 一致!! IP-B IP-A P-53 P-1024 QID: 1234 A クライアント 16

クエリ ID によるリプライ詐称の防止 (2) C QUERY 権威 DNS サーバ IP-B IP-C P-1138 P-53 QID: 5678 B QUERY IP-A IP-B P-1024 P-53 QID: 1234 A X 攻撃者 不一致!! ANSWER IP-C IP-B P-53 P-1138 QID: 9999 Х キャッシュ DNS サーバ クライアント Query ID を正しく推測しなければ偽造 DNS リプライは挿入できない 17

偽造リプライ挿入の確率 キャッシュ DNS サーバが偽造リプライを受付ける確率は R * W P_s = ----------- N * P * I R: 偽造リプライパケットの送出レート (pps) つまり一秒に何発打てるか W: 窓 が開いている秒数 (s) つまり正規リプライが返るまでの時間 N: 対象ドメインの権威 DNS サーバの数 P: キャッシュサーバのポート番号がとりうる値の数 (1~64,000 程度 ) I: Query ID のとりうる値の数 (16bit つまり 65,536 ) R=5000, W=0.1, N=2, P=1, I=65536 として 0.4% 程度の確率 18

クエリ ID 予測による DNS リプライの詐称 (1) 以下の DNS サーバのクエリ ID は容易に予測できることが 2007 年に公開 BIND8(8.4.7-P1 にてフィックス ) http://www.trusteer.com/docs/bind8dns.html BIND9(9.2.8-P1, 9.3.4-P1, 9.4.1-P1, 9.5.0a6 にてフィックス ) http://www.trusteer.com/docs/bind9dns.html Windows 2000 Server/Windows Server 2003(MS07-062 にてフィックス ) http://www.trusteer.com/docs/windowsdns.html 攻撃者の管理する DNS サーバに問い合わせを発行させ そのクエリ ID を基にして次のクエリ ID を予測し 偽造 DNS リプライを挿入 19

クエリ ID 予測による DNS リプライの詐称 (2) ドメイン sec-pro.net 権威 DNS サーバ 攻撃者ドメイン attacker.dom の権威 DNS サーバ QID:XXX 攻撃者 QID をサンプリングして 次の QID を予測 QID:YYY aaa.attacker.dom? aaa.attacker.dom? 偽造 DNSリプライ QID:YYY 10.1.1.1 キャッシュ DNSサーバ 10.1.1.1 cache 10.1.1.1 20

バースデイアタックによる DNS リプライの詐称 (1) バースデイパラドックス 人が 23 人集まると 同じ誕生日同士の人が存在する可能性は 1/2 を超え 60 人も集まると確実に存在する という確率論 つまり 自分と同じ誕生日の人を探すのは大変だが 誕生日が同じ というペアを探すのは容易 DNS のクエリ ID の場合 500 発程度のクエリおよび偽造リプライを送信することにより 80% 以上の確率でクエリ ID が合致 DNS Cache Poisoning - The Next Generation http://www.lurhq.com/dnscache.pdf BIND9 では同時問い合わせを同時並行的に処理しないので安全 Windows DNS は MS07-062 適用後 同時並行的に処理しない 21

バースデイアタックによる DNS リプライの詐称 (2) ドメイン sec-pro.net DNS 権威サーバ どれかの QID が ( たまたま ) 合致する 攻撃者 QID QID 10.1.1.1 偽造 DNS リプライ キャッシュ DNSサーバ 10.1.1.1 cache 10.1.1.1 22

Kashpureff タイプのキャッシュ汚染手法 (1) キャッシュ DNS から攻撃者が管理する権威 DNS サーバへ問合わせをさせ そのリプライに入れた権威外のレコードでキャッシュを汚染 CNAME や NS レコードを利用し ANSWER/ADDITIONAL セクションに挿入 本来信用してはいけないレコードを信用してしまうといった キャッシュ DNS サーバの脆弱性を利用したもの 脆弱な DNS サーバは 権威外のレコードをキャッシュに保存 古い BIND や デフォルトの NT4.0/2000 DNS (SP3 より前 ) は脆弱 最新の Windows DNS でも 設定によっては脆弱になるので注意 DNS キャッシュ機能はさまざまな製品 ( ルータ ゲートウェイ製品等 ) に含まれるが 場合によってはそれらに脆弱性が存在 Windows DNS での対策 : DNS 設定の 詳細 プロパティで Pollution に対してセキュリティでキャッシュを保護する を設定 (2000 SP3 以降および 2003 ではデフォルト ) 23

Kashpureff タイプのキャッシュ汚染手法 (2) インターネットで発生した Kashpureff タイプのキャッシュ汚染攻撃 1997 年 7 月 : http://www.cert.org/advisories/ca-1997-22.html BIND4.9.6/8.1.1 より前のバージョンに脆弱性 AlterNIC(Eugene Kashpureff 氏 ) により多数の DNS サーバが攻撃 www.internic.net へのアクセスが AlterNIC のサーバへ誘導 2005 年 3 月 ~4 月 : http://isc.sans.org/presentations/dnspoisoning.php Windows NT/2000 Symantec ゲートウェイ製品の DNS 各種商用サイトのドメイン名がターゲット 不正サイトにリダイレクト (Web E-Mail FTP IMAP/POP ) 不正サイト上でスパイウェアを配布 対策済みの Windows DNS でも BIND4/8 をフォワーダとして使っている場合は脆弱 24

Kashpureff タイプのキャッシュ汚染手法 (3) ドメイン sec-pro.net 権威 DNS サーバ 攻撃者ドメイン attacker.dom の権威 DNS サーバ キャッシュ DNS サーバ cache 10.1.1.1 10.1.1.1 攻撃者 25 aaa.attacker.dom CNAME www.sec-pro.net www.sec-pro.net A 10.1.1.1 aaa.attacker.dom? aaa.attacker.dom? 権威外のレコード

フォワーダ経由でのキャッシュ汚染 (1) フォワーダ 自分の代わりに名前解決してくれる DNS サーバ Windows DNS は フォワーダの設定をしている場合 フォワーダからのリプライなら権威外レコードであっても受け入れる ( 仕様 ) つまり Pollution に対してセキュリティでキャッシュを保護する と設定していても Kashpureff タイプのキャッシュ汚染が発生 以下の場合 Windows DNS に対するキャッシュ汚染が可能 フォワーダ DNS に Kashpureff タイプのキャッシュ汚染脆弱性がある場合 フォワーダ DNS が毒を浄化せずにリプライを戻す場合 (BIND8/4?) フォワーダ DNS を詐称してキャッシュ汚染攻撃された場合 クエリ ID の推測が必要 ( バースデイアタックや総当り ) 解説ページ : http://www.st.rim.or.jp/~shio/advisories/windns_poison/w indns_poison.txt 26

フォワーダ経由でのキャッシュ汚染 (2) ドメイン sec-pro.net 権威 DNS サーバ 攻撃者ドメイン attacker.dom の権威 DNS サーバ 攻撃者 フォワーダ DNS サーバ aaa.attacker.dom? キャッシュ DNS サーバ cache 10.1.1.1 10.1.1.1 27 aaa.attacker.dom? フォワーダ DNS からのリプライを詐称 aaa.attacker.dom CNAME www.sec-pro.net www.sec-pro.net A 10.1.1.1 aaa.attacker.dom? リプライを返さない フォワーダ設定 Windows DNS はフォワーダからのリプライなら権威外のレコードでも受け入れる 権威外のレコード

従来のキャッシュ汚染攻撃手法の欠点 DNS リプライの詐称によるキャッシュ汚染 一度失敗すれば正規のレコードがキャッシュされ キャッシュ保持中 (TTL 値の期間中 ) は攻撃できない 効率的な攻撃が不可 ある一定の期間 (T) 連続した攻撃で 一度でも偽造リプライを受付ける確率は TTL の値に依存 T/TTL R * W P_cs = 1-1 - ----------- N * P * I R=5000, W=0.1, N=2, P=1, I=65536, TTL=86400(1 日 ) として 10 日で約 4% TTL が例えば 1 時間 (3600) だとすると 10 日で約 60% 20 日で約 84% Kashpureff タイプのキャッシュ汚染 脆弱性を持つキャッシュ DNS サーバのみが攻撃対象 攻撃対象が極めて限定 ( 設定を誤った Windows DNS 等 ) 28

Kaminsky タイプのキャッシュ汚染手法 (1) 2008 年になって Dan Kaminsky 氏が新しいタイプの DNS キャッシュ汚染手法を考案 DNS のもともとの設計による問題 今まで考えられていたよりも容易にリプライ詐称が可能 攻撃の機会は TTL 値に依存しない ( いつでも レース が開始できる ) BIND Windows DNS 等 多くのターゲットに適用可能 DNS の下位ドメインに対する 委任 の仕組みを利用してキャッシュを汚染 実装によっては既存レコードの上書きも可能 (Windows DNS A レコード ) 7 月に各種 DNS の実装が一斉にアップデート ソースポートをランダマイズすることで攻撃成功の可能性を低減 29

Kaminsky タイプのキャッシュ汚染手法 (2) 基本はブルートフォース型 DNS リプライの詐称 つまりターゲットのキャッシュ DNS サーバから権威 DNS サーバへの問い合わせに対するリプライを詐称 ランダムなクエリ ID で多数の偽造リプライを返し どれかが当たるのを待つ 存在しないホスト名をクエリに使用 001.www.sec-pro.net 等の存在しないレコードを キャッシュ DNS サーバから権威 DNS サーバへ問い合わせさせる 毎回クエリのホスト名を変えるため TTL 値に依存することなく何度でも連続してリプライ詐称をトライすることが可能 (001, 002, 003, 004,...) どのようにしてキャッシュを汚染するか? 001.www.sec-pro.net を偽 IP アドレスでキャッシュさせても意味がない やりたいことは www.sec-pro.net を偽 IP アドレスでキャッシュ 30

Kaminsky タイプのキャッシュ汚染手法 (3) 手法その 1: 偽造リプライ中に委任先の NS レコードを入れることで参照先を変更例 1)www.sec-pro.net NS ns.attacker.dom 例 2)sec-pro.net NS ns.attacker.dom それにより www.sec-pro.net の問い合わせを攻撃者の DNS サーバへ誘導 例 2 の場合は sec-pro.net ドメイン全体の乗っ取りが可能 BIND9.5.0-P2 および WS2K3/SP2(MS08-037 適用済み ) で検証 ( いずれもソースポート固定に設定 ) 手法その 2: CNAME や NS レコードを利用して ターゲット A レコードを直接挿入 / 上書き例 )001.www.sec-pro.net CNAME/NS www.sec-pro.net www.sec-pro.net A 10.1.1.1 WS2K3 DNS は CNAME を利用して A レコードの挿入および上書きが可能 BIND9.5.0-P2 は NS を利用して A レコード挿入が可能 31

Kaminsky タイプのキャッシュ汚染手法 (4) ドメイン sec-pro.net DNS 権威サーバ どれかの QID が ( たまたま ) 合致 攻撃者 QID 001. 002. 001. www.sec-pro.net NS ns.attacker.dom 偽造 DNS リプライ www.sec-pro.net NS ns.attacker.dom QID 002. 偽造 DNS リプライ キャッシュ DNSサーバ cache 10.1.1.1 www.sec-pro.net NS ns.attacker.dom 10.1.1.1 権威の委任により NS レコードがキャッシュ 攻撃者ドメイン attacker.dom の権威 DNS サーバ 32

DNS キャッシュ汚染攻撃への対策 (1) ソースポートのランダマイズによりキャッシュ汚染成功率を下げる Kaminsky タイプのキャッシュ汚染攻撃が成功する確率 T R * W P_cs = 1-1 - ----------- N * P * I R=5000, W=0.1, N=2, P=1, I=65536 として 1 分間の攻撃で約 20% ソースポートのランダマイズ P=64000 とすると 10 日間の攻撃で約 5% 2008 年 7 月に各種 DNS の実装が一斉にパッチ提供 ポートランダマイズ 設定によってはランダム化しない場合もあるので注意 例 ) BIND query-source port 53; ソースポートが固定化 NAT/NAPT 環境ではソースポートのランダム化効果がなくなる場合もある ランダム度のテスト (https://www.dns-oarc.net/oarc/services/dnsentropy) dig +short porttest.dns-oarc.net TXT ソースポートのランダム度 dig +short txidtest.dns-oarc.net TXT クエリ ID のランダム度 33

DNS キャッシュ汚染攻撃への対策 (2) 外部からの再帰的問合せを禁止する 攻撃者がインターネット経由で直接トリガーを引くことを抑制 攻撃者 再帰的問合せを拒否 Х キャッシュ DNSサーバ 再帰的問合せを許可 cache 内部から強制的に再帰的問合せを発行させることもできるので注意が必要 メールサーバに問合せを発行させる (mail from: xxx@www.sec-pro.net 等 ) Webバグを使ってブラウザ / メールクライアントから問合せを発行 外部からの再帰的問合せのテスト (http://recursive.iana.org/) 34

DNS キャッシュ汚染攻撃への対策 (3) 同時並行的な連続問合せの制限 ( バースデイアタック対策 ) Windows DNS は Pollution に対してセキュリティでキャッシュを保護する を設定 (Kashpureff Attack 対策 ) パケットフィルタリングによるソース IP アドレス詐称の防止 DNSSEC の導入 公開鍵暗号方式を利用しゾーンのリソースレコードに署名 出所の認証と整合性チェックを提供 問い合わせ側 ( リゾルバ ) はレコードの署名を確認することで 偽造リプライ等によるキャッシュ汚染を回避し 正しいレコードのみを受け入れる 公開鍵を上位ドメインに署名してもうらことで信頼関係を構築 インターネットで広く普及するにはしばらく時間がかかりそう SE( スウェーデン ): 対応中 ORG/GOV: 対応予定 DLV(DNSSEC Lookaside Validation) TLD が DNSSEC 化していない場合に DNSSEC 対応する技術 35

まとめ DNS キャッシュ汚染は極めて影響度の高い攻撃のため 適切な対応が必要 DNS サーバの最新版へのアップデート 設定の確認 ルータやゲートウェイ製品の DNS キャッシュ機能にも注意 クエリ ID およびソースポートのランダマイズによりリスクはかなり低減されるが 所詮は確率の大小の問題 外部からの再帰的問合せの禁止により攻撃の難易度は高まるが 不可能ではない Kashpureff タイプの脆弱性は致命的 特に Windows DNS は設定を確認 Windows DNS のフォワーダ経由でのキャッシュ汚染にも注意 Windows クライアントでもキャッシュ汚染が発生する可能性 最終兵器は DNSSEC だが 36