Ping of Death(ピンオブデス)とは | 意味や読み方など丁寧でわかりやすい用語解説
Ping of Death(ピンオブデス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ピングオブデス (ピングオブデス)
英語表記
Ping of Death (ピンオブデス)
用語解説
「Ping of Death」は、インターネットプロトコル(IP)の脆弱性を悪用した初期のサービス拒否(DoS)攻撃の一つである。この攻撃は主に1990年代後半に猛威を振るい、当時の多くのシステムに深刻な影響を与えた。
まず、この攻撃の前提となる「Ping」について簡単に説明する。Pingは、ネットワークの到達性や応答時間を検証するためのコマンドである。これはICMP(Internet Control Message Protocol)のエコー要求パケットを対象ホストに送信し、そのホストがエコー応答パケットを返すことで、通信が可能であるか、どの程度の時間がかかるかを確認する。通常のPingパケットは、比較的小さなデータサイズで送受信される。
Ping of Deathは、このPingパケットの仕組みを悪用する。具体的には、通常のIPパケットの最大サイズである65,535バイトを超える不正なサイズのICMPエコー要求パケットを標的のシステムに送信する。しかし、一つのIPパケットがこれほど巨大なデータを含むことは、ネットワークの物理的な制約上ほとんどない。そこで利用されるのがIPの「フラグメンテーション(断片化)」という機能である。
IPネットワークでは、送信されるデータがMTU(Maximum Transmission Unit)と呼ばれる、一度に転送できる最大フレームサイズを超える場合、そのデータを複数の小さなIPパケットに分割して送信する。この分割されたIPパケットは、宛先で再び元の完全なデータに再構築される。この再構築のために、IPヘッダには「フラグメントオフセット」というフィールドが含まれており、各フラグメントが元のデータ全体のどの位置に相当するかを示している。
Ping of Death攻撃では、このフラグメンテーションの仕組みを悪用する。攻撃者は、意図的にIPヘッダの「フラグメントオフセット」フィールドと「データ長」フィールドを不正に操作し、複数のフラグメントパケットが再構築された際に、その合計サイズがIPプロトコルの許容する最大サイズである65,535バイトをはるかに超えるように細工したパケットを生成する。この細工された不正なパケットは、通常のネットワーク機器ではそのまま転送されることが多い。
標的のシステムがこの不正なフラグメントパケット群を受信すると、システムのTCP/IPスタックはこれらのパケットを再構築しようとする。しかし、最終的に再構築されるパケットのサイズが許容範囲を大きく超えているため、システム内部で確保されているバッファ領域を超過する、いわゆる「バッファオーバーフロー」が発生する。これにより、メモリの不正アクセス、処理の予期せぬ停止、システムクラッシュ、フリーズ、再起動といった深刻な障害が引き起こされ、標的システムはサービスを提供できなくなる。これがサービス拒否攻撃として機能する所以である。
この脆弱性は、当時の多くのオペレーティングシステム(Windows 95/NT、UNIX系OSなど)や、ネットワーク機器(ルーター、プリンターなど)のTCP/IPスタックの実装に潜んでいた。これらのシステムは、受信したIPパケットを再構築する際に、その合計サイズがプロトコルの上限を超えていないかを適切に検証する機構が不十分だったため、容易に攻撃の標的となった。攻撃は非常に単純でありながら、標的システムに与える影響は甚大であったため、当時のネットワーク管理者にとって大きな脅威であった。
Ping of Deathの対策としては、主に以下の方法が取られた。第一に、オペレーティングシステムやネットワーク機器のベンダーが、この脆弱性に対応するためのパッチを迅速に提供した。これらのパッチは、不正に大きなサイズのIPパケットを検出した場合、それを破棄するか、あるいは再構築を試みる前にエラーとして処理する機能を実装した。第二に、ファイアウォールやIDS/IPS(侵入検知システム/侵入防止システム)などのセキュリティデバイスが導入され、ネットワーク境界で不正なフラグメントパケットを検出し、遮断するようになった。これにより、そもそも不正なパケットが内部ネットワークに到達するのを防ぐことが可能になった。
現在では、ほとんどのOSやネットワーク機器がPing of Deathに対する対策を完了しており、この攻撃が直接的な脅威となることは極めて稀である。IPスタックの実装は堅牢になり、パケットのサイズチェックが徹底されているため、現代のシステムがこの手の単純なパケット操作でクラッシュすることは基本的にない。
しかし、Ping of Deathは、初期のDoS攻撃として、サイバーセキュリティの歴史において重要な位置を占める。この攻撃は、ネットワークプロトコルの実装における細部の脆弱性が、いかに深刻な影響をもたらしうるかを世に知らしめた事例であり、以降のプロトコル設計や実装におけるセキュリティ検証の重要性を高めるきっかけとなった。システムエンジニアを目指す上で、過去のこのような攻撃を学ぶことは、現代の堅牢なネットワークがいかにして築き上げられてきたかを理解し、将来のセキュリティリスクに対処する知識の基礎となるだろう。