Amazonで商品を見る セール会場へ

WordPressの改ざんチェック|プラグインの乗っ取りに備えてファイルを公式と照合する方法

WordPressの改ざんチェックは、本体とプラグインのファイルを、WordPress.orgが配っている元のファイルと照合するのが基本です。

1文字でも書き換えられていれば、コマンド1つで「どのプラグインの、どのファイルか」まで分かります。

当方の検証用サイトでプラグインのファイルに1行足すと、照合ですぐに見つかりました。

ただし、wp-config.php、画像などのアップロード先、有料プラグインの3つは照合の対象外で、別の方法で確かめる必要があります。

最終確認日:2026年11月2日(WordPress 7.1.4、WP-CLI)

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

プラグイン経由の改ざんは3つの型で起きている

最近の改ざんは、サイトの弱点を突くものだけでなく、正規のプラグインの更新に悪いコードが混ざって届くものが目立ちます。

利用者が普段どおり更新しただけで、サイトに裏口が入ってしまう型です。

型実際の例何が起きたか
作者のアカウントが乗っ取られる2024年6月、WordPress.orgのプラグイン5本(Social Warfareなど)使い回したパスワードで作者のアカウントに入られ、管理者を勝手に作るコードが更新に入った
配布元が改ざんされる2025年7月、Gravity Forms(有料)公式サイトから手動でダウンロードした2.9.11.1と2.9.12に、裏口が入っていた
売られたあとに悪いコードが入る2026年4月、作者「essentialplugin」のプラグイン群売却後の更新に裏口が仕込まれ、半年以上たってから一斉に動いた
出典は本文のリンク先(WordPress.org、Wordfence、Gravity Forms、Patchstack、Anchor Hosting)。2026年11月2日確認

2024年の件はWordPress.orgの告知とWordfenceの調査、2025年の件はGravity Formsの告知にあります。

2026年の件はPatchstackとAnchor Hostingが調べていて、閉鎖されたプラグインの数は20本以上(調べた会社によって22本・31本)です。

この件では、wp-config.phpに約6KBのコードが足され、Googleの巡回にだけスパムを見せる状態になっていました。

WordPress.orgが配った強制アップデートでは、wp-config.phpに足されたコードは消えなかったと報告されています。

セキュリティ会社Patchstackの2026年版の年次報告によると、2025年に見つかったWordPress関連の脆弱性は11,334件で、91%がプラグインでした。

スポンサーリンク

照合で見つかるもの・見つからないもの

当方の検証用サイトで、実際にファイルを書き換えて照合しました。

書き換えた場所照合の結果
WordPress.orgのプラグインのファイルに1行足す見つかる(Checksum does not match)
WordPress.orgのプラグインのフォルダーにファイルを足す見つかる(File was added)
本体のフォルダー(wp-includes)にファイルを足す警告は出るが、結果は「Success」のまま
wp-config.phpの末尾に1行足す見つからない(照合の対象外)
アップロード先(wp-content/uploads)にPHPファイルを置く見つからない(照合の対象外)
有料プラグイン・自作プラグイン照合できない(比べる元が無いので飛ばされる)
2026年11月2日、WordPress 7.1.4の検証用サイトで実施。書き換えはすべて無害な1行・空のファイルで、確認後に元に戻した

見落としやすいのは3行目で、本体のフォルダーに知らないファイルがあっても、照合そのものは成功扱いになります。

結果の最後の行だけを見ず、上に出る「Warning」まで読んでください。

もう1つ、照合は「WordPress.orgが配っている版」を正しいものとして比べる仕組みです。

そのため、2024年や2026年の例のように配布された版そのものに悪いコードが入っていた場合は、照合しても一致してしまい、見つけられません。

照合で見つかるのは、配られたあとにサイトの上で書き換えられたファイルだけ、と考えてください。

WP-CLIで本体とプラグインを照合する

照合には、WordPressをコマンドで操作するWP-CLIを使います。

エックスサーバーやシンレンタルサーバーのように、SSHでつなげばWP-CLIが使えるレンタルサーバーも多いです。

WordPressのフォルダー(wp-config.phpがある場所)に移動してから、次の2つを打ちます。

wp core verify-checksums
wp plugin verify-checksums --all

1行目が本体、2行目がWordPress.orgから入れたプラグインの照合です(使い方はWP-CLIの公式ドキュメントを参照)。

書き換えが無ければ、次のように「Success」と出ます。

Success: WordPress installation verifies against checksums.
Success: Verified 6 of 12 plugins (6 skipped).

「6 skipped」は、WordPress.orgに無いプラグイン(有料・自作)を飛ばした数です。

検証用サイトでContact Form 7のファイルに1行足すと、結果は次のように変わりました。

plugin_name	file	message
contact-form-7	includes/functions.php	Checksum does not match
Error: No plugins verified (1 failed).

