このエントリーをはてなブックマークに追加

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での暗号化などの機能が存在する。

関連記事

  1. DNSキャッシュポイゾニング
  2. DNSリフレクション
  3. DNSの仕組み