Hatena
PHPの緊急脆弱性「php2shell」で攻撃されていないか?サーバーに残る3つの痕跡と確認方法 - インフラ学習サイト「InfraAcademy」
セキュリティ初登場 311ポイント
PHPの緊急脆弱性「php2shell」を悪用した攻撃が、アップデート前に起きていなかったかを調べる方法を解説する記事です。サーバーに残るログや痕跡を、どこでどう確認するかを説明しています。
何が書かれているか
前回の記事に続き、アップデートを終えたあとに「すでに攻撃されていないか」を調べる方法を紹介しています。Datadogの解説によると、攻撃の試みは公開の4日前の10月17日に観測されていました。そのため、修正版を入れる前に攻撃を受けた可能性があります。
覚えておきたい数字と事実
- 公開日は2026年10月21日です。
- 攻撃の試みが観測されたのは10月17日です。公開の4日前にあたります。
- 攻撃リクエストには約3.5MBの異常に長いフィールド名が含まれていました。
- エラーログには「Unknown on line 0」という表示と、16777216バイトのメモリ上限を超えたエラーが記録されていました。
調べる前に知っておくこと
アップデートをしても、すでに置かれた不正なファイルや動いている不正なプログラムは消えません。そこで、ログを使って過去の動きを調べます。ログは古いものから自動で消される設定が多いので、調べる前にコピーして保管することが大切です。調べる場所は「届いたリクエスト」「PHPのエラーログ」「Webサーバーが動かしたプロセス」の3つです。
なぜ大切なのか
攻撃されたかどうかは、1つの記録だけでは決められません。エラーが出ない攻撃もあるため、3つの場所の記録を時刻を合わせて見比べることが必要です。もし攻撃が成功していたなら、サーバーの中に不正な動きが残っている可能性があります。早めに確認することで、被害の広がりを防げます。
これから注意して見るべきこと
用語解説
- PHP
- Webサイトやアプリを作るときによく使われるプログラミング言語です。
- WAF
- Webアプリへの悪い通信を見つけて止める防御の仕組みです。
- Datadog
- サーバーやアプリの状態を監視するサービスを提供する会社です。
- シェル
- コンピュータに文字で命令を出すための操作画面、またはそのプログラムのことです。
- ログ
- サーバーが動いた記録を、時刻つきで残したものです。