改ざんされたサイトを復旧する手順
サイトを開いたら見覚えのない文字が並んでいる、検索結果に別の言語のページが出てくる、あるいは外部から「おたくのサイトが不審だ」と連絡が来た。担当は自分ひとりで、何から手を付ければいいのか分からない——という状況で読まれることを想定した記事です。
先に結論
- 最初にすることは復旧ではなく証拠を残したまま公開を止めることです。慌てて上書きすると原因が消えます
- バックアップから戻すだけでは再発します。侵入口を塞がないまま戻せば、同じ経路で同じことが起きます
- 復旧の順番は「隔離 → 記録 → 復元 → 塞ぐ → 確認」で、この順番を入れ替えると作業が二度手間になります
- 改ざんに見えて改ざんでない場合もあります。先に「本当に改ざんか」を切り分けると、無駄な全面復旧を避けられます
その前に — 本当に改ざんでしょうか
「表示が壊れた」「見慣れない画面が出た」という症状は、改ざん以外の原因でも起きます。更新の途中で処理が止まった、サーバー側の PHP のバージョンが変わってテーマが対応できていない、プラグイン同士がぶつかっている。いずれも見た目は「何かおかしい」で同じです。
ここで全面復旧に走ると、本来は数分で直る不具合に半日を費やすことになります。切り分けに使う時間は 5 分で足ります。
改ざんを疑う兆候
- 身に覚えのない投稿や固定ページが増えている
- 検索結果に出るタイトルや説明文が、自分たちの書いていない別の言語になっている
- 管理画面のユーザー一覧に、追加した覚えのない管理者がいる
- サイトを開くと、まったく関係のない外部サイトへ勝手に転送される
- スマートフォンからだけ、あるいは検索から来たときだけ挙動が変わる
これらに当てはまるなら、この記事の手順 1 に進んでください。特に「増えている」系の兆候は、誰かが書き込める状態にあることを示します。
改ざんでないことが多い兆候
- 画面が真っ白になっただけで、内容の書き換えはない
- 特定の 1 ページだけ 404 になる
- 管理画面にだけ入れない
- 更新ボタンを押した直後から症状が出ている
これらは設定やプログラムの不具合であることが大半です。原因の当たりの付け方はサイトが表示されないときの切り分けにまとめてあります。そちらで解決するなら、以降の手順は不要です。
手順 1 — 隔離する
改ざんの疑いが濃いと判断したら、最初にやるのは復旧ではありません。訪問者への被害拡大を止めることです。改ざんされたサイトは、閲覧した人に不正なプログラムを配ったり、偽の入力画面を見せたりしている場合があります。その状態を続けたまま原因調査をするべきではありません。
止め方はいくつかあります。
- メンテナンス中の表示に切り替える
- サイト全体を一時的に非公開にする
- 問題が出ている領域だけ外部からのアクセスを遮断する
どの方法が取れるかは契約しているサーバーによって違います。判断に迷うなら、サーバー会社のサポート窓口に「改ざんの疑いがあるので公開を止めたい」と伝えてください。手順を案内してもらえます。
あわせて、管理画面のパスワード、FTP や SFTP のパスワード、サーバーの管理パネルのパスワードを変更します。ただし、変更したから安心とは言えません。すでにファイルを置かれている場合、パスワードを変えても入り口はそのまま残ります。
🚨 この段階で、怪しく見えるファイルを削除したり上書きしたりしないでください。侵入時期や経路を知る手がかりが、その操作で消えます。
手順 2 — 記録を取る
「いつ、どこから入られたか」を後から知る材料は、ログとファイルの更新日時しかありません。復旧作業を始めると、この二つは確実に上書きされます。だから記録が先です。
取っておくものは次の四つです。
- 現時点のファイル一式とデータベースの控え。これは復旧のためではなく、証拠として残すためのものです。復旧用のバックアップとは別に保管します
- アクセスログ。どの時間帯に、どこから、どのファイルへリクエストが来たかが残っています
- エラーログ。プログラムが異常終了した記録が残ります
- WordPress の管理者ユーザー一覧。名前・メールアドレス・登録日時を控えます
ファイルを一覧で見て、更新日時が特定の日付に一斉にそろっている場所を探してください。本来ばらばらであるはずの更新日時が一つの日時に固まっていれば、その時刻が侵入の目安になります。
ログは保存期間が短く設定されていることが多く、数日で古いものから消えていきます。置き場所と読み方はエラーログはどこにあり、どう読むかで扱っています。後回しにすると、調べたくなった頃には残っていません。
手順 3 — 復元する
バックアップがある場合
戻す先は「異常が起きる前の日付」です。ここで注意が要るのは、直近のバックアップがすでに汚染されている可能性です。改ざんは、気づく何週間も前に始まっていることがあります。気づいた日の前日分を戻して、また同じ症状が出るなら、さらに前の日付をさかのぼります。
そのため、世代がいくつ残っているかが復旧の可否を決めます。1 世代しか保持していない仕組みでは、汚染された状態を上書き保存しているだけということが起こり得ます。この点は「取れている」と「戻せる」は別物で詳しく整理しています。
バックアップが無い場合
バックアップが無い、あるいは戻せるか一度も確認していない場合は、入れ替えで対処します。考え方は「差し替えられるものは全部差し替える」です。
- WordPress 本体を公式配布のファイルで入れ替える
- テーマとプラグインも、公式配布元から取得したもので入れ替える
- 残すのは、画像などをためている uploads フォルダとデータベースだけにする
この方法には限界があります。残した uploads とデータベースの中に、不正なコードが紛れている可能性が消えません。だから入れ替えた後で、投稿本文・固定ページ・ユーザー一覧を自分の目で確認します。件数が合っているか、覚えのない文字列が本文に混ざっていないかを見ます。
また、配布元が消えている無料テーマや、非公式に配られたプラグインは、入れ替える元がありません。入れ替え元が用意できないものは、使用をやめる判断まで含めて検討してください。クリーンな状態に戻せない部品を抱えたままでは、復旧が完了したと言えません。
手順 4 — 侵入口を塞ぐ
ここが復旧の中心です。復元して見た目が戻ると作業を終えたくなりますが、入り口が開いたままなら、同じ経路で同じことが起きます。この節を飛ばした復旧は、ほぼ再発します。
確認する項目を挙げます。
- 使っていないのに残っているプラグインとテーマ。停止中でもファイルは置かれたままです。削除します
- 長く更新していないプラグイン。公開済みの不具合が修正されないまま動いています
- 不要な管理者アカウント。退職者や外部業者に発行したままのものが残っていないか
- 他のサービスと使い回しているパスワード
- サーバー側の PHP のバージョン。サポートが終わったバージョンで動いていないか
更新を止めていた場合は、なぜ止めていたのかを整理してください。「更新するとレイアウトが崩れるから」「カスタマイズしていて上書きできないから」といった理由があったなら、その理由自体が弱点として残り続けています。更新をどう回すかについては自動更新は安全かという整理が判断材料になります。
正直なところ、侵入口が特定できないこともあります。ログがすでに消えていた、複数の可能性が並んでどれとも決められない。そのときは無理に断定せず、「特定できなかった」と記録に残してください。そのうえで、ファイルの変化やユーザー追加を見る頻度を上げる方向に切り替えます。分からないまま「たぶん大丈夫」にするのが、いちばん危うい終わり方です。
手順 5 — 確認して公開に戻す
公開を再開する前に、次を確認します。
- 全ページが表示されるか。トップだけでなく、下層と固定ページも開く
- 問い合わせフォームが送信でき、届くか
- 管理画面のユーザー一覧に、身に覚えのないアカウントが無いか
- 投稿一覧の件数が、復旧前に控えた数と合っているか
検索エンジン側に「このサイトは危険」といった警告が付いてしまった場合は、直しただけでは外れません。各社の管理ツールから再審査を申請する必要があります。申請前にサイトがきれいになっていないと、審査は通りません。
再開してからしばらくは、ファイルの更新日時とユーザーの増減を定期的に見てください。再発は当日ではなく、数日から数週間あとに起きることがあります。公開に戻した日が終わりではなく、観察期間の始まりです。
もう一つ。会員情報や問い合わせ内容など個人情報を扱うサイトでは、影響範囲の判断を担当者だけで決めないでください。組織として報告や通知が必要かどうかは、法務や上長を含めて判断する事柄です。
自力でやる線引き
専任でない担当者が自力で進めてよいのは、次の範囲です。
- 手順 1 の隔離とパスワード変更
- 手順 2 の記録の保全
- 手順 3 のうち、バックアップからの復元
一方、次の三つは外部に頼る範囲だと考えてください。
- 侵入経路の特定。ログを突き合わせて時系列を組み立てる作業です
- データベース内に埋め込まれた不正なコードの除去。見た目では判別しにくく、消しすぎると本文が壊れます
- 個人情報が外に出たかどうかの判断
「これは手に負えない」と判断すること自体が、正しい成果です。困るのは、判断を先延ばしにしている間にログの保存期間が過ぎ、誰が見ても調査できない状態になることです。相談する時点で手順 2 の記録が手元にそろっていれば、調査はずっと早く進みます。
改ざんの復旧は、壊れたものを元に戻す作業ではなく、なぜ入られたかを一つずつ潰す作業です。急いで見た目を戻すほど、原因は手元から遠ざかります。
