インターネット制御メッセージプロトコル(ICMP)は、インターネット上のネットワークの問題を診断するために使用されます。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
Internet Control Message Protocol(ICMP)は、ネットワーク通信の問題を診断するためにネットワークデバイスが使用するネットワーク層のプロトコルです。ICMPは主に、データが目的の宛先にタイムリーに到達しているかどうかを判断するために使用されます。一般に、ICMPプロトコルはルーターなどのネットワークデバイスで使用されます。ICMPは、エラーの報告やテストに極めて重要ですが、分散サービス妨害(DDoS)攻撃にも使用されることがあります。
ICMPの主な目的は、エラー報告です。2つのデバイスがインターネット経由で接続されている場合、ICMPはデータのいずれかが意図した宛先に到達しなかった場合、送信デバイスと共有するためにエラーを生成します。たとえば、パケットのデータがルーターにとって大きすぎる場合、ルーターはパケットを破棄して、データ送信元に ICMPメッセージを送り返します。
ICMPプロトコルの2番目の用途は、ネットワーク診断を実行することです。一般的に使用される端末ユーティリティtracerouteとpingは両方ともICMPを使用して動作します。tracerouteユーティリティは、2つのインターネットデバイス間のルーティングパスを表示するために使用されます。ルーティングパスは、要求が宛先に到達する前に通過する必要がある、接続されたルーターの実際の物理パスです。あるルーターと別のルーターとの間の移動は「ホップ」と呼ばれ、traceroute は途中の各ホップに必要な時間も報告します。これは、ネットワーク遅延の原因を特定するのに役立ちます。
pingユーティリティは、tracerouteの簡易版です。pingは、2つのデバイス間の接続速度をテストし、データパケットが宛先に到達して送信者のデバイスに戻るまでの正確な時間を報告します。pingはルーティングやホップに関するデータを提供しませんが、それでも2つのデバイス間のレイテンシーを測定するための非常に有用な指標になります。ICMPエコー要求およびエコー応答メッセージは、通常pingを実行する目的で使用されます。
残念ながら、ネットワーク攻撃によってこのプロセスが悪用され、ICMPフラッド攻撃やPing of Death攻撃などの妨害手段が作り出されることがあります。
インターネットプロトコル(IP)とは異なり、ICMPはTCPやUDPのようなトランスポート層プロトコルに関連付けられていません。このため、ICMPはコネクションレス型プロトコルとなり、あるデバイスがICMPメッセージを送信する前に、他のデバイスとの接続を開く必要はありません。通常のIPトラフィックは、TCPを使用して送信されます。これは、データを交換する2つのデバイスが最初にTCPハンドシェイクを実行して、デバイスの双方がデータを受信する準備ができていることを確認することになります。ICMPでは、このようなコネクションのオープンは行われません。また、ICMPプロトコルは、デバイスの特定のポートをターゲットにすることはできません。
ICMPパケットとは、ICMPプロトコルを使用したパケットのことです。ICMPパケットは、通常のIPヘッダーの後にICMPヘッダーを含みます。ルーターやサーバーがエラーメッセージを送信する必要がある場合、ICMPパケットのボディまたはデータセクションには、常にエラーが発生したパケットのIPヘッダーのコピーが含まれます。
ICMPフラッド攻撃
PingフラッドやICMPフラッドは、攻撃者がICMPエコー要求パケットで標的のデバイスを圧倒しようとするものです。標的になったデバイスは各パケットを処理して応答する必要があり、正規のユーザーがサービスを受けられなくなるまで、その演算に必要なリソースが消費されます。
ICMPフラッド攻撃:
Ping of Death攻撃
Ping of Death攻撃とは、攻撃者が標的となる機器にパケットの最大許容サイズよりも大きなpingを送信してその機器をフリーズまたはクラッシュさせる攻撃を指します。パケットは標的に届く途中で断片化されますが、受信したパケットが最大許容サイズを超える元のサイズに組み直されると、パケットのサイズによってバッファオーバーフローが発生します。
Ping of Death攻撃は、現時点ではほとんど過去のものとなっています。しかし、古いネットワーク機器では、まだその影響を受ける可能性があります。
SMURF攻撃
Smurf攻撃では、攻撃者は送信元IPアドレスを偽装したICMPパケットを送信します。ネットワーク機器はこのパケットの返信を偽装されたIPに送信することで、被害機器を不要なICMPパケットで氾濫させます。「Ping of Death」と同様、現在、Smurf攻撃はレガシー機器でのみ有効です。
レイヤー3のDDoS攻撃で使用されるネットワーク層プロトコルはICMPだけではありません。例えば、攻撃者は過去にGREパケットも使用しています。
Webプロパティを標的とするアプリケーション層DDoS攻撃とは対照的に、通常、ネットワーク層DDoS攻撃はネットワーク機器やインフラストラクチャを標的にします。Cloudflare Magic Transitはネットワーク層DDoS攻撃を防御する一つの方法となります。