2026年5月20日

2026年5月20日

Wordfenceのスキャンでマルウェアを検出・駆除する方法|スキャンの種類と結果の対処

Wordfence のスキャンは、WordPress 本体・プラグイン・テーマのファイルを公式の配布ファイルと照合し、改ざんされたファイル、既知のマルウェアのパターン、不審なコード、更新が必要なプラグインなどを一覧にします。この記事の画面の項目名は、2026年11月時点で WordPress.org で配布されている Wordfence 9.1.0 のプラグインのファイルで確認したものです。画面は英語の項目名で書いています。日本語で表示されている場合は表記が異なることがあります。

無料版と有料版の違い(スキャンに関係するところ)

  • マルウェアのシグネチャー(検出パターン)とファイアウォールのルールは、無料版では有料版より30日遅れて届きます。新しいマルウェアは、無料版では見つからないことがあります。
  • 無料版でもスキャンは自動で定期的に実行されます。実行の時刻を自分で決める「Manually schedule scans」は有料版の機能です。
  • スパム送信元の IP の確認、サイトがブロックリストに載っていないかの確認など、一部の項目は有料版だけで実行されます。

スキャンを実行する

管理画面の「Wordfence → Scan」を開き、「Start New Scan」を押します。スキャンの進み具合が段階ごとに表示され、終わると下に結果が並びます。サイトの大きさやサーバーの性能によって、数分から数十分かかります。

スキャンの種類を選ぶ

「Wordfence → Scan」の画面にある「Scan Options and Scheduling」で、スキャンの種類(Scan Type)を選べます。

種類 内容
Limited Scan サーバーの負荷を抑えた簡易なスキャン。検出できる範囲は狭い
Standard Scan 初期設定。WordPress 本体のファイルの照合、マルウェアのシグネチャー、ファイルの中身の不審なコード、投稿・コメント内の危険な URL などを確認する
High Sensitivity Standard に加えて、テーマとプラグインのファイルを WordPress.org の配布版と照合し、WordPress の外のファイルや画像ファイルも実行ファイルとして調べる。誤検知が増えることがある
Custom Scan 個々の項目を自分で選ぶ

感染が疑われるときは、High Sensitivity で一度スキャンします。High Sensitivity で有効になる主な項目は次のとおりで、Custom Scan で個別に選ぶこともできます。

  • Scan theme files against repository versions for changes(テーマを配布版と照合)
  • Scan plugin files against repository versions for changes(プラグインを配布版と照合)
  • Scan files outside your WordPress installation(WordPress の外のファイルも調べる)
  • Scan images, binary, and other files as if they were executable(画像などに偽装した PHP を調べる)

スキャンでサーバーが重くなる場合は、「Use low resource scanning」をオンにすると、時間をかけて負荷を下げながら実行します。

結果の重要度と読み方

結果は重要度ごとに「Critical」「High」「Medium」「Low」に分かれます。プラグインのファイルで確認できた主な例は次のとおりです。

重要度 主な例 対応
Critical 改ざんされた・不審なファイル、Google のブロックリストに載っている、WordPress.org から削除されたプラグインを使っている すぐに内容を確認して対処する
High 脆弱性が知られているプラグイン、WordPress 本体の更新、本来無いはずのファイル、投稿の中の危険な URL、弱いパスワードの利用者、身に覚えのない管理者アカウント 早めに対処する
Medium プラグインやテーマの更新がある、長く更新されていないプラグイン 計画的に更新・入れ替えを検討する
Low コメントの中の不審な URL など 内容を見て判断する

各結果を開くと、ファイルのパスと理由が表示されます。WordPress 本体・プラグイン・テーマのファイルが配布版から変更されている場合は「View Differences」で差分を、その他のファイルなら「View File」で中身を確認できます。

結果ごとの対処

操作 使う場面
Repair WordPress 本体(または配布版と照合したプラグイン・テーマ)のファイルが変更されている場合に、配布版の内容に戻す
Delete File 本来は無いはずのファイル(不審な PHP ファイルなど)を削除する
Ignore(Ignore Until File Changes / Always Ignore) 自分で加えた変更など、問題でないとわかっているものを一覧から外す
Mark as Fixed 自分で対処したものを解決済みにする

