DNS増幅攻撃とは、分散型サービス拒否(DDoS)攻撃の一種で、攻撃者がオープンなDNSサーバーに小さななりすましのDNSクエリーを送信し、サーバーが疑うことを知らない被害者に巨大なレスポンスを返すというものです。言い換えれば、小さなリクエストが巨大なレスポンスを引き起こし、ターゲットに圧倒的なトラフィックを殺到させる。攻撃者が必要とするリソースは最小限であり、IPスプーフィングにより追跡が極めて困難で、本来送信されるトラフィックの何百倍ものトラフィックを生成することができるため、危険である。
DNS増幅と反射型DDoS攻撃について理解する
DNS増幅攻撃は、その核心において、ドメイン・ネーム・システムの長年にわたる2つの特徴に依存している:DNSはデフォルトでUDPを使用し、UDPはソースIPアドレスを検証しない。DNSはデフォルトでUDPを使用し、UDPは送信元IPアドレスを検証しない。攻撃者がDNSリクエストの送信元として被害者のIPを偽造すると、応答するDNSサーバーはすべて、知らず知らずのうちに被害者に応答を送信することになる。
このため、DNSサーバーは理想的な "リフレクター "となる。攻撃者は被害者に直接接触する必要がない。その代わり、オープンリゾルバや誤った設定のDNSサーバーがトラフィックの大砲となる。なぜなら、DNSレスポンス、特に ANY またはDNSSEC関連のレスポンスが、最初のクエリよりもかなり多くのデータを含んでいる場合、攻撃者は増幅効果を得ることができ、ほとんど追加的な労力をかけることなく影響を倍増させることができます。

DNS増幅の仕組み技術的なチュートリアル
攻撃は概念的には単純だが、トラフィックの仕組みは悪意のある方法でエレガントだ。典型的な攻撃は4つのステップで展開される:
- 攻撃者は被害者のIPアドレスを偽装する。
- 攻撃者は、オープンDNSリゾルバに何千(または何百万)ものDNSクエリを送信する。
- これらのリゾルバは、なりすましたアドレスに大きなDNS応答を返す。
- 迷惑データの洪水は被害者を圧倒する。
典型的な偽造リクエストはパケットレベルでは次のようになる:
ヤムル
送信元IP:被害者IP(なりすまし)
宛先IP:8.8.8.8
プロトコルUDP/53
クエリータイプANY
クエリー: example.com
攻撃者は60バイトのリクエストを送るだけかもしれないが、DNSリゾルバは数キロバイトのデータを返す可能性がある。
攻撃者はほとんど何も投資しないが、被害者はその代償を支払う。
増幅要因:スモール・イン、ビッグ・アウト」が壊滅的な理由
DNSクエリの種類が異なれば、増幅のレベルも異なる。その格差は驚異的である:
| クエリータイプ | リクエストサイズ | 応答サイズ | 増幅率 |
|---|---|---|---|
| 記録 | 60バイト | 512バイト | ~8.5x |
| ANY | 60バイト | 3,500バイト | ~58x |
| DNSSEC | 70バイト | 4,000バイト以上 | ~57x |
| NXNSAttack | 60バイト | 40,000バイト以上 | 600x+ |
特に脅威となるのはその規模だ。わずか100Mbpsの帯域幅を使用するボットネットは、増幅中に複数GbpsのアウトバウンドDNSレスポンストラフィックを生成することができます。CloudflareとCISAは、DNS増幅だけで数百Gbpsを超える複数の実世界DDoS攻撃を記録しています。
制御されたラボでのDNS増幅攻撃のシミュレーション
攻撃者がどのように動作するかを理解するために、研究者や侵入テスト担当者は、隔離された法的に許可された環境でDNS増幅をシミュレートすることがよくあります。PythonとScapyを使用した簡単な概念実証は、増幅を引き起こすことがいかに簡単であるかを示しています:
パイソン
from scapy.all import *
target = "192.168.1.10" # 被害者(なりすましIP)
dns_server = "192.168.1.53" # オープンDNSリゾルバ
packet = IP(src=target, dst=dns_server)/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname="example.com", qtype="ANY"))
for i in range(1000):
send(packet, verbose=0)
print("DNS増幅シミュレーションを送信しました。")
この脚本は2つの厳しい現実を強調している:
- 攻撃者が被害者に直接接触することはない。
- DNSサーバーは不本意な共犯者となる。
- 最小限の帯域幅で、大きなインパクトを生み出すことができる。
これは、攻撃がいかに非対称的であるかを示す鮮明な例である。
DNS増幅が現代の組織にとって危険な理由
リスクはトラフィックの急増にとどまらない。DNSの増幅はシステム的な影響をもたらす:
- 攻撃者にとって低コスト:広帯域インフラは不要
- 困難な帰属:IPスプーフィング:IPスプーフィングは攻撃者の身元を不明瞭にする。
- グローバル・アタック・サーフェス:何百万ものオープンリゾルバが晒されたままになっている。
- 巻き添え被害:DNSプロバイダー、CDN、クラウドプラットフォーム、ISPは下流の障害に苦しむ。
大規模な増幅攻撃の間、組織はしばしば報告する:
| メートル | 通常の交通 | 攻撃時 |
|---|---|---|
| DNS QPS | 1,200 | 480,000 |
| アウトバウンド Mbps | 40 Mbps | 2.9 Gbps |
| ANYクエリー比率 | <1% | 86% |
| トップ・ソースIP | 予測可能 | スプーフィング/ランダム化 |
うまく構築されたネットワークでさえ、このボリュームでは崩れてしまう。
DNS増幅の早期発見:ログ、ルール、トラフィックパターン
トラフィックはDNSクエリに対するDNSリプライという「正当な」ものに見えるため、従来のファイアウォールは増幅攻撃を見逃すことが多い。検知には、挙動ベースのモニタリングが必要です。
スリカータ検出ルール
このルールは、ANYクエリにおける不審な急増にフラグを立てる:
ヤムル
alert dns any any -> any any (
msg: "DNS増幅攻撃の可能性";
dns_query_type == ANY;
threshold:type both, track by_src, count 50, seconds 1;
sid:100001;
)
SQLによるDNSログ分析
SIEMは異常を即座に発見することができる:
sql
SELECT source_ip, COUNT(*) as queries
FROM dns_logs
WHERE query_type = 'ANY'
GROUP BY source_ip
count(*) > 5000;
ANYクエリの突然の急増は、しばしば本格的な攻撃の前兆である。

