DNS

DNSスプーフィング でぃーえぬえすすぷーふぃんぐ

DNSキャッシュポイズニングフィッシングなりすましDNSSECサイバー攻撃
DNSスプーフィングって何?

簡単に言うとこんな感じ!

インターネットの「住所録」(DNS)を書き換えて、本物のサイトに行こうとしたユーザーを、こっそり偽物のサイトへ誘導する攻撃だよ。案内板の行き先を差し替えてしまうイメージで、気づかないまま偽サイトでパスワードを入力してしまう、なんて事態になるんだ!


DNSスプーフィングとは

DNSスプーフィング(DNS Spoofing) とは、DNS(Domain Name System)の仕組みを悪用し、ドメイン名IPアドレスの対応関係を偽の情報に書き換える攻撃手法です。ユーザーが正しいURLをブラウザに入力しても、攻撃者が用意した偽サイトへ飛ばされてしまいます。

特に 「DNSキャッシュポイズニング(DNS Cache Poisoning)」 と呼ばれる手法が有名で、DNSサーバーが一時保存(キャッシュ)している情報そのものを汚染(ポイズニング)することで、そのサーバーを参照するすべてのユーザーを一度に騙せてしまう点が危険です。

フィッシング詐欺や認証情報の窃取、マルウェア配布などに悪用されており、ユーザー側からは正規のURLを使っているのに騙される という性質上、非常に検知が難しい攻撃として知られています。


DNSスプーフィングの仕組みと種類

攻撃の基本フロー

【正常な流れ】
ユーザー → DNSサーバー「example.comのIPは?」
          ← 「203.0.113.1 だよ(本物)」
ユーザー → 203.0.113.1(本物サイト)✅

【スプーフィング後】
ユーザー → DNSサーバー「example.comのIPは?」
          ← 「198.51.100.99 だよ(偽情報)」← ここが汚染されている
ユーザー → 198.51.100.99(偽サイト)⚠️

主な攻撃手法の種類

手法概要影響範囲
キャッシュポイズニングDNSサーバーのキャッシュに偽情報を注入そのサーバーを使う全ユーザー
ローカルDNS改ざんPCやルーターのhostsファイルや設定を書き換え端末・拠点単位
中間者攻撃(MITM)通信経路でDNS応答を横取り・差し替えネットワーク単位
リゾルバー乗っ取りISPや社内DNSサーバー自体を不正制御広範囲

キャッシュポイズニングの仕組み(詳細)

攻撃者は、DNSサーバーが外部に問い合わせを行う瞬間を狙い、正規の応答が届く前に 偽の応答パケット を大量送信します。DNSの応答には トランザクションID(16ビット) と呼ばれる識別番号が使われますが、このIDが推測・一致した場合、偽の情報がキャッシュに書き込まれてしまいます。これを 「誕生日攻撃(Birthday Attack)」 と組み合わせた手法が特に強力です。


歴史と背景

  • 1990年代初頭: DNSはセキュリティをほとんど考慮せずに設計された。応答の真正性を確認する仕組みがなかった
  • 1993年: セキュリティ研究者がDNSキャッシュポイズニングの概念を初めて指摘
  • 2008年: セキュリティ研究者 ダン・カミンスキー(Dan Kaminsky) が実用的なキャッシュポイズニング攻撃手法を発見。業界全体で緊急パッチが適用され、大きな話題となった(「カミンスキー攻撃」 として知られる)
  • 2008年〜: カミンスキー攻撃への対策として、送信元ポートのランダム化(ソースポートランダマイゼーション)が広く普及
  • 2010年代: DNSSEC(DNS Security Extensions) の普及が進み始める。署名による応答の真正性検証が可能に
  • 2020年: SAD DNS攻撃 が発表され、ポートランダム化を突破する新たな手法が明らかになり、再び業界に衝撃を与えた
  • 現在: DNSSEC・DNS over HTTPS(DoH)・DNS over TLS(DoT)などの対策が推進中

対策技術との比較・関係図

DNSスプーフィングへの主な対策技術がどのレイヤーに効くかを整理します。

DNSスプーフィング 対策技術マップ DNSSEC(DNS Security Extensions) DNSの応答にデジタル署名を付加。応答が改ざんされていないか検証できる DNS over HTTPS(DoH) DNS通信をHTTPSで暗号化。盗聴・改ざんを防止 DNS over TLS(DoT) DNS通信をTLSで暗号化。同様に通信路を保護 ソースポートランダマイゼーション 送信元ポートをランダム化しIDの推測を困難に 0x20エンコーディング クエリの大文字・小文字をランダム化して照合 ファイアウォール・IDS/IPS 不審なDNS応答パターンを検知・遮断するネットワーク防御 ユーザー側の対策 HTTPSの確認(鍵マーク)・証明書エラーへの注意・信頼できるDNSリゾルバーの利用 ↑ 上に行くほどDNSプロトコル寄り 下に行くほど運用・人的対策寄り ↑

対策の比較まとめ

対策技術何を防ぐか導入難易度現在の普及状況
DNSSECキャッシュポイズニング・応答改ざん高(ゾーン署名が必要)普及途上
DoH / DoT通信路の盗聴・中間者攻撃中(対応リゾルバーが必要)拡大中
ソースポートランダマイゼーションIDの総当たり推測低(OS・サーバー設定)ほぼ標準化
HTTPS証明書の確認偽サイトへの誘導に気づく低(ユーザー教育)基本対策として定着

覚え方のポイント

🎯 「住所録を偽造 → DNSスプーフィング」「薬を盛る → キャッシュポイズニング」

スプーフィング(Spoofing)は「なりすまし・偽造」全般を指す言葉。DNSスプーフィングは「DNS情報のなりすまし」で、その代表的な実現手段が「キャッシュに毒(偽情報)を盛り込む」キャッシュポイズニングだよ。


関連する規格・RFC

規格・RFC番号内容
RFC 4033〜4035DNSSEC の基本仕様(署名・検証・鍵管理)
RFC 7858DNS over TLS(DoT)の仕様
RFC 8484DNS over HTTPS(DoH)の仕様
RFC 5452DNSへの偽造応答攻撃への対策(ソースポートランダマイゼーション等)
RFC 7626DNSプライバシー問題の分析

関連用語