どのプラグインの、どのファイルが元と違うのかが、そのまま出ます。

本体のフォルダーに知らないファイルを置いたときは、こう出ました。

Warning: File should not exist: wp-includes/lab-unknown.php
Success: WordPress installation verifies against checksums.

「File should not exist」の行が出たら、そのファイルを開いて中身を確かめます。

古い版の本体を手作業で上書きしたときなどに、消し忘れのファイルとして出ることもあります。

違いが見つかっても、その場でファイルを消したり直したりせず、先にファイルとデータベースの控えを取ってください。

あとで「いつ・何が入ったのか」を調べる手がかりが消えてしまうからです。

照合では見えない場所を確かめる

照合の対象外になっている場所は、自分で見るしかありません。

wp-config.phpの末尾

wp-config.phpは、普通は次の行で終わっています。

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

この行の後ろや、ファイルの途中に、読めない文字の並んだコードや見覚えの無い行があれば疑ってください。

2026年の例で足されたのも、wp-config.phpでした。

アップロード先のPHPファイル

画像を置くwp-content/uploadsには、本来PHPファイルはありません。

find wp-content/uploads -name '*.php'

何か出てきたら、中身を確かめる対象です(一部のプラグインは、空のindex.phpを置くことがあります)。

最近書き換えられたファイル

更新していないのに、最近書き換わったPHPファイルが無いかも見ます。

find wp-content -name '*.php' -mtime -7

「-7」は7日以内の意味です。

検証用サイトで直近10分(-mmin -10)に絞って探すと、書き換えた2つのファイルだけが出ました。

プラグインを更新した直後は更新したファイルも出るので、更新の日付と見比べてください。

覚えの無い管理者

2024年の例も2025年の例も、裏口は管理者のアカウントを勝手に作っていました。

wp user list --role=administrator --fields=user_login,user_registered

管理画面の「ユーザー」で、権限を「管理者」に絞って見ても同じです。

検索エンジンにだけ見せるスパム

2026年の例のように、Googleの巡回にだけスパムを見せる改ざんは、ブラウザーで開いても気づけません。

当サイトと同じMOTOKI合同会社の無料ツール「改ざん・スパム汚染チェック」は、同じページをブラウザー・Googlebot・検索経由のスマホとして取得して比べ、見せ分けの兆候を探します。

照合でつまずくとき

照合の結果は、書き換えが無くても警告が出ることがあります。

当方の検証用サイトと運用中のサイトで実際に出たのは、次の4つでした。

「Could not retrieve the checksums」と出て飛ばされる

WordPress.orgに照合の元が無いプラグインは、警告を出して飛ばされます。

有料プラグインや自作プラグインのほか、検証用サイトでは本体に同梱されているHello Dolly(1.7.2)も照合の元が無く、飛ばされました。

飛ばされたプラグインは「照合できなかった」だけで、安全と確かめられたわけではありません。

「File should not exist」が大量に出る

本体の古いファイルや、入れ方の都合でできた余計なファイルが残っていると、大量に出ます。

検証用サイトでは、WP-CLIでWordPressを入れたときに、長いファイル名が途中で切れた複製が21個できていて、それが全部警告として出ました。

同じ名前で末尾だけ切れたファイルが並んでいるなら、この種類の残りです。

ファイル名に見覚えが無い、中身が読めない文字の羅列になっている、といったものは改ざんを疑ってください。

「File doesn’t exist」で本体の照合がErrorになる

readme.html・license.txt・wp-admin/install.phpを消していると、本体の照合は「Error」で終わります。

当方が運用しているWordPress約70件を照合したところ、Errorになった12件はすべて、このどれかを消していたものでした。

WordPressの版を隠す目的で消す人が多いファイルなので、消したのが自分(や制作会社)なら問題ありません。

ほかのファイル(wp-includesの中など)が「無い」と出たときは、壊れているか、書き換えの途中で消されたおそれがあります。

プラグインのエラーで照合が止まる

プラグインの照合はWordPressを読み込むので、壊れたプラグインがあると途中で止まることがあります。

その場合に付けるのが、プラグインとテーマを動かさずに照合するオプションです。

wp plugin verify-checksums --all --skip-plugins --skip-themes

改ざんを疑うときは、怪しいコードを動かさないためにも、最初からこの形で打つのが安全です。

乗っ取られた更新に備える

配布元そのものが汚染されると、照合では防げません。

備えは「入れるものを減らす」「入る前に止まる仕組みを知る」「戻せるようにしておく」の3つです。

使っていないプラグインを消す

停止しているだけのプラグインも、ファイルはサーバーに残っています。

使っていないものは削除し、入れているプラグインは「誰が作っていて、どこから入れたか」を一覧にしておきましょう。

Patchstackの2025年版の報告によると、2024年に未修正の問題でWordPress.orgから外されたプラグインとテーマは1,614本あり、使っている人には知らされないと指摘されています。

