「不要そうなファイルを削除したのに、サイトが表示されなくなった」——ある中小企業のコーポレートサイトから、こんなご相談をいただきました。調査を進めて見つかったのは、1秒ごとに不正なプログラム(バックドア)を復元し続ける仕組みでした。本記事では、実際に当社(Web GearのWebレスキュー)が対応したWordPressサイトの改ざん被害について、何が起きていたのか・どう復旧したのかを、専門用語をかみくだいてご紹介します。
何が起きていたのか
WordPressで運用されているコーポレートサイトでした。約10日の間に、サイトは何者かによって不正アクセスを受け、内部を書き換えられていました。きっかけは、使われないまま設置され続けていたプラグインの脆弱性だったとみられます。
運用担当者の方は、サーバー内に見慣れない不審なファイルがあることに気づき、それらを削除しました。ところが、サイトは復旧しないばかりか、削除したはずのファイルがすぐに元通り現れてしまう——この「消しても戻る」状態が、今回の被害の本質でした。
「消しても戻る」の正体=永続化の仕組み
攻撃者は、一度侵入した経路を維持し続けるために、複数の“復元の仕組み”を仕込んでいました。今回見つかったのは大きく4系統です。
- 1秒ごとの自動復元:常に動き続けるプログラムが、不正なファイルの削除・改名を検知するとすぐに書き戻す。手作業で消しても追いつきません
- 定期的な再起動:仕組みが止められても、一定間隔で自動的に立ち上げ直す
- 外部との常時接続:攻撃者のサーバーとつながりっぱなしの状態。調査の時点でも接続が生きていました
- データベース内の隠し管理者:管理者権限のアカウントが12個も作られ、削除しても自動で作り直される仕掛けや、特定のURLでログインできる裏口も併設されていました
つまり、表面に見えるファイルを消すだけでは終わらない構造になっていました。「消したのに戻る」は、こうした永続化のサインです。
皮肉にも、攻撃者のミスで発覚した
今回サイトが停止(エラー表示)した直接の原因は意外なものでした。攻撃者が仕込んだプログラムに不具合があり、そのせいでサイト全体が動かなくなっていたのです。裏を返せば、もし攻撃者のミスがなければ、改ざんに気づかないまま被害が広がっていた可能性が高いということです。攻撃者が残していた操作の記録(35件)からは、認証を回避して侵入されていたことも確認できました。
見過ごされがちな、もう一つの入口
調査の過程で、重大な問題がもう一つ見つかりました。制作当時(数年前)のサイト一式が、圧縮ファイル(約528MB)として公開領域に置かれたまま、誰でもダウンロードできる状態だったのです。その中には、サーバーへの接続情報を書いたファイルまで含まれていました。
これは今回の被害の中でも、最も多くの事業者に当てはまる教訓です。サイトの移行や納品のときに置いたバックアップやZIPファイル、消し忘れていませんか? 置きっぱなしのファイルは、それ自体が侵入の入口になりえます。放置されたサイトやファイルが抱えるリスクはホームページの情報が古いまま放置するとどうなる?でも整理しています。
復旧で大切にした3つのこと
1. 順序を守る(封じ込め→駆除→復旧)
先にファイルを消しても、復元の仕組みが生きていれば無意味です。まず再起動や自動接続の経路を断ち(封じ込め)、不正なプログラムを止めてから、削除ではなく隔離しました。隔離することで「何をされたのか」を後から正確に追えます。
2.「たぶん綺麗になった」で終わらせない
WordPressは、公式が全ファイルの照合用データ(チェックサム)を公開しています。これと照らし合わせれば、書き換えられたファイル・足りないファイル・本来存在しないファイルを機械的に洗い出せます。今回は数千のファイルを照合し、最終的に改変・欠落ともゼロであることを確認しました。改ざんされていたファイルは手直しせず、公式の配布版に置き換えて一致を確認しています。復旧の品質は「元通りだと検証できるか」で決まります。
3. パスワードの変更範囲を広く取る
攻撃者はサーバー内のファイルを自由に読める状態でした。そのため、パスワードやデータはすべて漏れたものとして扱うのが原則です。パスワードの変更は、WordPressの管理画面だけでは不十分で、サーバー・FTP・データベースまで含めて一括で行いました。
この事例からの教訓
- 使っていないプラグインは、無効化ではなく削除する(無効でもファイルと脆弱性は残り続けます)。基本的な対策はWordPressの不正ログイン対策にまとめています
- 公開領域にバックアップやZIPを置かない。制作・移行時の一時ファイルは作業後に必ず撤去する
- 「消したのに戻る」は自力で消し続けない。永続化のサインなので専門家に相談する
- 削除より隔離。証拠が残っていれば被害範囲を正確に追える
- 復旧後のパスワード変更は範囲を広く。管理画面だけでは足りない
- セキュリティ対策は“入れて終わり”にしない。今回は対策が導入済みでしたが、無効化されていました
よくある質問
Q. 不審なファイルを見つけたら、自分で削除してもいいですか?
A.「消してもすぐ戻る」場合は、復元の仕組みが動いているサインです。自力での削除を繰り返すより、被害を広げないためにも早めに専門家へご相談ください。削除の前に、状態を記録(保全)しておくことも大切です。
Q. セキュリティ対策のプラグインを入れていれば安心ですか?
A. 導入だけでは不十分です。本件でも対策は入っていましたが、無効化されていました。きちんと動作しているかを定期的に確認する必要があります。
Q. 復旧して表示が戻れば、それで解決ですか?
A.「表示が戻った」と「本当に元通り」は別です。改ざんの復旧では、公式の照合データと突き合わせるなど、検証できる方法で健全性を確認することが重要です。
Q. どのくらいの期間・時間で復旧できますか?
A. 事案によります。今回は侵入から発覚まで約10日、調査開始から復旧までは約2時間でした。ただし被害の規模や仕込みの複雑さによって大きく変わります。
まとめ
- 「消しても戻る」改ざんは、攻撃者が復元の仕組み(永続化)を仕込んでいるサイン
- 今回は1秒ごとの自動復元など4系統の永続化と、隠し管理者アカウント12個が見つかった
- 制作時のバックアップZIP(約528MB)が公開領域に放置され、接続情報まで露出していた
- 復旧は「封じ込め→駆除→復旧」の順で行い、削除ではなく隔離して証拠を残す
- 公式の照合データで健全性を検証し、パスワードはサーバー・FTP・データベースまで含めて変更する
「消しても戻る」「見覚えのない管理者がいる」といったWordPressの改ざん・不正アクセスは、自力での対処が難しく、対応の順序を誤ると被害が広がることもあります。Web GearのWebレスキューでは、状況の保全から封じ込め・駆除・検証まで落ち着いて対応します。まずは現状の切り分けからご相談ください。