Smurf攻撃とは?ICMP・ブロードキャスト・ルーターの動作まで図解
Smurf攻撃を、家庭のWi-Fiから始めてIPアドレス、MACアドレス、サブネット、ICMP Echo、ルーター、有向ブロードキャスト、IP偽装まで徹底解説。ノード図ラボで要求・応答・防御を体験します。
まず全体像から
1人への問い合わせを、何人分もの返事に変えてしまう
Smurf攻撃は、ICMP Echo Request(pingで使われる問い合わせ)の送信元IPアドレスを標的に偽装し、別ネットワークのブロードキャストアドレス宛てに送る古典的な反射・増幅攻撃です。脆弱な設定のネットワークでは、複数端末が一斉に標的へEcho Replyを返します。
攻撃者
『返信先は標的です』と偽装
多数の端末
問い合わせを受け取り返信
標的
頼んでいない返信が集中
現在はルーター側で有向ブロードキャストの転送を遮断することが標準的です。以下の攻撃図は、歴史的に問題となった危険な設定を再現した教材です。
1. まず、スマートフォンがWi-Fiにつながると何が起こる?
自宅でスマートフォンからWebサイトを見るとき、スマートフォンはWebサーバーに向かって直接電波を飛ばしているわけではありません。まず家庭のWi-Fiアクセスポイント(AP)に無線で送ります。その機器がルーターとしても機能していれば、外部ネットワークへIPパケットを転送します。
📱 スマートフォン
私用IP 192.168.10.20
📶 Wi-Fiルーター
AP・ルーター・NAPTなどを内蔵
🌐 インターネット
異なるネットワークを経由
スマホ ―― 無線LAN(802.11) ―― AP/ルーター ―― 回線 ―― 外部サービス
SSIDはWi-Fi一覧で見えるネットワーク名です。アクセスポイントは無線端末をLANにつなぐ機能、ルーターはIPアドレスを見て別のネットワークにパケットを送る機能です。家庭用Wi-Fiルーターはこれらを1台にまとめることが多いため、別の概念であると気づきにくいのです。
MACアドレスはWi-FiやEthernetなど、データリンク層で使うインターフェースの識別子です。IPアドレスはネットワーク層で宛先を示します。ルーターを越えて別のLANへ行くときは、リンク層の宛先MACは区間ごとに変わりますが、最終宛先IPは通常変わりません(NAPTなどを行う場合は例外があります)。
2. IPアドレス・サブネット・ブロードキャストをゼロから
IPv4アドレスは通常「192.168.10.20」のように4つの0〜255の数値で表します。各数値は8ビット(1バイト)で、合計32ビットです。どこまでがネットワークの範囲かを表すのがサブネットマスクです。
ネットワーク
192.168.10.0/24
/24 = 左側24ビットがネットワーク部
サブネットマスク
255.255.255.0
右端の8ビットがホスト部
.0
ネットワークアドレス
.1 ~ .254
一般的なホスト用アドレス
.255
ブロードキャストアドレス
たとえば 198.51.100.0/24 では 198.51.100.255 が有向ブロードキャストアドレスです。「その特定のネットワークにいる全端末に宛てた通信」を意味します。これは普通の端末1台のアドレスとは異なります。
255.255.255.255 は限定ブロードキャストと呼ばれ、そのローカルネットワークだけで使われ、通常ルーターを越えて転送されません。一方、ネットワーク有向ブロードキャストは特定の遠隔ネットワークを指定できるため、過去には転送設定の問題から攻撃に悪用されました。
IPとMAC、ブロードキャストはどう対応する?
| 識別するもの | 例 | 役割 |
|---|---|---|
| 宛先IPv4 | 198.51.100.255 | 特定の/24全体を宛先にする |
| Ethernet宛先MAC | ff:ff:ff:ff:ff:ff | LAN内の全端末への配信 |
| 端末のMAC | 02:00:00:00:00:0a | 特定のインターフェースの例示識別子 |
有向ブロードキャストがLAN側で配信される場合の概念例。Wi-Fiでは802.11フレームを使用し、Ethernetフレームと完全に同じ形式ではありません。
3. ARPとルーター:相手のMACアドレスはどうやって分かる?
ARP(Address Resolution Protocol)は、同じIPv4リンク上で、指定したIPアドレスに対応するMACアドレスを調べる仕組みです。遠方のWebサーバーのMACアドレスを探すのではなく、通常は最初の転送相手(デフォルトゲートウェイ)のMACアドレスを調べます。
スマートフォン
192.168.10.20
📶 アクセスポイント
無線とLANを橋渡し
ルーター
192.168.10.1
ARP Requestは同じLAN内のブロードキャストです。ただし、Smurf攻撃で悪用されるのはARPではなくICMP Echo Requestを運ぶIPv4パケットのブロードキャストです。「ARPもブロードキャストする」からといって、同じ仕組みではありません。
4. レイヤとカプセル化:ICMPはUDPではない
レイヤは仕事の分担で、カプセル化は実際のデータをヘッダで包むことです。pingを実行すると、アプリケーションはOSへICMP Echoの送信を依頼し、OSがICMPメッセージをIPv4の中へ入れます。
| OSIの分類 | 技術 | 役割 |
|---|---|---|
| 第7層 アプリケーション | pingコマンド | 診断を依頼する |
| 第4層 トランスポート | TCP / UDP | 別の通信で利用。今回のICMP Echoには入らない |
| 第3層 ネットワーク | IPv4 / ICMP | IPアドレス・ルーティング・診断メッセージ |
| 第2・1層 | Wi-Fi / Ethernet | その区間で無線フレーム・有線フレームを運ぶ |
20 B
14 B
20 B
4 B
IPv4ヘッダのProtocolフィールドはICMPを示す「1」。IPヘッダが先頭に付き、ICMPがそのペイロードです。VLANやIPv4オプション、物理層のオーバーヘッドは省略しています。
逆にNTP通信なら IP → UDP → NTP になります。Smurf攻撃がICMPを使うのに対し、NTPリフレクション攻撃はUDP上のNTPを利用します。どちらも反射型ですが、プロトコルと増幅の仕組みは同一ではありません。
5. pingで使うICMP Echo Request/Replyを中身から見る
ICMP(Internet Control Message Protocol)は、IP通信に関する通知や診断で使う制御プロトコルです。pingはICMP Echo Requestを送ってEcho Replyが返るか確かめる代表的なコマンドです。pingという名称とICMPというプロトコル名は同義ではありません。
Echo Request:Type 8 / Code 0
「届いていますか?」と問い合わせるメッセージ。IP送信元とIP宛先を記載する。
Echo Reply:Type 0 / Code 0
問い合わせに対する返事。要求の送信元IPが、返信の宛先IPになる。
IPv4 Header(要求) Source IP = 192.0.2.50 ← 偽装された標的 Destination IP = 198.51.100.255 ← /24のブロードキャスト Protocol = 1 ← ICMP ICMP Message Type = 8 ← Echo Request Code = 0 Identifier = 0x1234 ← 模式値 Sequence = 1 Data = (任意のペイロード)
このフィールド例は読み方を理解するためのものです。IPのProtocol=1 とICMPのType=8は別のヘッダの別の値です。ICMP EchoにはTCPのSYNフラグも、UDPのポート123もありません。
6. なぜルーターが重要なのか:有向ブロードキャストの境界
通常のルーターは、IPパケットの宛先アドレスを読んで次のネットワークを選びます。別ネットワークに転送するとき、IPのTTL(転送可能なホップ数に関わる値)を減らし、次のリンクに合わせてEthernetやWi-Fiなどのフレームを作り直します。
ところが、宛先が 198.51.100.255 のように「特定ネットワーク全体」だと事情が異なります。かつては、ルーターがこの有向ブロードキャストをネットワーク内へ転送し、LAN上の複数ホストが受信する環境がありました。Smurf攻撃はそれを悪用します。
通常のユニキャスト
宛先IPは特定の1台
LAN内ブロードキャスト
同じリンクの全端末へ配信
有向ブロードキャスト
別のネットワークの全端末を指定
7. 通信ラボ:同じノード図で要求から返信まで追う
まず「構成」→「要求」→「経路」→「配布」→「反射」の順に進めてみてください。ルーターの有向ブロードキャストを「遮断」のままにした場合、現在の防御設定によって途中で止まります。「許可」に切り替えると、歴史的に成立した条件を観察できます。
通信がどこを通るか、ノード図で追跡
実際のパケットを送信しない、ブラウザー内だけの教材です。最初は現代の推奨設定(有向ブロードキャスト遮断)になっています。
STEP 1 / 5
配置を把握する
赤い標的は192.0.2.50。右側の3台は別のLAN(198.51.100.0/24)にいます。途中のルーターが二つのネットワークをつなぎます。
| 通信 | 送信元 IP | 宛先 IP | ICMP Type |
|---|---|---|---|
| 要求(偽装) | 192.0.2.50 | 198.51.100.255 | 8 / Echo Request |
| 応答(端末Aの場合) | 198.51.100.10 | 192.0.2.50 | 0 / Echo Reply |
例示用アドレスのみ使用。台数は説明用に3台までに制限しています。現実の端末はICMPブロードキャストに応答しない場合もあります。矢印は論理的なIP通信を表し、各区間のMACアドレスを省略しています。
例では1個のEcho Requestから、3台が応答すれば3個のEcho Replyになると考えます。これは「返信数が増える」というファンアウト型の増幅を示すもので、実際の帯域増幅率は要求・応答それぞれのサイズ、端末数、端末が応答するか、経路の制限によって変わります。
8. 似ている攻撃との違い:仕組みを一つずつ図解
同じサービス妨害でも、何を送り、誰が返事をし、何が枯渇するかは異なります。名前ではなく通信の動きで区別しましょう。
Ping of Death:大きすぎるIPデータの再構成を悪用
IPv4では大きなデータグラムを複数のフラグメントに分割し、受信側で再構成する仕組みがあります。古い脆弱な実装では、再構成時にIPv4の最大長65,535バイトを超えるような不正なフラグメントがシステム障害を引き起こしました。
送信元
不正な断片を送信
ネットワーク
複数のIPフラグメントを運搬
古い脆弱な受信側
再構成で異常が発生
フラグメントはIPヘッダのIdentification・Flags・Fragment Offsetなどで扱います。偽装IPが本質ではなく、不正なサイズや再構成を処理する実装の弱点がポイントです。現在の実装で必ずクラッシュするものではありません。
SYNフラッド:TCP接続の準備状態を圧迫
TCPはWeb等で使われるトランスポート層の通信方式で、通常は接続時に3ウェイハンドシェイクを行います。
クライアント
接続を開始したい側
サーバー
接続を受ける側
クライアント → サーバー SYN
クライアント ← サーバー SYN + ACK
クライアント → サーバー ACK
SYNフラッドでは大量の開始要求によって接続準備中の状態を増やし、サーバーのリソースを圧迫します。3通目はACKであり、SYN-ACKではありません。SmurfのICMPブロードキャストとはプロトコルも攻撃箇所も異なります。防御にはSYN cookiesなどがあります。
メールボム:メールサーバーに大量のメッセージを送り込む
メールサーバーがメール受信・保存・フィルタリングに使用する処理能力や容量を、大量のメール送信によって圧迫する攻撃です。多数の感染端末を遠隔操作するボットネットが使われる場合もあります。
多数の送信端末
ボット等からメールを送る
SMTPの通信
メールサーバーへ配信
メールサーバー
キュー・CPU・保存領域に負荷
SMTPはアプリケーション層のプロトコルで、通常TCPを用います。ICMP EchoやIPブロードキャストは使用しません。単に「多数から来る」点だけでSmurfと同一視してはいけません。
NTPリフレクション:特定のサーバーが大きな返信を返す
NTPは時刻を合わせるアプリケーション層のプロトコルで、一般にUDPポート123を利用します。古いNTPサーバーの特定の管理機能などが悪用され、小さな要求に対して大きな応答が返る環境が存在しました。
攻撃者
送信元IPを標的に偽装
古いNTPサーバー
要求より大きな応答
標的
応答データが到達
Smurfは複数端末がそれぞれ返信する方式、NTPリフレクションはサーバーの応答サイズが大きくなる方式が代表例です。どちらもIP送信元アドレスの偽装を悪用します。
9. 防御するには:どこで止めるべきか
① 送信元IPアドレス検証
入口側のルーターで、接続元ネットワークから来るはずのない送信元IPを遮断します。BCP 38の考え方。偽装を広く減らせます。
② 有向ブロードキャストの転送遮断
ルーターが別ネットワーク宛てのブロードキャストを中継しないようにします。RFC 2644に沿った標準設定です。
③ 端末・AP・FWでの応答制限
ブロードキャストされたICMP Echoへの返信を抑止します。Wi-Fiアクセスポイントや端末側の機能も考慮します。
④ トラフィック監視・緩和
異常なICMP流量を観測し、必要ならネットワーク事業者やDDoS対策サービスと連携して経路上で緩和します。
10. 最後に:4つの質問で自分の理解を確認
Smurfで攻撃者が偽装するのは、どのフィールド?
IPv4ヘッダの送信元IPアドレスです。反射先となる標的のIPを記載します。
ICMP Echoの通信にUDPポートは必要?
不要です。IPv4のProtocol=1がICMPを表し、ICMPのType=8/0で要求と応答を区別します。
1個の要求で何個もの返信が集まるのはなぜ?
有向ブロードキャストが転送され、複数端末がEchoに応答する場合、各端末が偽装された送信元(標的)へ返信するためです。
現代のルーターで重要な初期設定は?
有向ブロードキャストの受信・転送を標準で遮断する設定です。RFC 2644に規定されています。
一次資料・技術仕様
本文の基礎を理解したうえで、実際のメッセージ形式やルーターの要件を確かめたい場合は、次の公開仕様を参照できます。
- RFC 792 — Internet Control Message Protocol
- RFC 791 — Internet Protocol
- RFC 919 — Broadcasting Internet Datagrams
- RFC 922 — Broadcasting Internet Datagrams in the Presence of Subnets
- RFC 2644 — Changing the Default for Directed Broadcasts in Routers
- RFC 2827 (BCP 38) — Network Ingress Filtering
- RFC 826 — An Ethernet Address Resolution Protocol
- RFC 9293 — Transmission Control Protocol