死のピングは、コンピュータシステムに対する攻撃の一種で、不正な、あるいは悪意のあるピングをコンピュータに送信する攻撃です。[1]この攻撃では、ホストは、別のホストをオフラインにしたり、ICMPエコー応答で応答することに気を取られさせておくために、パケットサイズが大きい、または不正な数百のピング要求を別のホストに送信します。 [ 2]
正しく形成された ping パケットのサイズは通常 56 バイトですが、インターネット制御メッセージ プロトコル(ICMP) ヘッダーを考慮すると 64 バイト、インターネット プロトコル(IP) バージョン 4 ヘッダーを含めると 84 バイトになります。ただし、IPv4パケット (ping を含む) は最大 65,535 バイトになる場合があります。一部のコンピュータ システムは、最大パケット サイズを超える ping パケットはインターネット プロトコルに違反するため、適切に処理するようには設計されていません。[3] [4]他の大きくても適切に形成されたパケットと同様に、ping of death は送信前に 8 オクテットのグループに断片化されます。ただし、ターゲット コンピュータが不正な形式のパケットを再構成すると、バッファー オーバーフローが発生し、システムがクラッシュして悪意のあるコードが挿入される可能性があります。バイト サイズが大きすぎると、マシンがそれを効果的に処理できず、クラウド環境に影響を及ぼし、オペレーティング システムのプロセスが中断して再起動やクラッシュが発生します。[5]
TCP/IPの初期の実装では、このバグは簡単に悪用され、 Unix、Linux、Mac、Windows 、周辺機器など、さまざまなシステムに影響を与える可能性があります。システムがファイアウォールやその他の検出方法によって ping of death をフィルタリングし始めると、後にping フラッディングと呼ばれる別の種類の ping 攻撃が登場しました。これは、大量の ping 要求を被害者に送りつけ、通常のトラフィックがシステムに到達できなくなる攻撃です (基本的なサービス拒否攻撃)。
Ping of Death攻撃は、技術の進歩によりほぼ無効化されました。1998年以降に製造されたデバイスには、このような攻撃に対する防御機能が組み込まれており、[指定]この特定の脅威に対して耐性があります。しかし、注目すべき進展として、Windowsシステム上のIPv6パケットを標的とする亜種が特定され、Microsoftは2013年半ばにパッチをリリースしました。[6]
詳細情報
IPヘッダーを含むIPv4パケットの最大パケット長は65,535(2 16 − 1)バイトです[3] 。これは、合計パケット長を記述する16ビット幅のIPヘッダーフィールドの使用によって生じる制限です。
基盤となるデータリンク層は、ほとんどの場合、最大フレーム サイズに制限を設けています ( MTUを参照)。イーサネットでは、これは通常 1500 バイトです。このような場合、大きな IP パケットは複数の IP パケット (IP フラグメントとも呼ばれます) に分割され、各 IP フラグメントが課せられた制限に一致するようになります。IP フラグメントの受信側は、それらを完全な IP パケットに再構成し、通常どおり処理を続行します。
フラグメント化が行われる場合、各 IP フラグメントは、元の IP パケットのどの部分が含まれているかに関する情報を伝える必要があります。この情報は、IP ヘッダーのフラグメント オフセット フィールドに保持されます。このフィールドは 13 ビット長で、元の IP パケット内の現在の IP フラグメントのデータのオフセットが含まれます。オフセットは 8 バイト単位で指定されます。これにより、最大オフセットは 65,528 ((2 13 -1)*8) になります。次に、20 バイトの IP ヘッダーを追加すると、最大は 65,548 バイトになり、最大フレーム サイズを超えます。つまり、最大オフセットの IP フラグメントのデータは 7 バイト以下である必要があります。そうでない場合、最大パケット長の制限を超えてしまいます。悪意のあるユーザーは、最大オフセットで、8 バイトよりもはるかに多くのデータ (物理層で許可されている最大サイズ) を含む IP フラグメントを送信する可能性があります。
受信側がすべての IP フラグメントを組み立てると、65,535 バイトを超える IP パケットが生成されます。これにより、受信側がパケットに割り当てたメモリ バッファがオーバーフローし、さまざまな問題が発生する可能性があります。
上記の説明から明らかなように、この問題はICMPとは何の関係もありません。ICMP はペイロードとしてのみ使用され、問題を悪用するのに十分な大きさです。これは、あらゆる種類のプロトコル ( TCP、UDP、IGMPなど) を含む可能性のある IP フラグメントの再構成プロセスにおける問題です。
この問題の修正方法は、再組み立てプロセスにチェックを追加することです。各着信 IP フラグメントのチェックでは、各 IP フラグメントの IP ヘッダーにある「フラグメント オフセット」フィールドと「合計長」フィールドの合計が 65,535 以下であることを確認します。合計がこれより大きい場合、パケットは無効であり、IP フラグメントは無視されます。このチェックは、バグが修正されていないホストを保護するために、一部のファイアウォールによって実行されます。この問題の別の修正方法は、パケットの再組み立てに 65,535 バイトを超えるメモリ バッファを使用することです。(これは、許可されているサイズよりも大きいパケットのサポートを追加するため、本質的には仕様違反です。)
IPv6 の死の Ping
2013年、 Microsoft WindowsでIPv6版のping of death脆弱性が発見されました。Windows TCP/IPスタックは、不正な形式のICMPv6パケットを受信するとメモリ割り当てを正しく行わず、リモートからのサービス拒否を引き起こす可能性があります。この脆弱性は2013年8月にMS13-065で修正されました。[7] [8]この脆弱性のCVE-IDはCVE-2013-3183です。[ 9 ] 2020年には、ルーター広告周辺でICMPv6の別のバグ(CVE - 2020-16898)が発見され、リモートコード実行につながる可能性もありました。[10]
参照
参考文献
- ^ Abdollahi, Asrin; Fathi, Mohammad (2020-01-23). 「IoT ネットワークにおける Ping of Death 攻撃に対する侵入検知システム」.ワイヤレス パーソナル コミュニケーション. 112 (4): 2057– 2070. doi :10.1007/s11277-020-07139-y. ISSN 0929-6212. S2CID 213121777.
- ^ Elleithy, Khaled; Blagovic, Drazen; Cheng, Wang; Sideleau, Paul (2005-01-01). 「サービス拒否攻撃手法: 分析、実装、比較」。コンピューターサイエンスおよびエンジニアリング学部の教員出版物。
- ^ ab J. Postel編 (1981 年 9 月)。インターネット プロトコル - DARPA インターネット プログラム プロトコル仕様。IETF。doi : 10.17487 / RFC0791。STD 5。RFC 791。IEN 128、123、111、80、54、44、41、28、26。 インターネット標準 5。RFC 760 は廃止されました。RFC 1349、2474、および 6864 によって更新されました。
- ^ エリックソン、ジョン(2008年)。ハッキング搾取の技術(第2版)。サンフランシスコ:NoStarch Press。p.256。ISBN 978-1-59327-144-2。
- ^ Bhardwaj, Akashdeep (2023-06-12).クラウドコンピューティングネットワーク向けの新時代のサイバー脅威緩和。BENTHAM SCIENCE PUBLISHERS。doi :10.2174 / 9789815136111123010006。ISBN 978-981-5136-11-1。
- ^ 「Ping of death DDoS 攻撃」。Cloudflare。
- ^ 「Microsoft セキュリティ情報 MS13-065 - 重要」。Microsoft。2013 年 8 月 13 日。2017 年2 月 25 日閲覧。
- ^ Jackson, Joab (2013 年 8 月 13 日)。「Microsoft Patch Tuesday: The Ping of Death returns, IPv6-style」。2017 年2 月 25 日閲覧。
- ^ 「CVE - CVE-2013-3183」。MITRE Corporation 。 2017年2月25日閲覧。
- ^ 「CVE-2020-16898 - Windows TCP/IP リモートコード実行脆弱性」。Microsoft。2020 年 10 月 13 日。2020年10 月 14 日閲覧。
外部リンク
- ウェイバックマシンの Ping o' Death ページ(1998 年 12 月 6 日アーカイブ)
- Insecure.Org での死の Ping