長く更新が止まっているプラグインは、WordPress.orgの配布ページを開いて、まだ公開されているかを確かめてください。

入れるプラグインの選び方は、入れるべきプラグイン/入れてはいけないプラグインにまとめています。

自動更新の「待ち時間」を知っておく

自動更新は、弱点の修正がすぐ入る代わりに、汚染された更新もすぐ入るという両面があります。

WordPress.orgは2026年9月から、プラグインとテーマの新しい版を配る前に6時間待たせ、そのあいだに複数のAIとJetpack Scanで変更を審査しています(WordPress.orgの告知)。

告知によると、同じ年の7月28日には約2万サイトで使われているプラグインに裏口が入りましたが、この待ち時間のあいだに止められ、配られずに済んでいます。

この審査が効くのは、WordPress.orgから配られる無料のプラグインとテーマだけです。

有料プラグインは作者のサーバーから更新が届くので、作者側の仕組みしだいです。

プラグイン一覧の自動更新の列。自動更新は停止中です、自動更新を有効化する
自動更新は、プラグイン一覧の右端でプラグインごとに切り替える(2026年11月2日の表示)

お問い合わせフォームや決済など止まると困るプラグインは、自動更新を切って、数日ようすを見てから手動で更新する方法もあります。

本体やテーマの自動更新の止め方は、本体やテーマの自動更新と通知メールを停止する方法で紹介しています。

何世代か前まで戻せるバックアップ

Gravity Formsの告知では、汚染された版を入れる前(2025年7月9日より前)のバックアップから戻すことを勧めていました。

毎日上書きされる1世代だけのバックアップでは、気づいたときには汚染された状態しか残っていないことがあります。

少なくとも1〜2週間前まで戻せるように、世代を分けて残しておきましょう。

作者・管理者のログインを守る

2024年の例は、使い回したパスワードから始まりました。

WordPress.orgは、2024年10月からプラグインとテーマの作者に2段階認証を義務づけています。

自分のサイトの管理者も同じで、使い回さないパスワードと2段階認証を入れておくのが基本です。

外から見える弱点の確かめ方は、WordPressのセキュリティを自分で点検する方法にまとめています。

改ざんが見つかったら

書き換えられたファイルを消すだけでは、終わりになりません。

2026年の例のように、裏口が別の場所(wp-config.phpや別名のファイル)にも入っていることがあるからです。

  1. ファイルとデータベースの控えを取る(証拠として残す)
  2. 汚染される前のバックアップがあるか確かめる
  3. 問題のプラグインを停止・削除し、配布元の告知に沿って直った版を入れ直す
  4. 管理者・データベースのパスワード、wp-config.phpの認証用キー(ソルト)を変える
  5. 覚えの無い管理者を消し、もう一度照合と確認をやり直す

最初の30分にやることは、WordPressが改ざんされたときの初動対応で、発注者の立場から順番にまとめています。

自分で調べるのが難しいときや、照合の結果の読み方に迷うときは、サービスのページからご相談ください。

よくある質問

SSHが使えないと、改ざんチェックはできない?

WP-CLIが使えない場合は、同じ版のプラグインをWordPress.orgからダウンロードし、サーバーのファイルと見比べる方法があります。

手間はかかるので、まずは契約しているレンタルサーバーがSSHに対応しているかを確かめてみてください。

有料プラグインはどう確かめる?

照合の元が公開されていないので、WP-CLIでは確かめられません。

作者のサイトから同じ版を取り直して見比べるか、作者のセキュリティの告知を追うのが現実的です。

照合で問題が無ければ、安全と言える?

いいえ、照合で分かるのは「配られたファイルから書き換わっていない」ことだけです。

配られた版そのものが汚染されている場合や、wp-config.php・アップロード先・データベースへの書き込みは、照合では分かりません。

どのくらいの頻度で照合すればいい?

月1回の保守のときに、更新と一緒に回すのがおすすめです。

月1回の保守の流れはWordPressを自分で保守する月1回の手順で紹介しています。

スポンサーリンク

まとめ

  • 改ざんチェックの基本は、本体とプラグインをWordPress.orgの配布物と照合すること(wp core / plugin verify-checksums)
  • 本体のフォルダーの知らないファイルは「Warning」止まりで、結果は「Success」になる
  • wp-config.php・アップロード先・有料プラグインは照合の対象外。自分で確かめる
  • 配られた版そのものが汚染された場合は、照合では見つからない
  • 備えは、使わないプラグインを消す・自動更新の待ち時間を知る・何世代か前まで戻せるバックアップ
  • URLをコピーしました!

設定に不安があるなら

WordPressのセキュリティ対策・保守

セキュリティ設定¥20,000〜、定期自動バックアップの設定¥15,000〜、保守・メンテナンスは月額 ¥15,000〜(税込)。ファイアウォールやSSLの導入もまとめて対応します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのセキュリティ対策のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次