インターネット制御メッセージプロトコル(ICMP)とは?

インターネット制御メッセージプロトコル(ICMP)は、インターネット上のネットワークの問題を診断するために使用されます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • ICMPを定義する
  • pingおよびtracerouteの仕組みを説明する
  • DDoS攻撃においてICMPプロトコルがどのように使用されるかを理解する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

インターネット制御メッセージプロトコル(ICMP)とは?

Internet Control Message Protocol(ICMP)は、ネットワーク通信の問題を診断するためにネットワークデバイスが使用するネットワーク層のプロトコルです。ICMPは主に、データが目的の宛先にタイムリーに到達しているかどうかを判断するために使用されます。一般に、ICMPプロトコルルーターなどのネットワークデバイスで使用されます。ICMPは、エラーの報告やテストに極めて重要ですが、分散サービス妨害(DDoS)攻撃にも使用されることがあります。

サインアップ
あらゆるCloudflareプランで実現するセキュリティとスピード

ICMPは何に使用されるのか?

ICMPの主な目的は、エラー報告です。2つのデバイスがインターネット経由で接続されている場合、ICMPはデータのいずれかが意図した宛先に到達しなかった場合、送信デバイスと共有するためにエラーを生成します。たとえば、パケットのデータがルーターにとって大きすぎる場合、ルーターはパケットを破棄して、データ送信元に ICMPメッセージを送り返します。

ICMPプロトコルの2番目の用途は、ネットワーク診断を実行することです。一般的に使用される端末ユーティリティtracerouteとpingは両方ともICMPを使用して動作します。tracerouteユーティリティは、2つのインターネットデバイス間のルーティングパスを表示するために使用されます。ルーティングパスは、要求が宛先に到達する前に通過する必要がある、接続されたルーターの実際の物理パスです。あるルーターと別のルーターとの間の移動は「ホップ」と呼ばれ、traceroute は途中の各ホップに必要な時間も報告します。これは、ネットワーク遅延の原因を特定するのに役立ちます。

pingユーティリティは、tracerouteの簡易版です。pingは、2つのデバイス間の接続速度をテストし、データパケットが宛先に到達して送信者のデバイスに戻るまでの正確な時間を報告します。pingはルーティングやホップに関するデータを提供しませんが、それでも2つのデバイス間のレイテンシーを測定するための非常に有用な指標になります。ICMPエコー要求およびエコー応答メッセージは、通常pingを実行する目的で使用されます。

残念ながら、ネットワーク攻撃によってこのプロセスが悪用され、ICMPフラッド攻撃Ping of Death攻撃などの妨害手段が作り出されることがあります。

ホワイトペーパー
ネットワーク最新化の戦略策定

ICMPの仕組みは?

インターネットプロトコル(IP)とは異なり、ICMPはTCPUDPのようなトランスポート層プロトコルに関連付けられていません。このため、ICMPはコネクションレス型プロトコルとなり、あるデバイスがICMPメッセージを送信する前に、他のデバイスとの接続を開く必要はありません。通常のIPトラフィックは、TCPを使用して送信されます。これは、データを交換する2つのデバイスが最初にTCPハンドシェイクを実行して、デバイスの双方がデータを受信する準備ができていることを確認することになります。ICMPでは、このようなコネクションのオープンは行われません。また、ICMPプロトコルは、デバイスの特定のポートをターゲットにすることはできません。

ICMPパケットとは?

ICMPパケットとは、ICMPプロトコルを使用したパケットのことです。ICMPパケットは、通常のIPヘッダーの後にICMPヘッダーを含みます。ルーターやサーバーがエラーメッセージを送信する必要がある場合、ICMPパケットのボディまたはデータセクションには、常にエラーが発生したパケットのIPヘッダーのコピーが含まれます。

ICMPはDDoS攻撃でどのように使用されるか?

ICMPフラッド攻撃

PingフラッドやICMPフラッドは、攻撃者が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攻撃を防御する一つの方法となります。