Skip to content Skip to navigation Skip to footer

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

お問い合わせ 

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

インターネット制御メッセージプロトコル(ICMP)は、ネットワーク上のデバイス間のデータ通信の問題を送信するためのプロトコルです。この定義におけるICMPは主に、データが目的の宛先にタイムリーに到達しているかどうかを判断するために使用されます。ICMPは、エラー報告プロセスおよびネットワークのデータ通信の可否を判定するテストにおいて極めて重要ですが、分散サービス妨害(DDoS)攻撃にも悪用されることがあります。

ネットワーク通信におけるICMPの動作は、家を建てる大工とホームセンター間のやりとりに似ています。ホームセンターは、画鋲、床板、屋根材、断熱材などの部材を要求された通りの順序で届ける必要があります。

たとえば、大工が壁の工事に着手するために、28枚の2×4(ツーバイフォー)、10ポンドの釘、扉を注文したとします。最初に釘、次に2×4、最後に扉を届けるように要求しました。ホームセンターは、要求された順序で商品を送りましたが、最初に扉が届いてしまいました。壁を建てずに扉を取り付けることはできないため、これでは大工は作業を開始できません。そこで、大工は釘と2×4を再度送るようにホームセンターに要求しました。ホームセンターは配送の運転手に別の経路で運ぶように指示し、商品を届けました。

ICMPは、大工とホームセンター間のやりとりと同じように動作します。ICMPは、到着するはずのデータに関するメッセージを宛先から送信元に送信します。もし、データが宛先に到達しなかったり、誤った順序で送信された場合、ICMPはデータを再送信するように送信元に通知します。ICMPはデータに関する情報を通信するためのプロトコルであるため、データそのものは管理しません 。

また、ネットワーク通信を7つの階層で示す開放型システム間相互接続(OSI)モデルにおいて、ICMPは独自の階層を持っていません。ICMPを理解すれば、貴重なツールであることがわかるでしょう。また、組織を脅かすDDoS攻撃において、ICMPがどのように悪用されているかを理解することも重要です。

ICMPの用途は何ですか?

ICMPの第1の用途は、エラーの報告です。インターネットを経由して接続された2つのデバイス間で、データが目的の宛先に到達しない場合、ICMPは受信デバイスから送信デバイスにエラーを生成します。例えば、ルーターが受信不可能なサイズのパケットを受信した場合、ルーターはそのパケットを破棄して、データ送信元に ICMPメッセージを送信します。

ICMPのもう1つの一般的な用途は、ネットワークのパフォーマンスを評価する診断ツールとしての使用です。tracerouteとpingは両方ともICMPを使用します。tracerouteとpingは、データが正常に送信されているかを確認するために送信されるメッセージです。tracerouteは、データのパケットが宛先に到達するために通過したデバイスをレポートに表示します。このレポートには、データを処理した物理的なルーターも含まれます。 

tracerouteは、データがあるデバイスから別のデバイスへの移動にかかった時間も示します。ルーターと別のルーターの間の移動はホップと呼ばれます。tracerouteの情報は、経路上のどのデバイスが遅延を引き起こしているかを把握するのに役立ちます。

pingはtracerouteに似ていますが、よりシンプルです。pingは、データが2点間を移動するのに要した時間を示します。pingのプロセス中にICMPのエコー要求とエコー応答が使用されるため、pingはICMPの補助的な役割を果たします。

また、ICMPは、ネットワークの性能を低下させるために悪用されることもあります。例えば、ICMPフラッド、Smurf攻撃、Ping of death攻撃など、ネットワーク上のデバイスの正常な機能の妨害手段として悪用される場合もあります。

ICMPの動作の仕組み

ICMPは、インターネットプロトコル(IP)バージョン6(IPv6)とは異なり、伝送制御プロトコル(TCP)やユーザーデータグラムプロトコル(UDP)に関連付けられていません。このため、ICMPメッセージをあるデバイスから他のデバイスに送信する前に、コネクションを確立する必要はありません。 

例えば、TCPでは、2つのデバイスが初めて通信を行う場合、いくつかのプロセスを経て、ハンドシェイクを実行します。ハンドシェイクの完了後、送信元から宛先にデータが送信されます。この情報は、tcpdumpなどのツールで確認することができます。 

ICMPでは、このようなコネクションの確立は必要なく、単にメッセージが送信されます。情報を送信するポートを指定するTCP、UDPとは異なり、ICMPメッセージが受信デバイスの特定のポートに宛てられることはありません。

ICMPはDDoS攻撃でどのように使用されていますか?

ICMPは、ICMPフラッド攻撃、Ping of Death攻撃、Smurf攻撃などのDDoS攻撃で悪用されています。

ICMPフラッド攻撃では、攻撃者は標的デバイスに大量のpingを送信して、すべてのICMPエコー要求を処理できない状態にします。各パケットの処理には応答が必要になるため、デバイスのリソースを枯渇させ、正規ユーザーによるデバイスの使用を妨害します。

Ping of Death攻撃では、攻撃者は標的デバイスに受信不可能なサイズのPingを送信して、デバイスをクラッシュまたはフリーズさせます。断片化したパケットを標的デバイスに送信し、受信側でパケットを復元するとバッファオーバーフローを引き起こし、デバイスを機能停止状態にします。Ping of Death攻撃は、ネットワーク上の古いデバイスを標的にします。 

Smurf攻撃では、攻撃者はIPアドレスを偽装したICMPパケットを送信します。ネットワーク上のデバイスは応答を偽装IPアドレスに送信するため、大量のICMPパケットを送信することで標的デバイスをオーバーフローさせます。Ping of Death攻撃と同様、Smurf攻撃は、特に古いデバイスを標的にします。

フォーティネットはどのように役立つか

フォーティネットのFortiDDoSは、DDoS攻撃におけるICMPの悪用からネットワークを防御し、安全な運用をサポートします。FortiDDoSはデバイスの振る舞いを見守り、異常なICMPメッセージの動きにフラグを立て、攻撃を阻止します。FortiDDoSは、ダッシュボード、保護プロファイル、グローバル設定、使いやすいグラフィカルユーザーインターフェースを備えており、より多くの利便性を提供します。 

FortiDDoSは、誤検知を最小限に抑え、ITチームの時間と労力を削減します。DDoS攻撃に対する包括的なツールであるFortiDDoSは、何十万もの異なるデータを同時に検証します。また、ネットワークアクティビティの概要を示す詳細な報告やグラフを生成します。

よくある質問

ICMPの用途は何ですか?

インターネット制御メッセージプロトコル(ICMP)は、エラー報告およびネットワーク診断に使用されます。エラー報告プロセスでは、データが目的の宛先に到達しない場合、宛先から送信元にメッセージを送信します。診断プロセスでは、pingおよびtracerouteを使用して、データ通信の状態に関する情報のメッセージを送信します。

ICMPはpingと同じですか?

ICMPとpingは、関連性はありますが異なります。ICMPは、デバイス間で送信されるメッセージを制御するプロトコルです。ICMPプロトコルが送信するエコー要求とエコー応答は、一般的にpingと呼ばれています。pingはICMPを使用して生成されますが、pingはICMPではありません。

ICMP pingはどのように動作しますか?

ICMPのpingプロセスは、ネットワーク上の2つのデバイス間の接続をテストする方法です。ネットワーク上のパケットロスや遅延の確認にも使用することができます。pingコマンドは、ネットワーク上のデバイスにICMPエコー要求を送信し、受信したデバイスはそのICMPエコー要求に即座に応答します。このデータをソフトウェアで解析することで、遅延の有無やデータが正常に送信されているかを確認することができます。