ICMPとは(インターネット制御通知プロトコル)? ICMPの仕組み
ICMP(Internet Control Message Protocol、インターネット制御通知プロトコル)とは、多くの機能を備えた通信システムです。
他のシステムにデータを送信する準備が整っているシステムで、メッセージは正しく処理されるでしょうか。それとも何らかの要素により円滑な通信が妨げられるでしょうか。
デバイスは、このようなステータス情報を共有するためにICMPを使用します。ネットワークで通信の問題が発生し、迅速に診断する必要がある場合、このICMPプロトコルが重要な役割を果たします。
平均的な従業員は、ITの問題のために毎日22分間を無駄に費やしています。ネットワークの運用では、円滑な稼働を続けることが不可欠です。そのためにICMPが役立ちます。
しかし、ICMPの使用にはリスクも伴います。ハッカーが膨大な要求によりフラッド攻撃を実行することで、サーバーの接続が完全に失われることがあるのです。
ICMPプロトコルとは?
1981年、Network Working Groupは、相互接続されたデバイスが迅速かつ容易に通信できるように支援するため、ICMPを開発しました。
開発者が指摘しているとおり、ICMPはネットワークの信頼性を高めるために作られたものではなく、チームがトラブルシューティングを実行して迅速に問題を修正し、オンライン状態を維持できるように設計されたものです。
ICMPは、コンピューターやルーターなどのネットワークデバイスにより使用されます。このICMPシステムは、以下の用途に使用できます。
- 診断:サーバーが開いており、メッセージを受け入れるかどうかを確認します。そのような状態でない場合は、その理由を調べます。
- エラーの報告:データの一部または全部が意図された受信者に届かない理由を特定します。
- 速度:パケットがある場所から別の場所まで移動するのにかかる時間を調べます。
ICMPプロトコルでは、以下の3つの機能が重要な役割を果たします。
- Ping:宛先サーバーにメッセージを送信し、そのメッセージのコピーを受け取ります。このコマンドは、可用性と速度を判断するのに役立ちます。
- Traceroute:宛先へ要求を送信する過程で、要求を処理するすべてのルーターから情報を取得します。
- Unreachable:Tracerouteの途中で、目的地に到達できないという情報が届くことがあります。このような場合、その場所へのメッセージの送信がブロックされます。
ICMPメッセージは、送信するデータが受信されたかどうか、受信された場合はタイムリーに届いたかどうかをチームが把握するためにしばしば使用されます。返されるメッセージはIPの運用を参照します。
ICMPの仕組み
ICMPプロトコルは、ハンドシェイクや正式な接続を必要とせず、コネクションレス型プロトコルとして動作します。また、数値形式のデータが返されるため、それを「解読」するスキルも必要です。
開発者は、ICMPメッセージがどのようなものかを図で説明することがあります。
各ICMPメッセージは、以下の4つの部分で構成されます。
- タイプ:このフィールドには、メッセージの一般的なカテゴリを定義する数字が含まれます。
- コード:このフィールドには、メッセージのタイプに関する詳細情報を示す数字が含まれます。
- チェックサム:このフィールドには、セキュリティの数値表現が含まれます。ここにエラーや不一致が含まれる場合、データが改ざんされていることが示唆されます。
- コンテンツ:タイプやコードの内容に応じて、追加情報がここに表示されることがあります。
メッセージに以下のデータが含まれている例で考えてみましょう。
- タイプ:3
- コード:3
- チェックサム:3 3
宛先ポートが使用不可であるために宛先に到達できず、メッセージが送信中に変更されていないことが通知されました。
ICMPファイルのルック&フィールは、タイプやトリガーによって異なることがあります。送信したデータの最初のビットの合計が含まれていることもあり、その場合には通信の正確性を検証できます。ただし、このようなデータが常に含まれているわけではありません。
ICMPパケットによる攻撃のトリガーは可能か?
サーバーが深刻な接続の問題に直面している場合は、ICMPメッセージが重要です。そこに含まれるデータは、問題を見つけて修正する上で役立ちます。しかし、このシステムはサーバー停止のリスクをもたらす可能性もあります。
ハッカーがICMPを悪用することで、分散型サービス拒否(DDoS)攻撃が引き起こされる可能性があります。研究者によると、このようなハッキングに対する既知の防御は存在しません。したがって、予防が最善策となります。
ICMP攻撃には、以下のような要素が関与します。
- フラッド:ハッカーは、サーバーに数百または数千のPing要求を送信します。サーバーは各要求に応答しなければならないため、他のタスクを処理できなくなっていきます。
- サイズ:ハッカーは、プロトコルで許可されるよりも大きなパケットを送信します。攻撃は「Ping Of Death」や「Nuke」とも呼ばれ、わずか数分でサーバーを停止する可能性があります。
- なりすまし:ハッカーがIPアドレスを偽ったICMPパケットを送信すると、二者間で無限のPingが開始されます。
- トレース:ハッカーはTracerouteコマンドを使用して、ネットワークのトポロジを判別します。そのデータは、後の攻撃で使用される可能性があります。
このような攻撃は拡散する可能性があります。たとえば、一部のネットワークは、Pingまたは要求に対してすべてのサーバーが応答できるように設定されています。1台のサーバーを乗っ取ったハッカーは、他のサーバーに移動し、構造全体を停止させることが可能です。
攻撃を予防するにはブロックする必要があります。オープンなインターネットからTracerouteやPingなどのコマンドを許可することで、攻撃に対して企業をリスクにさらす可能性があります。今すぐにも実行されようとしているハッキングを見逃さないためにも、可能な限りこれらのコマンドをブロックし、ネットワークを注意深く監視する必要があります。
Oktaの支援
ネットワーク通信の問題に対しては、オープンな仮想アプライアンスのOkta Access Gatewayが役立ちます。
Oktaのツールは使用も理解も容易です。また、Oktaのスタッフがいつでも質問に対応し、セットアップを支援しています。ICMPの使用開始について、お問い合わせください。
参考文献
Wasted Workday: Employees Lose Over Two Weeks Each Year Due to IT-Related Issues. (March 2016). PR Newswire.
Internet Control Message Protocol. (September 1981). Network Working Group.
Internet Security. (2014). Network and System Security.
Detection and Prevention of ICMP Flood DDOS Attack. (March 2017). International Journal of New Technology and Research.
ICMP Attacks(2018年3月、Infosec)
ICMP Protocol and Its Security(Syracuse University)
What Are We Trying to Prevent? (2002). Managing Cisco Network Security (Second Edition).
Prevent Hacker Probing: Block Bad ICMP Messages. (October 2003). TechRepublic.