WordPressがハッキングされ、サイトが別のページへ変わっている。ところが、復元に使えるバックアップが見つからない。
この場合でも、サイト内のデータがすべて消えたとは限りません。WordPress本体や一般公開されているプラグインは、新しいファイルへ入れ直せます。サーバー内に記事、画像、データベースが残っていれば、そこからサイトを組み直せることもあります。
ただし、今あるファイルを慌てて消すと、残っていたデータまで失います。初期化や再インストールを行う前に、何が残っているかを調べる必要があります。
バックアップがなくても復旧できるケース
バックアップがない場合は、現在のサーバー内に残っているデータを使います。
次のデータが残っていれば、サイトを元に近い状態へ戻せる見込みがあります。
- WordPressのデータベース
- uploadsフォルダ内の画像
- 使用中のテーマ
- 独自に加えたデザインや機能
- 投稿や固定ページのデータ
- 商品、注文、会員などのデータ
- サーバー会社が保存している自動バックアップ
WordPress本体は公式サイトから入れ直せます。公式配布されているテーマやプラグインも、同じものを再インストールできます。
そのため、復旧で問題になるのはWordPress本体よりも、ほかでは入手できないデータです。
データごとの復旧しやすさ
WordPressを構成するデータは、すべて同じ扱いではありません。
| データ | バックアップがない場合 |
|---|---|
| WordPress本体 | 正規ファイルを入れ直せる |
| 無料プラグイン | 公式配布元から入れ直せる |
| 市販テーマ | 購入元から再取得できることがある |
| 投稿・固定ページ | データベースに残っていれば復旧できる |
| 画像 | uploadsフォルダに残っていれば使える |
| 独自デザイン | テーマファイルが残っていれば取り出せる |
| 問い合わせ履歴 | 保存先にデータが残っていれば取り出せる |
| 削除されたデータ | 別の保存先がなければ復元できないことがある |
画面が壊れていても、記事や画像がサーバー内に残っていることはあります。反対に、サイトが一見正常でも、裏側でデータを消されたり不正なファイルを置かれたりしている場合もあります。
見た目だけでは、復旧できる範囲を判断できません。
最初にサーバー会社のバックアップを調べる
自分でバックアップを設定していなくても、レンタルサーバー側が自動保存していることがあります。
管理画面で、次の項目を探します。
- 自動バックアップ
- データ復元
- Web領域のバックアップ
- データベースのバックアップ
- スナップショット
- 過去の日付からの復元
管理画面に見当たらない場合は、サーバー会社へ問い合わせます。
確認する内容は次のとおりです。
- Webファイルのバックアップが残っているか
- データベースのバックアップが残っているか
- 何日前まで戻せるか
- 復元前にデータをダウンロードできるか
- サーバー全体を上書きせず、一部だけ取り出せるか
復元日を選ぶときは、ハッキングに気づいた日ではなく、侵入された日より前まで戻す必要があります。
被害に気づいたのが今日でも、侵入自体は数週間前だったということがあります。直近のバックアップだから安全とは限りません。
今あるサーバーをすぐ初期化してはいけない
サイトが壊れていると、WordPressを削除して最初から入れ直したくなります。しかし、初期化すると次のデータも消えるおそれがあります。
- 投稿と固定ページ
- アップロードした画像
- オリジナルのテーマ
- フォームから届いたデータ
- 商品や注文の情報
- 会員情報
- 不正アクセスを調べるためのログ
復旧前には、感染した状態のままでも、現在のファイルとデータベースをバックアップします。
これは、そのまま公開サイトへ戻すためのバックアップではありません。残っている画像や記事を取り出し、どこが書き換えられたかを調べるために使います。
バックアップがない場合の復旧方法
正常なバックアップが見つからない場合は、現在のデータから必要なものを取り出し、きれいなWordPressへ移します。
大まかな流れは次のとおりです。
- 現在のファイルとデータベースを保存する
- サイトへのアクセスを制限する
- サーバー内の不正ファイルを調べる
- WordPress本体を正規ファイルへ入れ替える
- テーマとプラグインを正規版へ入れ替える
- uploadsフォルダ内を調べる
- データベース内の不正な内容を取り除く
- 必要な記事、画像、設定を戻す
- 各パスワードを変更する
- 再び不正ファイルが作られないかを見る
単にWordPress本体を上書きするだけでは足りません。uploadsフォルダ、テーマ、データベースなどに不正な内容が残っていると、再発します。
画像フォルダにも不正ファイルが入る
uploadsフォルダは、通常は画像やPDFなどを保存する場所です。しかし、ハッキング後は、この中に不正なプログラムが置かれることがあります。
画像だけ残してWordPressを作り直す場合でも、uploadsフォルダをそのまま戻すのは危険です。
次のようなファイルがないかを調べます。
- PHPなどのプログラムファイル
- 拡張子がない不審なファイル
- 画像に見せかけた別形式のファイル
- 最近作られた覚えのないフォルダ
- 意味のない英数字が並ぶファイル
ファイル名だけで正常かどうかを決めることはできません。正規のテーマやプラグインにも、英数字の長いファイル名が使われることがあります。
分からないファイルを一括で消すと、サイトの機能や画像まで壊れます。
データベースが残っていても確認は必要
投稿や固定ページは、主にデータベースへ保存されています。データベースが残っていれば、記事を取り出せることがあります。
ただし、データベース自体が書き換えられている場合もあります。
調べる項目は次のとおりです。
- 覚えのない管理者
- 作成した覚えのない投稿
- 外部サイトへ飛ばすコード
- 不審なJavaScript
- 書き換えられたサイトURL
- 覚えのないプラグイン設定
- 不自然な予約投稿
不正な投稿を消すだけではなく、それを作ったファイルや管理者アカウントも探します。
古いバックアップが見つかった場合
数か月前のバックアップしかない場合でも、使えることがあります。
たとえば、古いバックアップを土台にして、現在のサーバーから次のデータだけを追加します。
- バックアップ後に投稿した記事
- 最近アップロードした画像
- 新しく受け付けた問い合わせ
- 商品や注文の追加分
- デザインの変更部分
古いバックアップをそのまま公開サイトへ戻すと、新しい記事や注文情報が消えます。先に現在のデータを保存し、必要な差分を取り出します。
バックアップが感染済みの場合もある
バックアップが見つかっても、取得時点ですでに不正ファイルが入っていれば、そのまま復元しても直りません。
次の状態なら、バックアップが感染後に作られた疑いがあります。
- 復元直後から別サイトへ飛ばされる
- 削除した不正ファイルが再び作られる
- 知らない管理者が戻ってくる
- サーバー会社から再び警告が届く
- 検索結果に不正ページが増え続ける
バックアップの日時だけで安全と判断せず、復元前にファイルとデータベースを調べます。
完全には戻せないケース
次の状態では、元どおりにできないことがあります。
- データベースが削除されている
- 画像ファイルが消されている
- サーバー会社にもバックアップがない
- オリジナルテーマのファイルが失われている
- 暗号化されたデータを元に戻せない
- 被害後にサーバーを初期化している
検索結果やインターネット上の保存ページから文章を拾える場合はありますが、WordPressのデータベースや管理画面まで元に戻るわけではありません。
取り戻せない部分は、残った文章や画像を使って作り直します。
複数サイトを同じサーバーに入れている場合
一つのサーバーに複数のWordPressを入れている場合、壊れて見えるサイトだけを直しても再発することがあります。
別のWordPressに不正ファイルが残っていると、そこから修復済みのサイトへ再びファイルを置かれるためです。
次のようなサイトも調査対象に含めます。
- 現在使っていない旧サイト
- テスト用に作ったWordPress
- サブドメインのサイト
- サブディレクトリ内のサイト
- 制作途中で放置したサイト
管理画面から見えない古いWordPressがサーバー内に残っている場合もあります。
修復を依頼するときに伝えること
バックアップがない場合は、見積もりを頼む前に次の情報をまとめます。
- サイトのURL
- 利用しているレンタルサーバー
- ハッキングに気づいた日時
- 現在起きている症状
- 管理画面へ入れるか
- サーバー会社から届いた警告
- 自分で行った作業
- 同じサーバーにあるサイト数
- バックアップの有無と日付
「何度かファイルを消した」「プラグインでスキャンした」など、自分で行った作業も伝えます。作業内容が分からないと、すでに消えたデータと攻撃者に消されたデータを区別しにくくなります。
問い合わせの段階では、パスワードを書かないようにします。作業先が決まってから、指定された方法で渡します。
まとめ
WordPressがハッキングされ、バックアップがなくても、すぐにサイトを諦める必要はありません。
WordPress本体や一般公開されているプラグインは入れ直せます。データベース、画像、オリジナルテーマがサーバー内に残っていれば、それらを取り出してサイトを組み直せます。
先に行うのは、初期化ではなく現在のデータの保存です。その後、使えるデータと不正なファイルを分け、きれいなWordPressへ必要なものだけを戻します。
バックアップがない状況では、残っているデータが最後の復旧材料です。慌てて削除や上書きをせず、何が残っているかを調べるところから始めます。

