「ウイルスを削除したのに、数時間後や翌日にまた不正ファイルが増えた」という相談もよくあります。再感染の主なパターンは、実行可能な感染ファイルが1つでも残っている、WordPressの外側に感染ファイルが隠れている、ブログ記事などデータベース内へスクリプトが埋め込まれている、の3つです。見つかったファイルだけを消しても、感染源が残っていれば駆除は終わりません。

残る感染源ファイルが1つでも再増殖

見えない場所WordPress外も調査

DB汚染全記事にスクリプトの例も

理由1:感染ファイルが1つでも残っている

不正ファイルを何百個削除しても、ファイルを作り直すバックドアやローダーが1つ残っていれば、そこから再び増殖することがあります。名前が不自然なファイルだけでなく、正規ファイルへ不正コードが追記されている場合もあります。

検出されたファイルを順番に消すだけではなく、どのファイルが実行され、何を作成しているかを確認します。正規ファイルとの比較、更新日時、アクセスログを組み合わせ、再生成元を特定します。

理由2:見えにくい場所に感染ファイルが残っている

感染範囲はWordPressが入っているpublic_htmlだけとは限りません。実際の対応では、メール関連フォルダやPHP関連フォルダなど、通常のサイト確認では見ない場所から不正ファイルが見つかることもあります。

  • 同じサーバーにある別ドメイン・別WordPress
  • メール関連フォルダ
  • PHP設定や一時処理に関係する場所
  • アップロード領域に置かれた実行可能ファイル
  • 自動実行や予約処理から呼び出されるファイル

WordPressフォルダだけを新しくしても、外側に残った感染源から書き戻される可能性があります。複数サイトを同じサーバーで運用している場合は、すべてを調査対象として考えます。

理由3:すべてのブログ記事にスクリプトが埋め込まれている

ファイルを正常化しても、投稿本文や固定ページなどデータベース内に不正スクリプトが残っていることがあります。実際に、ブログ記事のすべてへスクリプトが埋め込まれていたケースもあります。

ファイルスキャンだけでは投稿本文の汚染を発見できないことがあります。記事を一つずつ削除するのではなく、データベースを保存し、共通する不正コードを特定して、対象と影響を確認しながら修復します。

全記事削除はしない

汚染された部分と正規の本文を分けられる場合があります。原因確認前に投稿やデータベースを削除すると、復旧できたコンテンツまで失います。

「ウイルススキャンで削除済み」だけでは完了と言えない

スキャンは既知の特徴や不審なコードを探す手掛かりになりますが、すべての不正ファイル、データベース内のスクリプト、盗まれた認証情報まで自動的に解決するとは限りません。

WordPress公式のセキュリティ強化ガイドでも、更新、権限、認証情報、バックアップなど複数層で守る考え方が示されています。

再感染を止めるために確認する範囲

  1. WordPress内外の不正ファイルと改ざんされた正規ファイル
  2. 投稿・固定ページ・設定などデータベース内
  3. 同じサーバーにある別サイト
  4. 不審な管理者ユーザーと認証情報
  5. 自動実行・予約処理・サーバー設定
  6. 侵入口になった古いWordPress・テーマ・プラグイン
  7. 除去後にファイルが再生成されないかの監視

数十万規模のファイル感染を24時間以内に公開復旧した事例でも、サイト単体ではなくサーバー全体を確認した対応を紹介しています。

バックアップ復元だけで再感染することもある

侵入口やサーバー外側の感染源が残った状態でバックアップを戻すと、復元後のWordPressへ再び不正ファイルが作られることがあります。バックアップ自体が感染後に作成された可能性も確認します。

サーバー会社から復元または全削除を案内された場合も、先に現在の状態と感染範囲を保存してください。サーバー会社へ相談する前に知っておきたいことで対応範囲を整理しています。

再感染しているWordPressは、サーバー全体を確認します

何度消してもファイルが戻る、別サイトにも警告が出た、記事へ知らないスクリプトが入った場合は、そのままご相談ください。

再感染を緊急相談する レスキューセンターを見る