DNS増幅からの防御:実践的で実用的なテクニック
いくつかのDDoS亜種とは異なり、DNS増幅は適切な設定によって大幅に軽減することができます。
BINDでOpen Recursionを無効にする
バインド
オプション
再帰なし;
allow-query { trusted; };
};
acl "trusted" {。
192.168.1.0/24;
};
再帰を制限することで、DNSサーバーが公衆インターネットから悪用されないようにする。
応答速度制限(RRL)の有効化
バインド
レートリミット
応答/秒 5;
ウィンドウ 5;
スリップ 2;
};
RRLは反復反応を抑制し、増幅の可能性を劇的に減少させる。
iptablesによるIPスプーフィング対策(BCP 38)の実装
バッシュ
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
これにより、最も一般的なスプーフィング・ベクターのひとつである、偽造されたプライベート・アドレス・レンジがネットワークに侵入するのを防ぐことができる。
ANYとDNSSECの比率を監視する
ANYクエリの急増が良性であることはまずない。
Penligentによる侵入テストと自動検証
手作業による監査は非常に重要ですが、今日のDNSインフラは大規模かつ動的であるため、一度テストして忘れることはできません。些細な設定ミスであっても、増幅リスクを再び引き起こす可能性があります。
そこで、次のようなプラットフォームが登場する。 寡黙インテリジェントな自動侵入テスト・システムは、有意義な価値を提供します:
DNS誤設定スキャン
Penligentは自動的に識別します:
- 公開リゾルバ
- RRLの欠落または誤設定
- DNSSEC増幅のリスク
- 乱用を許す再帰ポリシー
未来の脅威:NXNSAttackから反射鏡回転まで
最近の研究では、攻撃者が古典的なANY増幅の域を超えつつあるという不穏な傾向が浮き彫りになっている。NXNSAttackのようなテクニックはリファラルチェーンを悪用して極端な増幅を生み出し、「リフレクター・ローテーション」は大規模なDNSサーバープールを使用してフィルタリングやブラックリストを回避します。
アンプリフィケーションは進化しており、守備側もそれに合わせて進化しなければならない。
結論
DNS増幅攻撃は、DDoSの最も効率的で破壊的な形態の1つである。DNSサーバーを増幅器に変え、小さなクエリーを大洪水に変え、攻撃者を偽造IPアドレスの背後に隠します。少ない労力、高い影響力、グローバルなスケーラビリティの組み合わせにより、現代の組織にとって無視できない脅威となっています。
オープンリカーションの無効化、RRLの有効化、スプーフィング対策の実施、トラフィックの異常の監視、DNSポスチャの定期的なテストなど、適切な設定を行うことで、組織はその露出を大幅に減らすことができます。DNSの規模が大きかったり、常に変化している環境では、Penligentのような自動化されたプラットフォームが、脆弱性が気づかれずに再び現れることがないようにするのに役立ちます。
アップタイム、可用性、信頼がビジネスの成功を定義する世界では、DNSの保護はオプションではなく、基礎的なものです。
