DNSの役割

DNSはDomain Name Systemの略で、あるドメインがどのIPアドレスなのかを管理する仕組み。DNSを管理するサーバをDNSサーバや単にネームサーバと呼ぶ。DNSはインターネットを利用すると必ず利用する。例えば、http://www.yahoo.co.jp/にアクセスする際は、PCはネームサーバに問い合わせてサーバのIPアドレスを取得する。Yahooの場合は203.216.243.240が返ってくるので、ブラウザに直接入力しても確認できる。IPアドレスは覚えられないが、ドメインなら覚えられるという点でとても便利。

ドメインベース IPアドレスベース
http://www.yahoo.co.jp http://203.216.243.240/

DNSサーバが管理している情報

DNSサーバはドメインとIPアドレスを関連づけるゾーン情報をもっている。ゾーン情報はドメインベースで管理され、Aレコード、MXレコードなどのレコードと呼ばれる項目でWebサーバやメールサーバを管理している。

$TTL 86400 ← キャッシュさせておく時間
@ IN SOA example.com. root.example.com.(
2004031901 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS exapmle.com.
IN MX 10 example.com.  ← メールサーバーのプライベートIPアドレス
@ IN A XXX.XXX.XXX.XXX ← サーバーのプライベートIPアドレス
sample IN A XXX.XXX.XXX.XXX ← サーバーのプライベートIPアドレス

上記の例ではsample.example.comはXXX.XXXX.XXXX.XXXのIPアドレスと対応づけられている。

概要

インターネットの応答が遅いとの苦情。そこで、J主任とK君の登場。

原因調査と対処

(a)登場。図1でDNSの問題につながるのは、名前解決をしている(r)しかない。楽勝。そして、パケット解析が始まる。ややこしいが、図3をしっかり確認。「DNSクエリを伴わないDNSクエリレスポンス」とあり、確かに図3の詳細のところにQuery responseがある。(b),(c)が登場し、読み進めると「不正なDNSクエリ」というところで、これはDNSキャッシュポイゾニングの攻撃を受けていると気づいた。なので、DNSキャッシュポイゾニングは内部からの問い合わせであると偽装しているので、(b)はアとなり(c)は偽装にしておいた。(d)はもちろん、アとなる。

(e)(f)と下線部1登場。DNSが踏み台にされる可能性に対応せよとの指示がでる。踏み台ってことは、外部からきて外部へ出て行くということで、図3をみると宛先が外部でレスポンス内容も外部だと割と証拠になると判断。なのでⅡとⅤを選択する。下線部1については、この場合コンテンツサーバとキャッシュサーバが同じサーバで機能しているので、外部からの再帰問い合わせを無効にすればよい。この辺りは、よくでる論点なので問題の意図が読みやすい。

異常PCの特定

下線部2登場。Ⅵに異常な通信があるとのこと。図3を見るとMXレコードを引いているのでメールに関係することが分かる。なので(g)迷惑メールを選択。また、何が異常か聞いている。おそらくメールを送信するときは、DMZ上のメールサーバがDNSに問い合わせをすると思われる。そう考えると、社内から外部に直接メールを送ろうとしているのは怪しい。

下線部3登場。Ⅶも怪しいとのこと。SYNが連続しているのでSYNフラッド攻撃が思い浮かんだ。そして該当するものを2つ選べとの指示。1つはコネクションの接続の低下で、もうひとつは、この場合図4をみると内部ネットワークからの接続なのでDNSへの問い合わせなしに直接攻撃していると思われる。

異常PCの対処と今後の対策

怪しい1台のPCを特定する。下線部4登場。不審な通信プロセスとは何かと聞いている。何やろ。何を答えさせたいか、いまいちピンとこない。ウィルスが行う通信って何やろ。監視している項目は、通信プロセス名、実行ファイル名、通信の宛先IPアドレスとポート番号なので、このなかから選べばよいのか??とりあえず、今までのパケット解析から得られた宛先IPアドレスとサービスポートの番号にマッチするプロセスを特定すべきという内容をかいておく。

下線部5登場。TCP/UDPが自動的に発信されるとのこと。DNSの問い合わせやDHCPとかはUDPだったような記憶もあるが、hostsファイルの改ざんでひらめいたことにつながらない。とりあえずhostsファイルはすべてローカルホストに向いてるが回答は思い浮かばない。ログインしていれば、自動的に出るTCP/UDPパケットって・・・思い浮かばない。

[概要]

従業員1000人の通信販売会社の話。カタログ販売とネット販売を行っている。

■図1 Y社のネットワーク構成
おなじみのDMZのパターン。

>> 続きを読む

, ,

DNSリフレクションの仕組み

リフレクションとは反射のこと。直接攻撃するのではなく、あえてDNSサーバに反射させて攻撃する。仕組みは簡単で、DNSサーバに送信元IPアドレスを偽装して、攻撃したい対象に問い合わせる。ポイントは、DNSサーバに問い合わせる時よりも、返ってくるパケットのサイズの方がかなり大きいこと。問い合わせれば、増幅されて返ってくることからDNS ampとも呼ばれる。amp(アンプ)とは、スピーカみたいなやつで音を大きくする装置。

DNSキャッシュポゾニングの仕組み

DNSキャッシュポイゾニングは、偽のゾーン情報をDNSに登録し、悪意あるサイトに誘導する手法である。簡単に説明すると、DNSサーバがゾーン情報を問い合わせ正規の回答をもらう前に、攻撃者が偽の回答を送りつけDNSサーバに登録するという手法である。DNSキャッシュポイゾニングは「コンテンツサーバとキャッシュサーバ」の違いや「再帰問問合せと反復問合せの違い」を知らないと理解しにくい。
DNSにはキャッシュの仕組みがあって、一度他のDNSから回答をもらうとTTL( Time To Live)に設定されている時間だけキャッシュする。あるホスト名のTTLの時間が経過している場合に、攻撃者がホスト名をこのDNSに問合せ、自分で回答を送りつけることで、偽の回答をキャッシュさせる。これをDNSキャッシュポイゾニングという。


この攻撃が成功するためには下のようにいくつかの条件が必要となる。

(1) トランザクションIDが正しい

DNSサーバは16bitのトランザクションIDを見て回答が正規のパケットかどうか判断している。トランザクションIDが推測しやすいものであれば、偽の回答がキャッシュされる可能性は高くなる。

(2) TTLが切れている

TTL(Time To Live)の時間だけキャッシュし、それを超えると上位のDNSサーバに問合せる。

(3) 偽の回答が正規の回答よりも到達する

正規の回答の方が早く到達すると、TTLの時間は偽の回答を受け付けない。

DNSキャッシュポゾニングへの対策

「再帰問合せは信頼できるユーザにのみ提供する」というのが基本的な考え方となる。以下にその例を示す。

その他の対策

その他の対策としてはDNSSECやSSLでの暗号化などの機能が存在する。