概要

DNSキャッシュポイズニングとは、ドメイン名をIPアドレスに変換するDNS(ドメインネームシステム)の仕組みを悪用し、偽のアドレス情報をDNSサーバに覚え込ませて、利用者を偽サイトへ誘導する攻撃です。「キャッシュを汚染(poison)する」ことからこう呼ばれます。

利用者が正しいURLを入力しても、汚染されたDNSが偽サイトのIPアドレスを返すため、本人は気づかないまま偽サイトに接続させられます。このように正規URLでも偽サイトに飛ばされる被害をファーミングと呼びます。

詳細(仕組み)

Webサイトを見るとき、PCはまずDNSサーバに「このドメインのIPアドレスは?」と問い合わせ、その応答先に接続します。DNSは効率化のため、調べた結果を一定時間キャッシュ(一時記憶)します。

  1. 攻撃者がDNSサーバに、本来の応答より早く偽の応答を送り込む。
  2. DNSが偽の対応(ドメイン→偽IP)をキャッシュしてしまう。
  3. 以後、そのDNSを使う利用者全員が偽サイトへ誘導される。
DNSキャッシュポイズニングのキーワードは「DNSに偽のIP情報を覚え込ませ偽サイトへ誘導」。正しいURLでも偽サイトに飛ばされるファーミングを引き起こす点が頻出です。

対策

根本対策はDNS応答の真正性を保証するDNSSECです。利用者側でも、偽サイトでは証明書の警告が出ることが多いため、証明書の確認が被害回避に役立ちます。

インシデント事例

ファーミングによるフィッシング被害

DNSの汚染により、利用者が正しい銀行URLを入力したのに偽サイトへ誘導され、認証情報を盗まれる被害が報告されています。URLが正しいだけに利用者が気づきにくい点が深刻でした。

DNSの脆弱性をめぐる世界的対応

DNSの仕組みに広範な脆弱性が見つかり、世界中のDNS運用者が一斉にパッチ適用やDNSSEC導入を進める事態となったことがあります。インフラ全体に関わる重大性を示しました。

試験での問われ方