DNSアンプ攻撃 でぃーえぬえすあんぷこうげき
DNSアンプ攻撃とは
DNSアンプ攻撃(DNS Amplification Attack) とは、DNS(Domain Name System)の問い合わせ・応答の非対称性を悪用したDDoS攻撃の手法です。攻撃者は、送信元IPアドレスを攻撃対象のIPに偽装(IPスプーフィング)した小さなDNS問い合わせをオープンリゾルバ(誰からでも問い合わせを受け付けるDNSサーバー)に送りつけます。その結果、DNSサーバーから巨大な応答パケットが攻撃対象へ大量に送りつけられます。
「アンプ(Amplification=増幅)」 と呼ばれる理由は、問い合わせパケットのサイズに比べて応答パケットが数十倍〜数百倍に膨れ上がる点にあります。たとえば、わずか数十バイトの問い合わせに対し、数千バイトの応答が返るケースもあります。この「増幅率」が高いほど、少ない攻撃リソースで大きな被害を与えられるため、攻撃者にとって効率的な手口となっています。
また、リフレクション攻撃(Reflection Attack) の側面も持ちます。DNSサーバーが「反射板」として使われ、攻撃者自身は直接ターゲットを攻撃しない形をとるため、攻撃元の追跡を難しくするという特徴もあります。
DNSアンプ攻撃の仕組みと構造
攻撃の流れ
| ステップ | 内容 |
|---|---|
| ① IPスプーフィング | 攻撃者が送信元IPを攻撃対象のIPに偽装したDNS問い合わせを作成 |
| ② 問い合わせ送信 | オープンリゾルバに小さなパケット(約40〜60バイト)を大量送信 |
| ③ 増幅 | DNSサーバーが送信元IP(=攻撃対象)宛に巨大な応答を返送 |
| ④ 攻撃対象への集中 | 多数のDNSサーバーから大量トラフィックが攻撃対象に殺到 |
| ⑤ サービス停止 | ターゲットのネットワーク帯域・サーバーリソースが枯渇 |
なぜDNSが狙われるのか
DNSはUDP(User Datagram Protocol) を使って通信します。UDPはコネクションレス型のプロトコルであるため、送信元IPアドレスを偽装しても通信が成立してしまいます。もしTCPであれば3ウェイハンドシェイクが必要なため偽装が困難ですが、UDPにはその仕組みがありません。
さらに、ANY(あらゆる種類のリソースレコードを一括で返す)クエリや、DNSSEC(DNS Security Extensions)の署名情報を含む応答は特にパケットが大きくなりやすく、増幅率が高くなります。
増幅率の目安
| クエリの種類 | 問い合わせサイズ(概算) | 応答サイズ(概算) | 増幅率 |
|---|---|---|---|
| ANYクエリ | 約60バイト | 約3,000バイト以上 | 約50倍以上 |
| DNSSECを含む応答 | 約40バイト | 約2,000〜4,000バイト | 約50〜100倍 |
| 通常のAレコード | 約40バイト | 約200バイト | 約5倍 |
覚え方:「小石で岩を投げる」
攻撃者は小石(小さな問い合わせ) を投げるだけ。でもDNSサーバーという「投石機(アンプ)」が勝手に岩(巨大な応答) を被害者に向けて発射してくれる──そんなイメージで覚えると分かりやすいよ!
歴史と背景
- 2000年代前半:DNSのUDP応答の非対称性が悪用可能であることが研究者によって指摘され始める
- 2006年:US-CERTがDNSリフレクション・増幅攻撃に関する注意喚起を初めて公式発表
- 2013年3月:スパム対策組織「Spamhaus」を標的としたDNSアンプ攻撃が発生。ピーク時に 300Gbps超 のトラフィックが観測され、当時の最大級DDoS攻撃として世界的に報道される
- 2014年:RFC 7534 にてANYクエリの廃止が議論され始める
- 2015年〜:各ISPでBCP38(IPスプーフィング対策のフィルタリング)の普及が進むも、オープンリゾルバは世界に数百万台規模で残存
- 2018年:Memcachedを使った類似の増幅攻撃(1.7Tbps)が発生し、アンプ攻撃の脅威が改めて注目を浴びる
- 2020年代:DNSオーバーHTTPS(DoH)・DNS64などの普及とともに、オープンリゾルバ対策が継続的な課題に
関連する技術・対策・比較
DNSアンプ攻撃 vs 主なDDoS手法
| 手法 | 増幅率 | 特徴 |
|---|---|---|
| DNSアンプ攻撃 | 約50〜100倍 | DNSのANY/DNSSECを悪用 |
| NTPアンプ攻撃 | 約500〜700倍 | NTPのmonlistコマンドを悪用 |
| SSDP攻撃 | 約30倍 | IoT機器のUPnPを悪用 |
| Memcachedアンプ | 約10,000〜51,000倍 | キャッシュサーバーを悪用 |
| SYN flood | なし(増幅なし) | TCPコネクション確立を妨害 |
主な対策
| 対策 | 実施主体 | 概要 |
|---|---|---|
| BCP38の適用 | ISP・ネットワーク管理者 | 送信元IPを偽装したパケットをネットワーク境界でフィルタリング |
| オープンリゾルバの閉鎖 | DNSサーバー管理者 | 自組織外からのDNS問い合わせを拒否する設定 |
| ANYクエリの制限・無効化 | DNSサーバー管理者 | RFC 8482に基づきANYクエリへの応答を最小化 |
| レートリミット(DNS RRL) | DNSサーバー管理者 | 同一送信元への応答レートを制限し増幅を抑制 |
| 上流ISPでのトラフィック吸収 | ISP・CDN事業者 | Anycastや上流でのブラックホールルーティング |
| DDoS対策サービスの利用 | 企業・組織 | Cloudflare・AWS Shield等の活用 |
攻撃の構造図
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 5358 | リフレクション攻撃防止のため、DNSサーバーを再帰リゾルバとして外部公開しないよう求めるBCP |
| RFC 7534 | AS112プロジェクト:不要なDNSクエリを吸収する仕組みの標準化 |
| RFC 8482 | DNSのANYクエリへの応答を最小化する仕様(アンプ攻撃対策の一環) |
| RFC 2827 | BCP38:IPスプーフィング(送信元IP偽装)を防ぐためのネットワークフィルタリング指針 |
| RFC 5405 | UDPを使うアプリケーション設計における注意点(UDP増幅リスクへの言及あり) |
関連用語
- DNS — インターネット上のドメイン名とIPアドレスを対応づける仕組み
- DDoS攻撃 — 大量のトラフィックを集中させてサービスを停止させる分散型サービス妨害攻撃
- オープンリゾルバ — 誰からでもDNS問い合わせを受け付けてしまう、設定不備のDNSサーバー
- IPスプーフィング — 送信元IPアドレスを偽装してパケットを送りつける攻撃手法
- UDP — コネクションレス型の軽量な通信プロトコル。DNSアンプ攻撃の温床となる特性を持つ
- DNSSEC — DNSの応答に電子署名を付加するセキュリティ拡張。応答が大きくなり増幅率が上がる側面も
- BCP38 — ISPが実施すべきIPスプーフィング対策フィルタリングのベストプラクティス
- リフレクション攻撃 — 第三者のサーバーを「反射板」として悪用するDDoS手法の総称