# ロリポップ！ バックアップ復元による復旧手順（6/26 感染直前へ戻す）

作成日: 2026-07-03
方針: サーバ上のWebスペースを一度すべて空にし、バックアップオプションの復元機能で **6月26日（感染直前）** の状態に戻す。

---

## 0. 最重要の前提と注意（着手前に必ず確認）

### この方針が正しい理由
ロリポップの復元機能は「バックアップ内のファイルを、同じ階層・同じ名前のサーバ上のファイルに**上書き**する」動作です。**バックアップに存在しない余分なファイルは削除されません。** 今回は攻撃者が新規ファイル（`cvs.php` / `default.php` / `google〈ランダム〉.html` 等）を多数追加しているため、単に復元するだけではそれらが残ります。よって「**先に全ファイルを空にしてから復元**」という進め方は、この攻撃の駆除として適切です。

### 事前に必ず確認する3点
1. **バックアップオプションが有効か**
   復元機能は有料の「バックアップオプション」契約が前提です（無料の自動バックアップからの復元は不可）。ユーザー専用ページ →「バックアップ」で契約状況を確認してください。未契約・データ未取得の場合はこの手順では戻せません（→ 末尾の代替案へ）。
2. **6月26日のバックアップデータが実在するか**
   復元画面で日時を選ぶ際に **6/26（またはそれ以前で感染前）** の世代が選択肢にあるかを先に確認します。Webサイトとデータベースの**両方**に6/26世代があることを確認してください。
3. **影響範囲の把握**
   このWebスペースには WordPress（`wp/`）以外にも `blog/`（Movable Type）、`meme/`、`news/`、`wk/`（Wiki）、`m/`（MT4i）、`page4/` などが同居しています。「すべて空にする」とこれらも全部消えます。**6/26のバックアップを「すべて選択」で復元すれば全部戻りますが**、戻したい範囲がすべて6/26世代に含まれているかを確認してください。

### 作業前の保全
- 今ダウンロード済みのフォルダを**別名でもう1部コピー保管**（証拠・保険）。
- ロリポップの**メールボックスはWebスペースとは別管理**なので、ファイルを空にしてもメールは消えません（安心してください）。
- **データベースはWebファイルとは別**です。ファイルを空にしてもDBは消えないため、DBは別途「データベースの復元」で戻します（後述）。

---

## 1. 認証情報の変更（先に実施）

復元前に、漏洩している前提で認証情報を変更します。

- ロリポップ アカウント／**FTP・SFTP** パスワード
- WordPress 管理者パスワード（復元でDBごと6/26に戻る場合は、復元“後”に再度変更でも可）

> 注意: この後DBを6/26に復元すると、`wp-config.php` も6/26版（＝当時のDBパスワード）に戻ります。**DBパスワードの変更は「復元完了後」に行い、変更したら `wp-config.php` の `DB_PASSWORD` も併せて更新**するのが混乱しません。順序は「復元 → その後にDB／FTPパスワード変更＋wp-config更新」がおすすめです。

---

## 2. FTPアクセス制限の一時解除

FTPアクセス制限をかけていると復元できません。ユーザー専用ページの該当設定を**一時的に解除**します（作業後に戻す）。

---

## 3. Webスペースを空にする（全ファイル削除）

FTPクライアント（FileZilla等）またはロリポップの「ロリポップ！FTP」で、Webスペースの**公開ディレクトリ配下のファイル・フォルダをすべて削除**します。

- 削除対象: `wp/` `blog/` `meme/` `news/` `wk/` `m/` `page4/` および `index.php` `default.php` `google*.html` `robots.txt` `sitemap*.xml` など**ルート直下すべて**。
- **パーミッションに注意**: 属性が `400` や `000` のファイル・フォルダは削除や以後の復元上書きに失敗することがあります。その場合は一時的に `600`（フォルダは `700`）へ変更してから操作してください。
- 削除後、Webスペースが空になったことを確認します。

> ヒント: 大量ファイルでFTP削除が遅い場合は、ロリポップ！FTPのブラウザ操作の方が速いことがあります。どうしても消えないファイルがあれば、パーミッション変更 → 再削除を試します。

---

## 4. Webサイトの復元（6/26 に戻す）

ロリポップ公式手順に沿って操作します。

1. **ユーザー専用ページ**にログイン →「**バックアップ**」を開く →「**バックアップ管理画面**」をクリック。
2. 「**Webサイト**」の「**復元**」アイコンをクリック。
3. 「**復元するバックアップの日時**」で **6/26（感染前の世代）** を選択。
4. 「**すべて選択**」にチェック →「**復元する**」をクリック（全ファイルを戻す）。
   - ※ 特定フォルダだけ戻すこともできますが、今回は全面復元が目的なので「すべて選択」。
5. 復元内容を再確認 → 確認チェックを入れて「**復元**」を実行。
   - 「同階層・同名の既存ファイルは上書きされる」旨の警告が出ます。今回は空にしてあるので上書き対象はほぼありません。
6. 復元が開始されます。**ウィンドウを閉じても処理は継続**します。完了メッセージが出れば終了。

