ICMP
ICMP とは何ですか?
ICMPRFC 792(IPv4)および RFC 4443(IPv6)で定義されたネットワーク層の制御・診断プロトコルで、ホストやルーターがエラー報告や経路状況の通知に利用する。
Internet Control Message Protocol は IP の不可欠な構成要素で、IPv4 は RFC 792、IPv6 は RFC 4443 で定義されています。ルーターや末端ホストはこれを使ってエラーメッセージ(宛先到達不能、時間超過、フラグメント必要)や診断クエリ(ping や traceroute で使われるエコー要求/応答)を送信します。ICMP は IP の上で直接動作し、プロトコル番号は 1(ICMPv6 は 58)で、ポートを持ちません。
Path MTU Discovery(RFC 1191)や IPv6 Neighbor Discovery に不可欠であるため、ICMP を一律にブロックすると、大きなパケットが静かに消失する「PMTU ブラックホール」がしばしば発生します。歴史的な悪用例は十分に文書化されています。Smurf attack(CERT 勧告 CA-1998-01)は、被害者のアドレスをブロードキャストアドレス宛てに送るエコー要求の送信元として偽装し、洪水を増幅しました。Ping of Death は、再構成すると 65,535 バイトを超えるエコーパケットで 1990 年代後半の TCP/IP スタックをクラッシュさせました。Loki ツール(Phrack 第 49 号および第 51 号、1996-97 年)は ICMP トンネリングの先駆けとなり、エコーペイロードの中に隠密シェルを潜ませました。ICMP リダイレクトメッセージも偽造して、ホストのルーティングテーブルを汚染することができます。
防御策としては、ICMP を破棄するのではなくレート制限する、type 3 と 4 に加えてすべての必須の ICMPv6 Neighbor Discovery メッセージを許可する(RFC 4890 のガイダンス)、堅牢化したホストでは ICMP リダイレクトを無視する、NDR/EDR でエコーペイロードを検査してトンネリングを検出する、などがあります。
flowchart LR A[Host: ping] -->|Echo Request type 8| R[Router] R --> B[Target host] B -->|Echo Reply type 0| A R -.->|Time Exceeded type 11| A R -.->|Dest Unreachable type 3| A X[Attacker] -.->|Forged Redirect type 5| A
● 例
- 01
ping example.com は ICMP エコー要求を送り、エコー応答が返るまでの時間を計測する。
- 02
ルーターは DF ビットが立っているがフラグメントが必要な場合に ICMP type 3 code 4 を返す。
● よくある質問
ICMP とは何ですか?
RFC 792(IPv4)および RFC 4443(IPv6)で定義されたネットワーク層の制御・診断プロトコルで、ホストやルーターがエラー報告や経路状況の通知に利用する。 サイバーセキュリティの ネットワークセキュリティ カテゴリに属します。
ICMP とはどういう意味ですか?
RFC 792(IPv4)および RFC 4443(IPv6)で定義されたネットワーク層の制御・診断プロトコルで、ホストやルーターがエラー報告や経路状況の通知に利用する。
ICMP からどのように防御しますか?
ICMP に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ICMP の別名は何ですか?
一般的な別名: インターネット制御メッセージプロトコル。