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スプーフィングへの主な対策技術がどのレイヤーに効くかを整理します。
対策の比較まとめ
| 対策技術 | 何を防ぐか | 導入難易度 | 現在の普及状況 |
|---|---|---|---|
| DNSSEC | キャッシュポイズニング・応答改ざん | 高(ゾーン署名が必要) | 普及途上 |
| DoH / DoT | 通信路の盗聴・中間者攻撃 | 中(対応リゾルバーが必要) | 拡大中 |
| ソースポートランダマイゼーション | IDの総当たり推測 | 低(OS・サーバー設定) | ほぼ標準化 |
| HTTPS証明書の確認 | 偽サイトへの誘導に気づく | 低(ユーザー教育) | 基本対策として定着 |
覚え方のポイント
🎯 「住所録を偽造 → DNSスプーフィング」「薬を盛る → キャッシュポイズニング」
スプーフィング(Spoofing)は「なりすまし・偽造」全般を指す言葉。DNSスプーフィングは「DNS情報のなりすまし」で、その代表的な実現手段が「キャッシュに毒(偽情報)を盛り込む」キャッシュポイズニングだよ。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 4033〜4035 | DNSSEC の基本仕様(署名・検証・鍵管理) |
| RFC 7858 | DNS over TLS(DoT)の仕様 |
| RFC 8484 | DNS over HTTPS(DoH)の仕様 |
| RFC 5452 | DNSへの偽造応答攻撃への対策(ソースポートランダマイゼーション等) |
| RFC 7626 | DNSプライバシー問題の分析 |
関連用語
- DNS — ドメイン名をIPアドレスに変換するインターネットの「住所録」システム
- DNSキャッシュポイズニング — DNSサーバーのキャッシュに偽情報を注入する攻撃手法
- DNSSEC — DNSの応答にデジタル署名を付加してなりすましを防ぐ拡張仕様
- フィッシング — 偽サイトや偽メールで認証情報を騙し取る攻撃全般
- 中間者攻撃(MITM) — 通信の途中に割り込み、盗聴・改ざんを行う攻撃
- DNS over HTTPS(DoH) — DNS通信をHTTPSで暗号化してプライバシーと安全性を高める技術