DNS キャッシュポイズニング 対 策 ~DNSの 役 割 と 関 連 ツールの 使 い 方 ~ 1. DNSキャッシュポイズニング 2. DNSの 動 作 と 関 連 ツール 3. 検 査 ツールの 使 い 方 と 注 意 点 4. 再 帰 動 作 の 設 定
1. DNSキャッシュポイズニング 1.1 DNSの 仕 組 み 1.2 DNSキャッシュポイズニング 1
1.1 DNSの 仕 組 み DNSの 役 割 DNSは ホスト 名 ( 例 :www.ipa.go.jp)をipアドレス ( 例 :202.229.63.242)に 変 換 したり ドメイン( 例 :ipa.go.jp)で 利 用 するメール( 例 :ipa-ns.ipa.go.jp)を 教 えたりするなどの 役 割 を 担 っています クライアント www.ipa.go.jpの IPアドレスを 教 えてください DNS www.ipa.go.jpのipアドレスは 202.229.63.242です DNS 設 定 クライアントでは 手 動 あるいは 自 動 (DHCPなど)で 自 分 が 利 用 するDNSを 設 定 します 2
1.1 DNSの 仕 組 み DNSサービスを 実 現 する 機 能 DNSには コンテンツ と キャッシュ の2 種 類 があり, これらが 連 携 してDNSサービスを 実 現 しています コンテンツ ドメインの( 原 本 ) 情 報 を 管 理 するDNSです キャッシュ クライアントに 代 わってコンテンツに 問 合 せを 行 うDNS です 問 合 せた 結 果 (3)を 複 製 (4)として 一 時 的 に 記 憶 (キャッ シュ)することから キャッシュと 呼 ばれています また クライ アントに 代 わって 問 合 せ(2)を 行 うことを 再 帰 動 作 と 呼 びます 1 再 帰 的 な 問 合 せ 2 問 合 せ クライアント 5 回 答 ( 代 理 ) 4キャッシュ 複 製 DNS キャッシュ 3 回 答 原 本 DNS コンテンツ 3
1.2 DNSキャッシュポイズニング DNSキャッシュポイズニングの 実 現 手 法 偽 の 再 帰 的 な 問 合 せ(1)に 対 して 本 物 のコンテンツの 回 答 (5) よりも 先 に 偽 の 回 答 (3)を 送 り 込 むことで キャッシュに 偽 の 情 報 (4)を 覚 えこませる(キャッシュさせる) 攻 撃 です 1 偽 の 再 帰 的 な 問 合 せ クライアントの 役 割 を 果 たす 攻 撃 者 3 偽 の 回 答 ( 本 物 の 回 答 よりも 先 に 送 り 込 む) 2 問 合 せ DNSの 役 割 を 果 たす 攻 撃 者 偽 の 原 本 クライアント 4キャッシュ 偽 の 複 製 DNS キャッシュ 5 回 答 原 本 DNS コンテンツ 4
1.2 DNSキャッシュポイズニング DNSキャッシュポイズニングによる 脅 威 (その1) 攻 撃 者 が 罠 をはったWebへの 誘 導 キャッシュは クライアントの 再 帰 的 な 問 合 せ(1)に 対 する 回 答 (キャッシュされた 偽 の 複 製 2)を 持 っている 場 合 には その 複 製 を 回 答 (3)します 結 果 として クライアントは 提 供 された 偽 の 情 報 により 攻 撃 者 が 罠 をはったWeb(4)に 誘 導 されてしまうことになります 偽 の 複 製 に 登 録 された 攻 撃 者 Web 4 偽 Webにアクセス 原 本 に 登 録 された 正 規 Web 1 再 帰 的 な 問 合 せ クライアント 3 回 答 ( 代 理 ) 2キャッシュ 偽 の 複 製 DNS キャッシュ 原 本 DNS コンテンツ 5
1.2 DNSキャッシュポイズニング DNSキャッシュポイズニングによる 脅 威 (その2) DoS 攻 撃 ための 増 幅 装 置 データサイズの 大 きな 偽 の 複 製 (2)を 覚 えこませた(キャッシュさせた) 後 キャッシュに 対 して 発 信 元 を 詐 称 した 再 帰 的 な 問 合 せ(1)を 行 います 結 果 として データサイズの 大 きな 偽 の 複 製 (3)を 攻 撃 対 象 サー バに 送 信 してしまうことになります 理 論 的 に49 倍 程 度 のトラフィック 増 幅 が 可 能 であると 報 告 されています 理 論 的 には 49 倍 程 度 の 増 幅 可 攻 撃 対 象 1 再 帰 的 な 問 合 せ( 発 信 元 詐 称 ) 3 回 答 ( 代 理 ) 攻 撃 者 2キャッシュ 偽 の 複 製 DNS キャッシュ 原 本 DNS コンテンツ 6
2. DNSの 動 作 と 関 連 ツール 2.1 DNSの 動 作 概 説 2.2 whoisサービス 2.3 nslookupコマンド 2.4 まとめ 7
2.1 DNSの 動 作 概 説 インターネット 直 接 接 続 PCの 場 合 (ブラウザでプロキシ 設 定 なし) example.com ドメイン インターネット Web コンテンツ 1URL 入 力 http://www.example.com/ 5HTTPアクセス 4 回 答 208.77.188.166 3 問 合 せ クライアント PC DNS 設 定 キャッシュ 2 再 帰 的 な 問 合 せ www.example.com 8
2.1 DNSの 動 作 概 説 イントラネット 接 続 PCの 場 合 (ブラウザでプロキシ 設 定 あり) example.com ドメイン インターネット Web コンテンツ ファイア ウォール 1URL 入 力 http://www.example.com/ 6HTTPアクセス プロキシ DNS 設 定 5 回 答 キャッシュ 4 問 合 せ 2HTTPアクセス 3 再 帰 的 な 問 合 せ クライアント PC DNS 設 定 ブラウザでプロキシ 設 定 ありの 場 合 クライアントPCはDNSに 再 帰 的 な 問 合 せをしません 9
2.2 whoisサービス whoisサービスとは IPアドレスやドメイン 名 の 登 録 者 などに 関 する 情 報 を インターネットユーザ が 誰 でも 参 照 できるサービスです このサービスを 使 用 することで ドメイン の( 原 本 ) 情 報 管 理 を 行 うDNS(コンテンツ)を 確 認 できます whoisサービスは トップレベルドメイン 別 にサービスサイトが 存 在 します トッ プレベルドメインとは.jp.com.net などを 示 します JPRS whois (.jp の 場 合 ) http://whois.jprs.jp/ InterNIC WHOIS(.com.net などの 場 合 ) http://www.internic.net/whois.html その 他 以 下 の whois サービスサイトがあります APNIC WHOIS AfriNIC WHOIS ARIN WHOIS RIPE NCC WHOIS LACNIC WHOIS 10
2.2 ドメイン( 原 本 ) 情 報 管 理 の 確 認 方 法.jp ドメインの whois サービスサイト 1whoisサービスにアクセス http://whois.jprs.jp/ 2ドメイン 名 を 入 力 ipa.go.jp 3 結 果 ipa.go.jpドメインの ( 原 本 ) 情 報 管 理 をしている DNS(コンテンツ) 11
2.2 ドメイン( 原 本 ) 情 報 管 理 の 確 認 方 法.com の whois サービスサイト 1whoisサービスにアクセス http://www.internic.net/whois.html 2ドメイン 名 を 入 力 example.com 3 結 果 example.comドメインの ( 原 本 ) 情 報 管 理 をしている DNS(コンテンツ) 12
2.3 nslookup コマンド nslookupは DNSに 登 録 されている 情 報 を 参 照 するコマンドです 参 照 可 能 な 情 報 の 例 ホスト 名 からIPアドレス IPアドレスからホスト 名 ドメイン( 原 本 )を 管 理 しているDNS ドメインのメール ホスト 名 からIP IPアドレスの 検 索 クライアントPC PCにおける における DNS 設 定 の 確 認 クライアントPCで 設 定 している DNSの 名 前 とアドレス 13
2.3 nslookupコマンド nslookupコマンドの 表 示 結 果 の 例 を 環 境 別 に 説 明 します 使 用 コマンド 書 式 nslookup [ 検 索 するホスト 名 ] [ 使 用 するDNS] [ 使 用 するDNS]を 指 定 しない 場 合 には クライアントPCにおける DNS 設 定 が 使 用 されます 接 続 環 境 インターネット 直 接 接 続 PC イントラネット 接 続 PC 使 用 するDNS DNS アクセス 制 限 なし アクセス 制 限 あり 組 織 内 キャッシュ 組 織 外 キャッシュ パターン 1 2 3 4 14
2.3 nslookupコマンド1 インターネット 直 接 接 続 PCの 場 合 [ 使 用 するDNS]としてインターネット 上 のアクセス 制 限 されていない キャッシュ( 含 むコンテンツ 兼 用 )を 指 定 した 場 合 インターネット example.com ドメイン コンテンツ C: >nslookup www.example.com. 202.229.63.xxx Server: aaa.aaa.xxx Address: 202.229.63.xxx Non-authoritative answer: Name: www.example.com Address: 208.77.188.166 クライアント PC 3 回 答 208.77.188.166 [ 使 用 するDNS] 1 再 帰 的 な 問 合 せ www.example.com 2 問 合 せ キャッシュ コンテンツ 202.229.63.xxx クライアントPCからの 再 帰 的 な 問 合 せ の 回 答 が キャッシュを 経 由 した 回 答 の 場 合 には Non-authoritative answer: と 表 示 されます これは コンテンツサー バからのオリジナルの 回 答 ではないこ とを 意 味 します 15
2.3 nslookupコマンド2 インターネット 直 接 接 続 PCの 場 合 [ 使 用 するDNS]としてインターネット 上 のアクセス 制 限 されている キャッシュ( 含 む コンテンツ 兼 用 )を 指 定 した 場 合 インターネット example.com ドメイン コンテンツ C: >nslookup www.example.com. 202.229.63.yyy Server: aaa.aaa.yyy Address: 202.229.63.yyy *** 202.229.63.yyy can't find www.example.com.: Query refused 2 回 答 NG キャッシュ コンテンツ 202.229.63.yyy クライアントPCにキャッシュへの アクセス 許 可 権 限 がない 場 合 には 再 帰 的 な 問 合 せは 拒 否 されます クライアント PC [ 使 用 するDNS] 1 再 帰 的 な 問 合 せ www.example.com 16
2.3 nslookupコマンド3 イントラネット 接 続 PCの 場 合 [ 使 用 するDNS]として 自 組 織 のキャッシュを 指 定 した 場 合 example.com ドメイン C: >nslookup www.example.com. 10.10.10.10 Server: dns-internal.ipa.go.jp Address: 10.10.10.10 インターネット 3 回 答 208.77.188.166 コンテンツ 2 問 合 せ Non-authoritative answer: Name: www.example.com Address: 208.77.188.166 ファイア ウォール クライアント PC キャッシュ 10.10.10.10 [ 使 用 するDNS] ipa.go.jp ドメイン コンテンツ nslookupコマンド1と 同 じ 結 果 が 得 ら れます 1 再 帰 的 な 問 合 せ www.example.com 17
2.3 nslookupコマンド4 イントラネット 接 続 PCの 場 合 [ 使 用 するDNS]としてインターネット 上 のキャッシュを 指 定 した 場 合 インターネット example.com ドメイン キャッシュ 199.7.69.1 C: >nslookup www.example.com. 199.7.69.1 DNS request timed out. timeout was 2 seconds. *** Can't find server name for address 199.7.69.1: Timed out Server: UnKnown Address: 199.7.69.1 ファイア ウォール [ 使 用 するDNS] クライアント PC キャッシュ 1 再 帰 的 な 問 合 せ www.example.com ipa.go.jp ドメイン コンテンツ DNS request timed out. timeout was 2 seconds. *** Request to UnKnown timed-out ファイアウォールなどで [ 使 用 するDNS ]へのアクセスが 制 限 されている 場 合 には タイムアウトが 発 生 します 18
2.4 まとめ whoisサービスに 登 録 されているDNS(コンテンツ) と nslookupで 表 示 されるDNS(コンテンツ)は 一 致 していますか? C: >nslookup -q=ns example.jp. Server: dns-internal.ipa.go.jp Address: 10.10.10.10 Non-authoritative answer: example.jp nameserver = wed.example.jp example.jp nameserver = sun.example.jp example.jp nameserver = mon.example.jp example.jp nameserver = fri.example.jp example.jp nameserver = sat.example.jp 5 件 example.jp Domain Information: [ドメイン 情 報 ] [Domain Name] EXAMPLE.JP [ 登 録 者 名 ] [Registrant] [ネーム] sun.example.jp [ネーム] mon.example.jp [ネーム] fri.example.jp [ネーム] sat.example.jp 4 件 wed.example.jp internet address = 202.229.xxx.5 sun.example.jp internet address = 202.229.xxx.1 mon.example.jp internet address = 202.229.xxx.2 fri.example.jp internet address = 202.229.xxx.3 sat.example.jp internet address = 202.229.xxx.4 ドメイン 名 の 登 録 と DNS の 設 定 に 関 する 注 意 喚 起 http://www.ipa.go.jp/security/vuln/20050627_dns.html 19
3. 検 査 ツールの 使 い 方 と 注 意 点 3.1 Cross-Pollination Check 3.2 DNS-OARC Randomness Test (Web 版 ) 3.3 DNS-OARC Randomness Test (コマンドライン 版 ) 3.4 まとめ 20
3.1 Cross-Pollination Checkの 使 い 方 (1/2) http://recursive.iana.org/ コンテンツを 検 査 するツールです ドメイン 名 を 入 力 すると そのド メインのコンテンツを 調 べて 1) 再 帰 動 作 の 可 否 2) 送 信 元 ポー ト 番 号 のランダム 性 有 無 を 確 認 し 結 果 を 表 示 してくれます 自 分 の 管 理 しているドメイン 名 を 入 力 することで 自 ドメインのコンテンツ を 検 査 可 能 です 1 検 査 ページにアクセス 2ドメイン 名 を 入 力 例 :ipa.go.jp 3クエリ 送 信 をクリック 21
3.1 Cross-Pollination Checkの 使 い 方 (2/2) コンテンツ 毎 に 結 果 が 表 示 されます 結 果 は Highly Vulnerable Vulnerable Safeのいずれかになります Safeの 場 合 は 再 帰 的 な 問 合 せに 回 答 しなかったことを 示 しており 再 帰 動 作 が 無 効 化 もしくは 制 限 されていることがわかります Safe 以 外 の 場 合 は 再 帰 的 な 問 合 せに 回 答 したことを 示 しており セキュリティ 修 正 プログラム(ポート 番 号 のランダム 化 )が 適 用 されていればVulnerable さ れていなければHighly Vulnerableになります < 検 査 結 果 の 例 > < 検 査 結 果 の 見 方 > Highly Vulnerable Vulnerable 再 帰 動 作 無 効 No No 送 信 元 ホ ート のランタ ム 化 No Yes Safe Yes - 22
3.1 Cross-Pollination Checkの 仕 組 みと 注 意 点 インターネット 側 から 再 帰 的 な 問 合 せを 送 信 し 回 答 があれば 送 信 元 ポート 番 号 のランダム 性 を 検 査 します IANA Cross-Pollination Check 3ipa.go.jpドメインの コンテンツを 調 査 ルート jpドメイン co.jpドメイン インターネット 4ipa.go.jpドメインのコンテンツに 対 して 1) 再 帰 動 作 の 確 認 2) 送 信 元 ポート 番 号 の ランダム 性 の 検 査 を 行 う ipa.go.jpドメイン 2HTTPアクセス コンテンツ #1 コンテンツ #2 コンテンツ #3 キャッシュ 1 検 査 したいドメイン(ipa.go.jp)を 入 力 ツール 実 行 PC コンテンツとして 登 録 されて いなければ 検 査 されない 23
3.1 検 査 ツールが 送 信 元 ポート 番 号 を 確 認 する 仕 組 み 検 査 ツールは 自 身 のコンテンツへ 問 合 せが 発 生 するように 検 査 対 象 に 再 帰 的 な 問 合 せを 送 信 することで 再 帰 動 作 時 の 送 信 元 ポート 番 号 を 調 査 しま す また 複 数 回 の 問 合 せを 行 うことで ポート 番 号 のランダム 性 を 検 査 していま す 検 査 ツール 検 査 対 象 DNS DNSクライアント 送 信 元 :6001/ 宛 先 :53 送 信 元 :6002/ 宛 先 :53 送 信 元 :6003/ 宛 先 :53 検 査 用 コンテンツ への 問 合 せ 検 査 用 コンテンツ IANA Cross-Pollination Check DNS-OARC Randomness Test 宛 先 :53/ 送 信 元 :1025 宛 先 :53/ 送 信 元 :1026 宛 先 :53/ 送 信 元 :1027 再 帰 動 作 再 帰 動 作 再 帰 動 作 24
3.2 DNS-OARC(Web 版 )の 使 い 方 (1/2) https://www.dns-oarc.net/oarc/services/dnsentropy 自 分 が 使 用 しているキャッシュを 検 査 するツールです Test My DNS ボタンをクリックすると 自 動 的 に 検 査 が 開 始 され 1) 送 信 元 ポー ト 番 号 のランダム 性 有 無 2)トランザクションIDのランダム 性 有 無 の 検 査 結 果 が 新 しいウインドウに 表 示 されます 1 検 査 ページにアクセス 2クリックして 検 査 開 始 25
3.2 DNS-OARC(Web 版 )の 使 い 方 (2/2) キャッシュ 毎 に 送 信 元 ポート 番 号 及 びトランザクションIDのランダム 性 が GREAT GOOD POORの3 段 階 で 表 示 されます 注 ) 必 ずしも 全 てのキャッシュ が 検 査 対 象 になる 訳 ではありません < 検 査 結 果 の 例 > < 検 査 結 果 の 見 方 > 26
3.2 DNS-OARC(Web 版 )の 仕 組 み Webアクセス 時 に 名 前 解 決 を 行 ったキャッシュが 検 査 対 象 となります すなわち OSに 設 定 しているDNS(=DNS 設 定 )です DNS-OARC インターネット 5[ 乱 数 ].et.dns-oarc.netに 問 合 せを 送 信 したキャッシュに 対 して 1) 送 信 元 ポート 番 号 のランダム 性 2)トランザクションIDのランダム 性 の 検 査 を 行 う 4[ 乱 数 ].et.dns-oarc.netを DNS-OARCに 問 合 せ 1"Test My DNS" をクリック 2[ 乱 数 ].et.dns-oarc.net にリダイレクトを 指 示 キャッシュ ツール 実 行 PC DNS 設 定 3[ 乱 数 ].et.dns-oarc.netを キャッシュに 再 帰 的 な 問 合 せ 27
3.2 DNS-OARC(Web 版 )の 注 意 点 プロキシ 環 境 においては プロキシに 設 定 されているキャッシュが 検 査 対 象 となるため 必 ずしもツール 実 行 PCに 設 定 されたキャッシュが 検 査 対 象 となる 訳 ではありません DNS-OARC インターネット 4DNS-OARCに 対 して 問 合 せを 行 ったキャッシュが 検 査 対 象 となる ここでは 構 成 上 外 部 キャッシュが 検 査 対 象 となる 3 問 合 せ ファイア ウォール 1HTTPアクセス プロキシ 2 再 帰 的 な 問 合 せ 外 部 キャッシュ キャッシュ #2 ツール 実 行 PC DNS 設 定 内 部 キャッシュ 28
3.3 DNS-OARC(コマンドライン 版 )の 使 い 方 (1/2) DNS-OARCには Web 版 の 他 にコマンドライン 版 があります コマンドライン 版 では 検 査 対 象 のDNSを 任 意 に 指 定 可 能 です コマンドライン 版 は WindowsもしくはLinuxのnslookupコマンドで 実 行 します(digコ マンドでも 同 様 に 実 行 できます 詳 しくは 下 記 解 説 ページを 参 照 ください) 送 信 元 ポート 番 号 のランダム 性 検 査 の 場 合 nslookup -q=txt -timeout=10 porttest.dns-oarc.net. [ 検 査 対 象 DNS] トランザクションIDのランダム 性 検 査 の 場 合 nslookup -q=txt -timeout=10 txidtest.dns-oarc.net. [ 検 査 対 象 DNS] 解 説 ページ https://www.dns-oarc.net/oarc/services/porttest https://www.dns-oarc.net/oarc/services/txidtest http://itpro.nikkeibp.co.jp/article/column/20080811/312660/ 29
3.3 DNS-OARC(コマンドライン 版 )の 使 い 方 (2/2) 検 査 対 象 ns.example.com(192.168.0.2) の 実 行 結 果 は 次 の 通 りです C: >nslookup -q=txt -timeout=10 porttest.dns-oarc.net. ns.example.com. Server: ns.example.com Address: 192.168.0.2 Non-authoritative answer: porttest.dns-oarc.net canonical name =porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k. j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net text = "192.168.0.2 is GREAT: 26 queries in 3.6 seconds from 26 ports with std dev 17332" y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net nameserver = ns.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net 30
3.3 DNS-OARC(コマンドライン 版 )の 注 意 点 (1/2) コマンドライン 版 では Web 版 (プロキシ 経 由 )では 検 査 対 象 とならないキャッ シュをイントラネット 内 から 検 査 可 能 です ただし ツール 実 行 PCと 検 査 対 象 DNS 間 のDNS 通 信 が 遮 断 されていない 場 合 に 限 ります DNS-OARC インターネット 3 検 査 実 行 2 問 合 せ 1 再 帰 的 な 問 合 せ ファイア ウォール プロキシ DNS 設 定 外 部 キャッシュ 検 査 対 象 DNS ツール 実 行 PC 31
3.3 DNS-OARC(コマンドライン 版 )の 注 意 点 (2/2) ファイアウォールなどにより ツール 実 行 PCと 検 査 対 象 DNS 間 のDNS 通 信 が 遮 断 されている 場 合 は イントラネットから 正 しく 検 査 が 行 えません その 場 合 は インターネットに 直 接 接 続 しているPCから 実 行 してください DNS-OARC ツール 実 行 PC インターネット DNS 通 信 が 遮 断! 3 検 査 実 行 2 問 合 せ 1 再 帰 的 な 問 合 せ ファイア ウォール プロキシ DNS 設 定 外 部 キャッシュ 検 査 対 象 DNS ツール 実 行 PC 32
3.4 まとめ 検 査 ツールでの 確 認 は 終 了 しましたか? Cross-Pollination Checkツールでは コンテンツに 対 して 1) 再 帰 動 作 の 可 否 2) 送 信 元 ポート 番 号 のランダム 性 有 無 を 検 査 できます DNS-OARCツールでは キャッシュに 対 して 1) 送 信 元 ポート 番 号 のラ ンダム 性 有 無 2)トランザクションIDのランダム 性 有 無 を 検 査 できます コンテンツの 検 査 には Cross-Pollination Checkを 使 用 しましょう キャッシュの 検 査 には DNS-OARC Randomness Test (Web 版 )を 使 用 しましょう Cross-Pollination CheckとDNS-OARC Randomness Test (Web 版 )のいず れでも 検 査 できない 場 合 は DNS-OARC Randomness Test (コマンドライン 版 )を 使 用 しましょう その 際 環 境 によっては イントラネットからは 正 しく 検 査 ができない 場 合 があ り インターネットに 直 接 接 続 しているPCから 検 査 を 行 う 必 要 があります 33
4. 再 帰 動 作 の 設 定 4.1 BIND DNSでの 対 策 4.2 Windows DNSでの 対 策 4.3 まとめ 34
4.1 BIND DNSでの 対 策 BIND DNSでの 対 策 ポイントは 次 の 通 りです コンテンツ 再 帰 動 作 が 無 効 になっていることを 確 認 する キャッシュ 兼 コンテンツ コンテンツ 単 独 ( 再 帰 動 作 を 無 効 とし キャッシュとして 動 作 させない あるいは キャッシュとコンテンツを 物 理 装 置 的 に 分 離 する)での 稼 動 を 検 討 する コンテンツ 単 独 での 稼 動 が 可 能 な 場 合 には コンテンツでの 対 策 を 実 施 する キャッシュ 兼 コンテンツで 運 用 する 必 要 がある 場 合 には 再 帰 的 な 問 合 せは イントラネットからのアクセスのみを 許 可 する キャッシュ 再 帰 的 な 問 合 せは イントラネットからのアクセスのみを 許 可 する 35
4.1 コンテンツでの 対 策 セカンダリDNS (バックアップ) 202.229.63.234 インターネット ファイア ウォール メール my-network 192.168.1.0/24 コンテンツ example.jpドメイン Web 3 問 合 せ 5ドメイン 情 報 の 転 送 要 求 1 問 合 せ コンテンツ プライマリDNS 192.218.88.1 // グローバルオプションの 設 定 options { fetch-glue no ; // BIND 9 では 不 要 recursion no ; directory "/etc/ns" ; allow-transfer { none ; } ; }; // example.jp のマスタ DNS 設 定 zone "example.jp" { type master ; file "example.jp.zone" ; allow-transfer { 202.229.63.234 ; } ; }; // ルートへの hint 情 報 zone "." { type hint ; file "/dev/null" ; // ファイル 名 に /dev/null を 指 定 } ; 36
4.1 キャッシュ 兼 コンテンツでの 対 策 セカンダリDNS (バックアップ) 202.229.63.234 インターネット ファイア ウォール メール my-network 192.168.1.0/24 コンテンツ 5ドメイン 情 報 の 転 送 要 求 example.jpドメイン Web 2 再 帰 的 な 問 合 せ 3 問 合 せ 1 問 合 せ 4 再 帰 的 な 問 合 せ キャッシュ コンテンツ プライマリDNS 192.218.88.1 // イントラネットからのアクセス 設 定 acl my-network { 192.168.1.0/24 ; } ; // グローバルオプションの 設 定 options { fetch-glue no ; // BIND 9では 不 要 recursion yes ; directory "/etc/ns" ; allow-query { localhost ; my-network ; } ; allow-transfer { none ; } ; }; // example.jp のプライマリ DNS 設 定 zone "example.jp" { type master ; file "example.jp.zone" ; allow-query { any ; } ; allow-transfer { 202.229.63.234 ; } ; }; zone "." { type hint ; file "named.root" ; } ; 37
4.1 キャッシュ 兼 コンテンツでの 対 策 ( 留 意 事 項 1) BIND9.2.6ならびに それ 以 前 の 実 装 で allow-queryを 使 ってアクセス 制 御 した 場 合 アクセス 制 御 は 有 効 に 機 能 するのですが(status: REFUSED) 再 帰 動 作 の 有 効 フラグ(ra: Recursion available)がon(flags: ra)となるため Cross-Pollination Check(http://recursive.iana.org/) では Vulnerable(Is recursive, could not detect source port randomisation) と 判 定 されま す ; <<>> DiG <<>> @bind926.ipa.go.jp. www.example.com. ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 62833 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 BIND 最 新 版 では この 問 題 は 解 決 されていますので BIND 最 新 版 にアップデートすることを 推 奨 します なお allow-recursionを 併 記 することで 再 帰 動 作 の 有 効 フラグをOFFできますが あくま でも 暫 定 対 策 として 利 用 してください options { fetch-glue no ; // BIND 9では 不 要 recursion yes ; directory "/etc/ns" ; allow-query { localhost ; my-network ; } ; allow-recursion { localhost ; my-network ; } ; // BIND 9.2.6 以 前 への 暫 定 対 策 allow-transfer { none ; } ; }; 38
4.1 キャッシュ 兼 コンテンツでの 対 策 ( 留 意 事 項 2) allow-queryとallow-recursionのアクセス 制 御 の 違 い allow-queryを 使 用 したアクセス 制 御 の 場 合 には 再 帰 的 な 問 合 せ 自 身 を 拒 否 (status: REFUSED)し 何 もデータを 含 まない 回 答 を 返 信 します ; <<>> DiG <<>> @allow-query.ipa.go.jp. www.example.com. ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 54392 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 allow-recursionを 使 用 したアクセス 制 御 の 場 合 には 再 帰 的 な 問 合 せを 受 入 れ ます(status: NOERROR) ただし 名 前 解 決 をせず(ANSWER: 0) 次 に 問 合 せ るべきDNS(AUTHORITY: 2, ADDITIONAL: 2)を 返 信 します ; <<>> DiG <<>> @allow-recursion.ipa.go.jp. www.example.com. ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 535 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2 39
4.1 キャッシュ 兼 コンテンツでの 対 策 allow-queryを 用 いたアクセス 制 御 を 推 奨 します allow-recursionを 用 いた アクセス 制 御 の 場 合 再 帰 的 な 問 合 せを 受 け 入 れて しまいます allow-queryを 用 いた アクセス 制 御 の 場 合 再 帰 的 な 問 合 せを 拒 否 できます 40
4.1 キャッシュでの 対 策 セカンダリDNS (バックアップ) 202.229.63.234 インターネット ファイア ウォール メール my-network 192.168.1.0/24 コンテンツ example.jpドメイン Web 2 再 帰 的 な 問 合 せ 3 再 帰 的 な 問 合 せ キャッシュ プライマリDNS 192.218.88.1 // イントラネットからのアクセス 設 定 acl my-network { 192.168.1.0/24 ; } ; // グローバルオプションの 設 定 options { fetch-glue no ; // BIND 9では 不 要 recursion yes ; directory "/etc/ns" ; allow-query { localhost ; my-network ; } ; }; // ルートへの hint 情 報 zone "." { type hint ; file "named.root" ; } ; 41
4.2 Windows DNSでの 対 策 Windows DNSでの 対 策 ポイントは 次 の 通 りです コンテンツ 再 帰 動 作 が 無 効 になっていることを 確 認 する キャッシュ 兼 コンテンツ Windows DNSは 再 帰 的 な 問 合 せを 受 け 付 けるか/ 否 かしか 設 定 できないため(BIND DNSのような 細 かなアクセス 制 御 機 能 な し) キャッシュとコンテンツを 物 理 装 置 的 に 分 離 して 運 用 す る キャッシュ ファイアウォールなどのパケットフィルタリング 機 能 を 用 いて イントラネット からの 再 帰 的 な 問 合 せのみを 許 可 するよう 制 限 する 42
4.2 コンテンツでの 対 策 // 再 帰 動 作 の 設 定 セカンダリDNS (バックアップ) 202.229.63.234 コンテンツ 3 問 合 せ インターネット 5ドメイン 情 報 の 転 送 要 求 // ドメイン 情 報 の 転 送 設 定 ファイア ウォール メール my-network 192.168.1.0/24 example.jpドメイン Web 1 問 合 せ コンテンツ プライマリDNS 192.218.88.1 43
4.2 コンテンツでの 対 策 ( 設 定 画 面 拡 大 ) // 再 帰 動 作 の 設 定 // ドメイン 情 報 の 転 送 設 定 44
4.2 キャッシュ 兼 コンテンツでの 対 策 セカンダリDNS (バックアップ) 202.229.63.234 コンテンツ 3 問 合 せ 4 再 帰 的 な 問 合 せ Windows DNSは 再 帰 的 な 問 合 せを 受 け 付 けるか/ 否 か しか 設 定 できないため(BIND DNS のような 細 かなアクセス 制 御 機 能 なし) キャッシュと コンテンツを 物 理 装 置 的 に 分 離 して 運 用 します インターネット 5ドメイン 情 報 の 転 送 要 求 ファイア ウォール メール my-network 192.168.1.0/24 example.jpドメイン Web 2 再 帰 的 な 問 合 せ 1 問 合 せ キャッシュ コンテンツ プライマリDNS 192.218.88.1 45
4.2 キャッシュでの 対 策 セカンダリDNS (バックアップ) 202.229.63.234 コンテンツ 4 再 帰 的 な 問 合 せ ファイアウォール 製 品 などのパケッ トフィルタリング 機 能 を 用 いて イ ントラネットからの 再 帰 的 な 問 合 せのみを 許 可 するよう 制 限 します また Windows DNSのセキュ リティ 機 能 を 活 用 します インターネット ファイア ウォール メール my-network 192.168.1.0/24 example.jpドメイン Web 2 再 帰 的 な 問 合 せ キャッシュ プライマリDNS 192.218.88.1 // セキュリティ 機 能 の 設 定 46
4.2 キャッシュでの 対 策 ( 設 定 画 面 拡 大 ) // 再 帰 動 作 の 設 定 // セキュリティ 機 能 の 設 定 47
4.3 まとめ DNSの 設 定 は 適 切 ですか? キャッシュとして 動 作 しているDNSが インターネットからの 再 帰 的 な 問 合 せ(1)に 対 して 再 帰 動 作 による 問 合 せ(2)をしてしまう 場 合 DNSキャッシュポイズニング 攻 撃 (3)を 受 ける 可 能 性 が 高 くなりま す 攻 撃 者 偽 の 原 本 3 偽 の 回 答 2 問 合 せ example.comドメイン インターネット 1 再 帰 的 な 問 合 せ www.example.comの IPアドレスを 教 えてください コンテンツ DNS ファイア ウォール メール イントラネット Web ipa.go.jpドメイン コンテンツ DNS キャッシュ コンテンツ DNS 偽 の 複 製 キャッシュ DNS 2 問 合 せ 偽 の 複 製 48
[ 発 行 ] [ 執 筆 ] 2009 年 1 月 14 日 2009 年 2 月 6 日 2009 年 8 月 11 日 第 1 版 : 新 規 第 2 版 :DNS-OARCの 使 い 方 (P26)とDDoS 対 策 の 注 意 事 項 (P40)を 追 記 第 3 版 :RFC1035にあわせた 用 語 定 義 (P3 他 )に 変 更 JVNVU#725188(P35)を 追 記 IPA( 独 立 行 政 法 人 情 報 処 理 推 進 機 構 )セキュリティセンター 寺 田 真 敏