PHP2Shell で攻撃されたか確かめる|ログで見る所(JPCERT/CC の注意喚起より)
修正版に上げても、それより前に入り込まれていたら何も直らない。JPCERT/CC の注意喚起と各社の分析をもとに、アクセスログ・エラーログ・サーバーの中で確かめる所をまとめた。
PHP2Shell で攻撃されたか確かめる|ログで見る所(JPCERT/CC の注意喚起より)
- 見る所は4つ。アクセスログ・PHP のエラーログ・Web サーバーのログ・サーバーの中
- いちばん強い証拠は、Web のワーカーがシェルを起動していること
- HTTP 200(成功)が返っていても、無害とは限らない
- 何も見つからなくても「攻撃されていない」とは言い切れない
レンタルサーバーの場合
レンタルサーバーでは、サーバーのログを自分で全部見られないことが多い
- アクセスログ・エラーログ:サーバーの管理画面(ログの保存を有効にしていれば)
- 知らないファイル:ファイルマネージャーや FTP で、更新日時の新しいもの
- WordPress の管理者・プラグイン:WordPress の管理画面
見つかったら
- 証拠を残す:ログやファイルを、消す前に別の場所にコピーする
- 広げない:サイトを一時的に止める、外への通信を絞るなど、影響が広がらないようにする
- 範囲を調べる:いつから、どこまで入られたか
PHP2Shell は、修正版が出る前に中身が漏れていた。修正版に上げれば、これからの攻撃は防げる。しかし、上げる前に入り込まれていたら、上げただけでは何も直らない。
JPCERT/CC は注意喚起の中で、更新とあわせて「侵害の調査」を求めている。何を見ればよいのかを、JPCERT/CC の注意喚起と、セキュリティ会社の分析をもとにまとめた。
- 見る所は4つ。アクセスログ・PHP のエラーログ・Web サーバーのログ・サーバーの中
- いちばん強い証拠は、Web のワーカーがシェルを起動していること
- HTTP 200(成功)が返っていても、無害とは限らない
- 何も見つからなくても「攻撃されていない」とは言い切れない
まず、上げたあとでも確かめる理由
修正版で入口はふさがる。ただし、入口から入って置いていかれたもの(不正なファイル・追加された管理者・書き換え)は残る。だから、更新とは別に「中を確かめる」作業が要る。
ログで見る所
1. アクセスログ
- 異常に大きい送信:フォームの項目の名前だけで数 MB あるような送信(CVE-2026-109618 の手口)
- 不審な multipart/form-data の送信:ファイルを送る形式で、中身が意味をなさないもの(CVE-2026-109619 の手口)
- 変な PHPSESSID:サーバーが返した Cookie の PHPSESSID が、異常に長い・変な形をしている
- 前後の HTTP 500:上の送信の前後に、サーバーのエラーが続いていないか
Datadog の分析によると、攻撃は HTTP 200(成功)を返したまま、ワーカーを動かし続けることがある。返事の番号だけで判断しない。
2. PHP のエラーログ
Allowed memory size of ... bytes exhaustedという、メモリ不足のエラー- そのエラーの場所が「Unknown on line 0」になっているもの。これは、サイトのプログラムが動く前にエラーが起きたことを意味する
- PHP 8.5 では、致命的なエラーのときの経過の表示(バックトレース)にも注意する
3. Web サーバーのログ
- PHP のワーカーの異常終了(Apache なら
AH00052) - ワーカーの再起動が、ふだんよりやけに多い
- タイムアウトが続く
4. サーバーの中
- Web のワーカーがシェルを起動している:いちばん直接の証拠
- 知らないファイルが増えていないか(特に、アップロードの場所や一時ファイルの場所の
.php) - 外への不審な通信
- 知らない定期実行(cron)や、知らない管理者
レンタルサーバーの場合
レンタルサーバーでは、サーバーのログを自分で全部見られないことが多い。見られる範囲で次を確かめる。
| 確かめること | どこで |
|---|---|
| アクセスログ・エラーログ | サーバーの管理画面(ログの保存を有効にしていれば) |
| 知らないファイル | ファイルマネージャーや FTP で、更新日時の新しいもの |
| WordPress の管理者・プラグイン | WordPress の管理画面 |
| サーバー会社の調査 | サポートに「PHP2Shell の痕跡の調査をしたか」を聞く |
見つかったら
- 証拠を残す:ログやファイルを、消す前に別の場所にコピーする
- 広げない:サイトを一時的に止める、外への通信を絞るなど、影響が広がらないようにする
- 範囲を調べる:いつから、どこまで入られたか
- 専門家に相談する:個人情報が関わるなら、報告の義務が出ることもある
- パスワードと鍵を変える:サーバー・データベース・管理画面・API の鍵
JPCERT/CC は、痕跡が見つからなくても攻撃を受けていないとは断定できない、としている。ログの残し方によっては、痕跡が残らないこともある。少しでも心配なら、パスワードと鍵の変更までやっておく。
よくある質問
レンタルサーバーでもログは見られますか?
多くのサーバー会社で、管理画面からアクセスログとエラーログを見られます。
ただし、ログの保存を有効にしていないと残っていないことがあります。
分からなければサポートに聞いてください。
何も見つからなければ安心ですか?
安心しきらないでください。
ログに残らない攻撃もあります。
少しでも心配なら、パスワードと鍵の変更までやっておくと安心です。
見つかったら、まず何をすればいいですか?
ログやファイルを消す前に、別の場所にコピーしてください。
そのうえで、サイトを一時的に止めるなど、影響が広がらないようにしてから、専門家に相談してください。
参考にした情報
- JPCERT/CC:PHPにおける複数の脆弱性に関する注意喚起(JPCERT-AT-2026-0033)
- Datadog Security Labs:PHP2Shell の分析(英語)
- IPA:PHPの脆弱性対策について(PHP2shell)
- Elastic Security Labs:php2shell の検知(英語)
2026年10月22日時点の公開情報にもとづく。PHP2Shell の状況は日々変わるので、最新は php.net・IPA・JPCERT/CC と、利用中のサービスの公式の告知を確認すること。
ログの見方が分からない、見つかったかもしれない、というときは、状況を聞いてから進め方を伝える。相談は無料。
無料で相談する