まとめて処理する「Repair All Repairable Files」「Delete All Deletable Files」もありますが、削除したファイルは元に戻せません。実行する前にサイト全体(ファイルとデータベース)のバックアップを取り、どのファイルが対象になるかを一覧で確認してください。wp-config.php やテーマの functions.php のような、サイトの動作に必要なファイルに不審なコードが入っている場合は、ファイルを削除せず、不審な部分だけを取り除きます。

WP-CLI でファイルを照合する

サーバーで WP-CLI が使える場合は、Wordfence とは別の方法でも改ざんを確認できます。

# WordPress 本体のファイルを公式のチェックサムと照合する
wp core verify-checksums

# WordPress.org で配布されているプラグインを照合する(有料プラグインは対象外)
wp plugin verify-checksums --all

# 本体のファイルを上書きして入れ直す(wp-content は上書きしない)
wp core download --force --skip-content

wp core download --force は、ファイルを上書きするだけで、攻撃者が追加したファイルは消しません。照合の結果で「本来は無いファイル」と出たものは、内容を確認して削除します。テーマのチェックサムを照合するコマンドは WP-CLI にはないので、テーマは配布元から入れ直して比べます。

手作業で不審なファイルを探す

Wordfence の結果とあわせて、次のような検索で不審なファイルを探せます。結果に出たファイルが、すべてマルウェアとは限りません(正規のプラグインでも base64_decode を使うことがあります)。中身を見て判断します。

# uploads フォルダーの中の PHP ファイル(通常は画像などだけが入る)
find wp-content/uploads -type f \( -name '*.php' -o -name '*.phtml' \)

# よく使われる難読化の形を含む PHP ファイル
grep -rlE 'eval\s*\(\s*(base64_decode|gzinflate|str_rot13)' wp-content --include='*.php'

# 最近7日以内に変更された PHP ファイル
find . -type f -name '*.php' -mtime -7

感染が見つかったあとにすること

ファイルを直すだけでは、盗まれたパスワードやバックドアから再び侵入されることがあります。次の順に進めます。

  1. ホスティング会社の管理画面のパスワード、FTP・SFTP のパスワードを変える。
  2. データベースのユーザーのパスワードを変える(ホスティングの管理画面か MySQL で変更してから、wp-config.php の DB_PASSWORD を同じ値に書き換える)。
  3. WordPress のログイン用の鍵を作り直し、ログイン中のすべての利用者をログアウトさせる。
  4. 管理者のパスワードを作り直し、知らない管理者アカウントがあれば削除する。
# 3. 認証用の鍵とソルト(wp-config.php)を作り直す
wp config shuffle-salts

# 2. データベースのパスワードを変えたあとで、wp-config.php を書き換える
wp config set DB_PASSWORD '新しいデータベースのパスワード'

# 4. 管理者の一覧を確認し、パスワードを作り直す(変更の通知メールが届く)
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
wp user reset-password $(wp user list --role=administrator --format=ids)

wp config set DB_PASSWORD は wp-config.php を書き換えるだけで、データベース側のパスワードは変えません。先にデータベース側を変えてから実行してください。

その後、Wordfence のスキャンをもう一度実行して、結果に問題が残っていないことを確認します。対処の全体の流れは「WordPressのマルウェアを検出・削除する方法」でも説明しています。

Google の「危険なサイト」警告を解除する

Google がサイトを危険と判断すると、検索結果やブラウザーに警告が表示されます。解除は Google Search Console で依頼します。

  1. Search Console でサイトの所有権を確認する(まだの場合)。
  2. 「セキュリティと手動による対策」の「セキュリティの問題」を開き、検出された問題と例の URL を確認する。
  3. 一覧のすべての問題を、すべてのページで直す。
  4. 「審査をリクエスト」を押し、何が起きていて、何をどう直したかを書いて送る。

Google のヘルプでは、審査には数日から数週間かかるとされています。結果が出る前に、同じ依頼を出し直さないでください。

注意点

  • スキャンの結果に出なかったからといって、感染が無いとは言い切れません。無料版では新しいマルウェアのシグネチャーが30日遅れて届くため、他の方法(WP-CLI の照合、ファイルの更新日時の確認)も組み合わせます。
  • 共用サーバーで感染が見つかった場合は、同じアカウントの別のサイトも調べ、ホスティング会社にも連絡します。
  • 復旧後は、使っていないプラグインとテーマを削除し、残したものを最新に保ちます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