Ping of deathは、DoS(サービス拒否)攻撃の一種です。ICMPとTCPを標的とする攻撃で、ICMP攻撃の中でも特に破壊力があるとされています。Ping of death攻撃はteardrop攻撃とも呼ばれ、UDPなど他のプロトコルにも応用可能です。
攻撃は、プロトコルが処理可能なサイズを超える加工されたパケットが送信されることで発生します。ターゲットプロトコルの弱いバージョンを動作するPCにそのパケットが届くと、PCは規定に沿った処理ができずパケットをメモリに保存してしまいます。その結果、パケットが大きすぎて、宛先到達不能のICMPメッセージを返す際に再起動やクラッシュを引き起こします。
Ping of death は深刻な問題で、個々のPCやネットワーク全体、さらにはウェブ全体に影響を及ぼす可能性があります。インターネットに接続する誰でも、対象のIPアドレスを把握すれば攻撃を仕掛けることができるのです。
攻撃者やIPアドレスの特定が容易なため、Ping of death 攻撃は現実的かつ広く知られるようになりました。オープンソースで手軽に入手・導入でき、特別な知識も不要なため、攻撃者は対象機のIPアドレスを把握するだけで、この攻撃装置を利用できます。
連邦取引委員会の主要技術者である Steve Bellovin は、1996年に逃走中にPing of death 攻撃を発見しました。この攻撃の調査が促され、1997年に論文を発表したとされています。この報告がMicrosoftに、攻撃に利用された脆弱性の修正を促すきっかけとなったとの説もあります。
この攻撃は特定のプロトコルに限定されず、Windows NTのいくつかのバージョンやWindows 2000などでも実行可能でした。また、Unreal Tournament、Quake 3、Unreal Tournament 2003など、一部のPCゲームにも同様の脆弱性が存在していました。
さらに、Ping of death攻撃によく利用されるこの脆弱性は、TCP、ICMP、UDP、IPXなど、IPデータグラムを送信できるプロトコル全般において悪用可能な点にも留意すべきです。
ICMP(Internet Control Message Protocol)のエコー応答、すなわち「ping」は、ネットワーク接続を確認するためのコマンドです。これはソナーのように心拍を送信し、エコーが発信元のPCに戻ることで、ネットワークの状態を知らせます。接続確立時に発信元PCは応答を受け取ります。
Ping of death は、プロトコルがデータを扱う際の欠陥を突いています。プロトコルが最大サイズを超えるパケットを許容してしまう点に問題があり、そのため、異常なパケット送信による攻撃に対して脆弱になっています。
インターネットプロトコルには複数のバージョンがありますが、最大パケットサイズは65535バイトのままです。
Ping of death 攻撃は、65535バイトを超えるよう加工されたICMPパケットを送信してこの脆弱性を突きます。TCP(Transmission Control Protocol)は最大65507バイト、ICMPも同様に最大65507バイトとなっています。
PCが加工されたICMPパケットを受信すると、パケットをメモリに保存する際に分割します。しかし、その後、宛先到達不能のICMPメッセージを送信しようとしたときに、異常なほど大きいパケットのために、PCがクラッシュまたは再起動してしまいます。
現在、多くのPCや機器がPing of death攻撃に対してしっかり守られており、1990年代中頃にターゲットのPCや機器がクラッシュやフリーズした攻撃とは状況が異なります。今後の攻撃を防ぐため、いくつかのサイトではICMPのpingメッセージを遮断しています。
ちなみに、以下の状況ではシステムが攻撃に対して脆弱になる可能性があります:
古いハードウェアが脆弱な状態
古いシステムやハードウェアの更新がなされていない場合、Ping of death攻撃が発生する恐れがあります。また、PCやサーバーにマルウェアが侵入すると、ネットワークに悪影響を及ぼし、システムがクラッシュすることもあります。
Ping of death攻撃が実際に機能することを示すため、以下に新たな状況の例を紹介します:
2013年8月、IPv6ネットワークを狙うPing of death攻撃が発生しました。攻撃経路が復活する中、Windows XPおよびWindows Server 2013の動作環境で、OpenTypeフォントの脆弱性が悪用されました。この脆弱性は、IPv6経由で大量のping要求が送信されることでICMP機能がクラッシュすることから判明しました。幸い、IPv6を無効化することでこの脆弱性は解消できます。
2020年10月、Windowsカーネルドライバ TCPIP.sys の脆弱性が、あらゆるWindowsシステムを危険にさらす可能性があることが判明しました。攻撃によってこの脆弱性が悪用されると、システムがクラッシュまたは再起動後にシャットダウンする恐れがあります。全体として、攻撃者はこれらの脆弱性の悪用が困難と考えていたため、顧客にはシステムの更新が促されていました。
これらの事例から、Ping of death攻撃は依然として存在しており、ネットワークおよびシステムは守りを固め続ける必要があります。
多くのサイトがファイアウォール内でICMPを阻止することで、Ping of deathやその変種から守る対策を講じています。しかし、長期的にはICMPのpingを完全に遮断することは現実的ではありません。
主な問題は、異常なパケットを狙った攻撃がFTPポートなどあらゆる待受ポートに及ぶ可能性があり、機能性や利便性の観点から全てを遮断するのは望ましくない点です。
また、pingの遮断は、接続状況の確認にpingを利用する正当な用途を妨げることにもなります。
より適切な方法は、加工されたpingのみを遮断し、正当なpingは通すという対策です。
最新情報を購読