---

## 5. データベースの復元（6/26 に戻す）

WordPressの記事・設定はDBにあります。ファイルだけでなくDBも6/26へ戻します。

1. 同じ「**バックアップ管理画面**」で「**データベース**」の「**復元**」アイコンをクリック。
2. 「**バックアップの日時**」で **6/26** を選択 →「**復元先の選択へ**」。
3. 「**復元先のデータベース**」（WordPressが使うDB＝`wp-config.php` の `DB_NAME`：`LA12161974-cp`）を選択し、確認チェック →「**復元**」。
4. 完了メッセージを確認。

> 注意: データベースの復元は**選択したDBが丸ごとバックアップ内容で上書き**されます。1つのDBを複数CMSで共用している場合、それらもすべて6/26時点に戻ります（本サイトはWordPress用DBのみのため通常は問題なし）。
> ※ MySQL4の古いDBはこの復元機能に非対応です。その場合はバックアップからDLしたSQLをphpMyAdminでインポートします。

---

## 6. 復元後の確認と仕上げ

1. **サイト表示確認**: トップページ、WordPress（`/wp/`）、ブログ等が正常表示されるか。管理画面 `/wp/wp-login.php` にログインできるか。
2. **マルウェアが消えたか再確認**: FTPで `wp/wp-includes/js/tinymce/utils/cvs.php`、`.../plugins/lists/error_log.php`・`anesongalfa.php`・`bypass_ssi.shtml`、ルートの `default.php` や `google*.html` が**存在しないこと**を確認。空にしてから復元しているので消えているはずですが、念のため。
3. **FTPアクセス制限を元に戻す**（手順2で解除した場合）。
4. **認証情報の再変更**（この段階で実施）:
   - DBパスワードを変更 → `wp/wp-config.php` の `DB_PASSWORD` を新しい値に更新。
   - FTP／ロリポップ アカウントのパスワード変更（未実施なら）。
   - WordPress 認証キー（SALT）を再発行し `wp-config.php` に反映（別途案内済み）。
   - WordPress 管理者パスワードを変更、不審な管理者ユーザーがいないか確認。
5. **本体・プラグイン・テーマを最新化**: 6/26版はWordPress 6.9.x 系のはず。管理画面から最新へ更新し、未使用テーマ／プラグイン、未使用の旧アプリ（`page4` `wk` `m` 等）を棚卸し・削除。
6. **Wordfenceでフルスキャン**を実行し、再感染や取り残しがないか確認。
7. **Google Search Console**: 自分のアカウントで所有権確認し、攻撃者が登録した所有者があれば削除。「セキュリティの問題」を確認し、クリーン後に再審査申請。

---

## 7. 想定トラブルと対処

| 症状 | 対処 |
|---|---|
| 復元画面に6/26の世代が無い | 感染前で最も近い日付を選ぶ。Web／DBで取得日が異なることもあるので各々確認。世代が無ければ末尾の代替案へ。 |
| 「復元できない」「上書き失敗」 | 対象のパーミッションが `400`/`000` の可能性。`600`（フォルダ `700`）へ変更して再実行。FTPアクセス制限の解除も確認。 |
| 復元後にDB接続エラー（Error establishing a database connection） | `wp-config.php` のDB情報が現在のDBパスワードと不一致。復元でwp-configが6/26版に戻っているため、現行DBパスワードに合わせて `DB_PASSWORD` を更新。 |
| 復元後もマルウェアが残っている | 空にする工程で消し漏れがある。FTPで手順6-2の該当ファイルを個別削除。 |

---

## 8. バックアップオプション未契約・6/26世代が無い場合の代替案

- ロリポップのバックアップオプションは、**未契約でも過去データの復旧を有償で依頼できる**場合があります（ヘルプセンター「バックアップオプションを利用していませんが、復旧したいデータがあります」を参照）。まずサポートへ相談。
- BackWPupプラグインで取得した独自バックアップ（`wp-content/uploads/backwpup-*-backups/` 等）に感染前世代があれば、そこから復元も可能。
- いずれも無い場合は、レポートの「WordPress本体をクリーンな公式ファイルで再構築」の手順で、目視駆除＋公式ファイル置換により復旧します。

---

### 実行順まとめ（チェックリスト）
1. □ バックアップオプション有効・6/26世代（Web＆DB）の存在を確認
2. □ ローカルにコピー保全／FTPアクセス制限を一時解除
3. □ Webスペースの全ファイル削除（パーミッション注意）
4. □ Webサイトを6/26で「すべて選択」復元
5. □ データベースを6/26で復元
6. □ 表示確認・マルウェア消失確認
7. □ 認証情報の変更（FTP／DB＋wp-config／WP管理者／SALT）
8. □ 本体・プラグイン更新、Wordfenceフルスキャン、Search Console対応
9. □ FTPアクセス制限を元に戻す

---

*出典: ロリポップ！公式マニュアル「バックアップ機能：データの復元・履歴の閲覧」および関連ヘルプ。実際の画面名・仕様は契約プランや時期により異なる場合があるため、操作時は管理画面の表示に従ってください。*
