WordPressで運営していたブログを、いったん完全に削除して作り直しました。
きっかけは、アーカイブを確認したときの違和感です。投稿していない月に、40件ほどの記事が存在するような表示が出ていました。
調べていくと、includes フォルダ内に不審なPHPファイルが見つかりました。削除しても解決せず、フォルダを移動するたびにファイルが自動生成される状態でした。
この記事では、実際に起きた症状、復旧のために行った作業、再構築後に見直したセキュリティ対策をまとめます。
なお、この記事はセキュリティの専門家による解析ではありません。原因を断定するものではなく、個人ブログで起きたトラブルと復旧対応の記録です。
WordPressの異変に気づいたきっかけ
最初に気づいたのは、ブログのアーカイブ表示でした。
投稿した覚えがない月に、40件ほどの記事があるような表記が出ていました。
自分で記事を公開した記憶はありません。表示だけの問題なのか、データベースの問題なのか、外部から何かを書き込まれたのかもわからない状態でした。
普段と違う数字が出ているときは、見過ごさずに確認したほうがよいと感じました。
不審なPHPファイルが削除しても復活した
XserverのファイルマネージャーでWordPressのファイルを調べると、includes フォルダ内に不審なPHPファイルがありました。
問題は、ファイルを削除しても終わらなかったことです。
フォルダを移動して確認するたびに、自動生成されるような挙動が続きました。
ひとつのファイルだけを削除すれば直る状態ではなく、別の場所に原因が残っている可能性がありました。しかし、WordPressには多くのファイルやフォルダがあります。細かく確認しても、原因を見つけきれませんでした。
部分修復ではなく、完全削除を選んだ
不審なファイルを削除しても再び生成されたため、部分的な修復は諦めました。
残っている原因を見落としたままサイトを使い続けるよりも、一度すべて削除して作り直すほうがよいと判断しました。
Xserverで行った作業は次のとおりです。
- ファイルマネージャーで対象フォルダ内のファイルをすべて削除
- 使用していたデータベースを削除
- Xserver側のWordPress情報を削除
- WordPress簡単インストールを使って再インストール
- テーマと必要なプラグインを入れ直す
過去の環境をそのまま戻すと、不審なファイルまで再び持ち込む可能性があります。そのため、必要なものを確認しながら新しい環境を作りました。
困ったのは、原因を特定できなかったこと
一番困ったのは、削除しても自動生成されるのに、原因を見つけられなかったことです。
WordPressは、テーマやプラグインを含めると多くのファイルで動いています。知識が十分でない状態で、どのファイルが正常で、どのファイルが不審なのかを見分けるのは簡単ではありません。
今回は原因の完全な特定よりも、サイトを安全な状態へ戻すことを優先しました。
マルウェア感染が疑われる場合は、無理に自己判断だけで進めず、サーバー会社や専門家へ相談する選択肢も必要です。
再構築後に見直したセキュリティ対策
WordPressを入れ直しただけでは、安心できません。
再構築後は、次の対策を設定しました。
- WordPress管理者、サーバー、FTP、データベースのパスワードを見直す
- 不要なユーザーやアカウントがないか確認する
- テーマやプラグインを正規の配布元から入れ直す
- WordPress、テーマ、プラグインを更新する
- ログイン失敗時のロックを有効にする
- ログインURLを変更する
- 画像認証を追加する
- 2段階認証を有効にする
- XML-RPCを無効にする
- WAFを有効にする
- ログインやアップデートの通知を受け取る
バックアップも重要です。ただし、感染後のバックアップをそのまま戻すと問題まで復元する可能性があります。バックアップの取得時期も意識する必要があります。
まとめ
今回のトラブルでは、投稿していない月の記事数表示が最初の違和感でした。
その後、不審なPHPファイルを削除しても自動生成される状態になり、Xserver上のファイル、データベース、WordPress情報を削除して再構築しました。
原因を特定できなかったことは反省点です。しかし、わからないまま使い続けないことも大切だと感じました。
WordPressは簡単に始められますが、公開後の管理も必要です。
こうなる前に、セキュリティはしっかり設定しておきましょう。
