WP-CLIでWordPressコアファイルの破損・改ざんを確認する方法
検証環境: WordPress 7.0 / WP-CLI 2.x 系(確認日: 2026-06)。出力例は環境ごとに異なります。
「サイトが改ざんされたかもしれない」「更新に失敗してファイルが壊れたかも」——そんなとき、まず役立つのがコアファイルの整合性チェックです。
この記事では、WP-CLIの wp core verify-checksums で「何が分かり、何が分からないか」を整理します。サイトのファイルは変更しません。
verify-checksums とは(何をする道具か)
この章で分かること: このコマンドの仕組みを知ると、結果を正しく読めます。
WordPress.orgは、各バージョンのコアファイルの「正しい状態」を表すチェックサム(ファイルの指紋のようなもの)を公開しています。verify-checksums は、それと現在のコアファイルを照合し、食い違いを報告します。
照合の考え方: 「公式の配布物」と「いま手元にあるコア」を突き合わせ、変化したファイル・足りないファイルを見つける。
使い方
この章で分かること: 実行コマンドと、出力の読み方です(読み取りのみ)。
wp core verify-checksums --locale=ja
日本語環境では --locale=ja を付けます。省略すると en_US のチェックサムと照合され、日本語版だけに含まれるファイルが偽陽性(誤検知)として報告されることがあります。
- 問題が無ければ「Success: WordPress installation verifies against checksums.」のような成功メッセージが出ます。
- 食い違いがあると、該当ファイルが Warning として報告されます(例: チェックサム不一致、本来存在しないファイル)。
- これは報告のみで、ファイルの修復や削除はしません。
問題が無いときの出力例です。
$ wp core verify-checksums --locale=ja
Success: WordPress installation verifies against checksums.
食い違いがあるときは、ファイルごとに Warning が並び、最後に Error で終わります(出力例)。
$ wp core verify-checksums --locale=ja
Warning: File doesn't verify against checksum: wp-includes/version.php
Warning: File should not exist: wp-includes/about.php
Error: WordPress installation doesn't verify against checksums.
照合には対象バージョンのチェックサム取得が必要です。ネットワークやバージョン情報の状態によっては取得できないこともあります。その場合はエラー内容を確認してください。
確認できる範囲・できない範囲
この章で分かること: ここを誤解すると「チェックしたから安全」と思い込む危険があります。
- 確認できる: コア(wp-admin・wp-includes・ルートのコアファイル等)の変化・欠落。
- 確認できない:
wp-content配下(テーマ・プラグイン・uploads)。ここはコアの照合対象外です。 - つまり「コアは無事」でも、テーマやアップロード画像フォルダに不審ファイルが潜む可能性は残ります。
| 項目 | 対象かどうか | 補足 |
|---|---|---|
| wp-admin/ 以下のPHPファイル | ✅ 対象 | コアファイルの改ざん・欠落を検出 |
| wp-includes/ 以下のファイル | ✅ 対象 | バージョン照合 |
| wp-login.php, wp-cron.php など | ✅ 対象 | ルート直下のコアファイル |
| wp-config.php | ❌ 対象外 | サイト固有の設定ファイル |
| wp-content/ 以下全般 | ❌ 対象外 | プラグイン・テーマ・メディア |
| .htaccess, robots.txt | ❌ 対象外 | サーバー設定ファイル |
プラグイン・テーマ・uploadsは別の確認が必要
WordPress.orgで配布されているプラグインは wp plugin verify-checksums で照合できる場合がありますが、有料・独自のプラグインやテーマ、uploads配下は対象外です。プラグイン・テーマの状態確認は「WP-CLIでプラグイン・テーマの状態を安全に確認する方法」を、改ざん対策の全体像は「WordPressの改ざんマルウェア対策」を参照してください。
「公式に無いファイルが足された」場合は別の探し方が要る
verify-checksums が見るのは「公式の配布物との差分」です。裏を返すと、公式には存在しないファイルが新しく設置されたケース(独自PHPの埋め込みなど)は、コアの照合だけでは漏れることがあります。とくにアップロードディレクトリに置かれた実行可能ファイルは要注意です。
# wp-content/uploads 配下の .php を洗い出す(通常は存在しないはず)
find wp-content/uploads -name "*.php"
# wp-login.php より後に作られた wp-admin 内の .php を探す
find wp-admin -name "*.php" -newer wp-login.php
画像用の wp-content/uploads/ に .php ファイルがあれば、ほぼ確実に不正ファイルです。発見しても即削除せず、まず保全(バックアップ・隔離)とログ確認を先に行ってください。
改ざん対応で実際に多いのは、コアではなく
wp-content/uploads に置かれた単発の .php(アップローダやバックドア)です。これは verify-checksums の照合対象外なので、結果が Success でも残ります。Success のときこそ uploads の find を併用するのが実務の鉄則です。改ざんが疑われるときの初動
この章で分かること: あわてて触ると、原因究明も復旧も難しくなります。順番が大切です。
改ざんが疑われるとき、いきなりコアの再インストールや不審ファイルの削除をすると、「治ったように見えて再発」したり、原因の痕跡が消えて調査できなくなることがあります。まずは現状の保全(バックアップ・隔離)とログの確認が先です。
- 現状を保全する(バックアップを取り、できれば本番から隔離)。
- アクセスログ・変更日時など、手がかりを確認する。
- 影響範囲を見極めてから、復旧方針を決める(上書きはその後)。
| 優先度 | コマンド | 目的 | 異常時の対処 |
|---|---|---|---|
| ★★★ | wp core verify-checksums --locale=ja | コアファイルの改ざん確認 | wp core download --force で再インストール |
| ★★★ | wp option get siteurl && wp option get home | URLリダイレクトハック確認 | wp option update で正しいURLに修正 |
| ★★★ | wp user list --role=administrator --format=csv | 不正管理者の確認 | wp user delete ID で削除 |
| ★★☆ | wp plugin verify-checksums --all | プラグインの改ざん確認 | プラグイン再インストール |
| ★★☆ | wp theme verify-checksums --all | テーマの改ざん確認 | テーマ再インストール |
| ★☆☆ | wp cron event list | 不審な定期処理確認 | wp cron event delete で削除 |
侵入後の追跡と復旧の考え方は「セキュリティ・フォレンジック ― 侵入後の追跡と復旧」で詳しく扱っています。
よくある質問(FAQ)
verify-checksums が成功したら安全と考えてよいですか?
いいえ。コアファイルに変化が無いことは分かりますが、wp-content配下(テーマ・プラグイン・uploads)は対象外です。安全の断定はできません。
Warningが出たら改ざんですか?
必ずしも改ざんとは限りません。手動でコアを編集した、更新が途中で失敗した、などでも食い違いは出ます。原因の切り分けが必要です。
不審ファイルを見つけたらすぐ消すべきですか?
すぐに消すのは避けてください。再発防止のためにも、保全とログ確認を先に行い、影響範囲を見極めてから対応します。
まとめ
verify-checksums は「コアの整合性を読む」便利な確認ですが、守備範囲には限界があります。結果を過信せず、疑わしいときは保全を優先しましょう。WP-CLI全体像は「WP-CLI鉄板コマンド完全ガイド」、プラグイン・テーマの確認は「プラグイン・テーマの状態確認」をどうぞ。






