DNSハイジャックの定義
DNSハイジャックとは、利用者が行う「名前解決(ドメイン名→IPアドレス)」の過程で、DNSの応答内容を不正に変更したり、正しい応答を別のものに置き換えることで、利用者を意図しない通信先へ導くことを指します。典型的には、ユーザーがアクセスしたい本来のドメイン名に対して、別のIPアドレスが返される(あるいは返るように見せかけられる)ことで起こります。
ここで重要なのは、DNSハイジャックが「サイトそのものを壊す」ことだけを意味しない点です。あくまで“名前解決の結果”が利用者側に誤った形で届く、という捉え方が基本になります。
仕組み(簡単なモデル)
仕組みを理解するために、最小限の流れで考えると次のようになります。
- ユーザー端末が、あるドメイン名(例:example.com)をIPアドレスに変換するため問い合わせを行う
- その問い合わせに対して、名前解決の結果として「ドメイン名に対応するIPアドレス」が返る
- ユーザー端末は受け取ったIPアドレスへ接続する
DNSハイジャックでは、2)の時点で“別のIPアドレス”が返ったり、利用者の要求が攻撃者の意図する応答に誘導されたりします。その結果、ブラウザが同じドメイン名のまま別のサーバへ通信してしまうことがあり得ます。
ただし、実際の現場では細かな経路(どのDNSサーバが応答したのか、どこまでの範囲が改変されたのか)によって挙動が変わります。一般に言えるのは「DNS応答に影響が出ているか」を見極めるのが核心だ、という点です。
成功しやすい条件と制限(どこまでできるか)
DNSハイジャックの成否は万能ではありません。影響を受ける場所、応答の再利用(キャッシュ)、通信の性質によって制限が生じます。
- “改変できる場所”が限られる:攻撃者がDNS応答に介入できるポイントがある一方で、そこに到達できない構成では成立しにくくなります。
- キャッシュが影響する:一度得られたDNS結果はしばらく使われることがあります。そのため、同じドメイン名でもタイミングにより、観測される現象が変わる場合があります。
- 通信の保護の有無が関係する:DNSを運ぶ仕組みや経路の扱いによって、応答の改変が難しくなることがあります(ただし、ここは状況依存で、断定はできません)。
- 常に“見た目の異常”が出るとは限らない:ドメイン名入力欄は同じでも、裏で到達先が変わることがあります。逆に言うと、画面の印象だけでは判断しにくいことがあります。
また、DNSハイジャックという言葉は広く使われるため、現象の解釈が人によって揺れることがあります。厳密には「名前解決の結果が誤導される」ことを、観測可能な形に落として考えるのが安全です。
間違えやすい関連概念との違い
DNSハイジャックと混同されやすいものに、DNSリークがあります。
