この記事の目的:wp-content/uploads へのアクセスを見て「中国から来たから攻撃」などと単純化せず、URL、拡張子、HTTPステータス、直前のアクセス、WordPress更新状態を組み合わせて判断することです。
uploadsは本来何のための場所か
WordPressのwp-content/uploadsは、メディアライブラリからアップロードした画像や文書などを保存する領域です。WordPress公式ドキュメントでも、画像・動画・音声・文書などのメディアを管理する場所として説明されています。
なぜ不審アクセスの対象になるのか
過去に設置された不正ファイルの探索
WordPress本体ではなく、脆弱なプラグインやテーマ、アップロード処理の不備を悪用して不正ファイルを置いた攻撃者は、その後URLを直接指定して実行を試みることがあります。攻撃者は実際にそのサイトへ侵入済みでなくても、一般的なファイル名や過去の脆弱性で使われたパスを大量に試します。
拡張子偽装や二重拡張子の探索
image.php、shell.php、xxx.jpg.phpのような実行可能ファイルを探すアクセスがログに出る場合があります。404であれば「そのURLを試された」ことを示すだけで、侵入成功を意味しません。
ログで確認する項目
| 項目 | 確認ポイント |
|---|---|
| URL | 画像か、PHPなど実行系ファイルか |
| Status | 404、403、200など。200なら内容確認を優先 |
| User-Agent | 通常ブラウザーか自動スキャンらしいか |
| 直前アクセス | プラグイン脆弱性探索やPOSTがないか |
| 頻度 | 単発か、複数IPから反復しているか |
200応答なら優先して確認する
存在しないPHPファイルへの404が大量に出ているだけなら、自動スキャンの可能性があります。一方、uploads配下の見覚えのないPHPへ200が返っている場合は優先度を上げ、実ファイル、更新日時、内容、アクセス前後のログを確認します。
基本的な防御
WordPress・テーマ・プラグインを更新する
攻撃元IPを一つずつ遮断するより、侵入口となる既知の脆弱性を残さない方が重要です。使用していないプラグイン・テーマも削除または適切に管理します。
ファイル権限を必要以上に緩めない
WordPress公式のHardeningガイドでは、ファイルを書き込み可能にしすぎることの危険性と、必要最小限の権限へ制限する考え方が説明されています。
管理画面からのテーマ・プラグイン編集を検討する
運用上不要であれば、WordPress管理画面のファイル編集機能を無効化することも防御の一つです。ホスティング環境や更新方法に合わせて判断します。
WAFとログ監視
WAFは既知パターンや大量スキャンの緩和に役立ちます。ただしWAFだけで安全になるわけではありません。ファイル改変監視、バックアップ、アクセスログ確認と組み合わせます。
やってはいけない判断
- アクセス元の国だけで侵入成功と断定する
- 404アクセスだけを見て「マルウェア感染」と断定する
- WordPress本体だけ更新してプラグインを放置する
- 原因調査前にログを削除する
- 復旧時に感染ファイルだけ削除し、侵入口を調べない
侵害が疑われる場合
未知のPHPファイル、管理者ユーザー増加、改ざん、外部転送、見覚えのないCron、プラグイン変更などが見つかった場合は、サイトを「ファイル1個の問題」と扱わず、認証情報、WordPress、DB、Webサーバー、バックアップまで含めて確認します。