WordPressサイトを運営している中で、突然表示が崩れたり、身に覚えのない広告が表示されたりしたことはありませんか。
もしサイトに異変を感じた場合、それは悪意のある第三者によってサイトが改ざんされたサインかもしれません。
改ざんを放置すると、検索エンジンからペナルティを受けたり、訪問者にウイルスを拡散したりする恐れがあります。
万が一、改ざんの被害に遭ってしまった場合に最も有効な手段は、正常な状態のバックアップからサイトを復元することです。
この記事では、WordPressサイトが改ざんされた際の対処法と、バックアッププラグインを活用した安全な復元手順について詳しく説明します。
WordPressサイトが改ざんされた際に現れる兆候
サイトが改ざんされた場合、目に見える変化だけでなく、裏側で密かに進行するケースも少なくありません。
まずは自分のサイトが本当に被害に遭っているのか、以下の項目をチェックしてみましょう。
検索結果に「このサイトは乗っ取られている可能性があります」と表示される
Googleなどの検索エンジンがサイトの異常を検知すると、検索結果に警告文を表示することがあります。
これは検索エンジンがユーザーを守るための措置であり、非常に深刻な状態であることを示しています。
警告が表示された場合は、速やかにサイトのクリーンアップと復旧作業を行う必要があります。
意図しないページへのリダイレクトが発生する
サイトにアクセスした際、全く関係のない海外のショッピングサイトや成人向けサイトに転送されることがあります。
これは.htaccessファイルやテーマのheader.phpが書き換えられ、スクリプトが埋め込まれたことによるものです。
特定のデバイスや、検索エンジン経由のアクセス時のみリダイレクトが発生する巧妙なケースも存在します。
身に覚えのない管理者ユーザーが追加されている
WordPressの管理画面の「ユーザー」一覧を確認し、作成した記憶のないユーザーが存在しないか調べてください。
攻撃者が管理権限を奪取するために、バックドアとして新しい管理者アカウントを作成することがあります。
見慣れないメールアドレスのユーザーがいる場合は、不正アクセスの可能性が極めて高いと言えるでしょう。
ファイル構成やタイムスタンプの変化
FTPソフトやサーバーのファイルマネージャーを使用して、WordPressのインストールディレクトリを確認してください。
自分が更新していないタイミングでファイルが上書きされていたり、見覚えのないPHPファイルが生成されていたりします。
特にwp-contentフォルダの中に、不自然な名前のファイルが増えていないか注視してください。
復元作業の前に必ず行うべき準備
慌ててバックアップを戻す前に、まずは被害を最小限に抑え、再発を防ぐための準備が必要です。
焦って作業を行うと、せっかくのバックアップまで汚染されてしまう可能性があるため注意してください。
サイトをメンテナンスモードに切り替える
二次被害を防ぐために、まずは一般の訪問者がサイトを閲覧できないように隔離します。
プラグインを使用するか、サーバーの機能でアクセス制限(Basic認証など)をかけるのが有効です。
サイトを一時的に閉鎖することで、攻撃者によるさらなる操作を遮断することができます。
現在の状態(汚染されたデータ)をバックアップする
「なぜ汚染されたデータを保存するのか」と疑問に思うかもしれませんが、これは原因究明のために重要です。
どのファイルがいつ書き換えられたのかを後で調査することで、脆弱性を特定しやすくなります。
このデータは「調査用」として、パソコン内の安全なフォルダに隔離して保存しておきましょう。
パソコン自体のウイルススキャンを実行する
FTPソフトやブラウザからログイン情報を盗まれている場合、パソコンがウイルスに感染している恐れがあります。
パソコンが感染したままだと、パスワードを変更しても再び盗まれてしまいます。
最新の定義ファイルに更新されたセキュリティソフトで、フルスキャンを実行してください。
WordPressプラグインを使用した復元手順
多くのユーザーが利用しているバックアッププラグインを使用した復元方法を紹介します。
代表的なプラグインである「UpdraftPlus」を例に、具体的な流れを追っていきましょう。
UpdraftPlusによる復元ステップ
UpdraftPlusは、初心者でも比較的簡単に復元操作が行えるプラグインです。
以下の手順に従って、正常な状態へ戻していきます。
1. 正常なバックアップデータの選択
管理画面の「設定」から「UpdraftPlus バックアップ」を選択します。
「既存のバックアップ」タブを開き、改ざんが発生する前と確信できる日付のデータを探してください。
日付の選択を誤ると、すでに改ざんされたファイルを復元してしまうため、余裕を持って数日前のデータを選ぶのが安全です。
2. 復元する項目の選択
「復元」ボタンをクリックすると、どの項目を元に戻すか選択する画面が表示されます。
基本的には「データベース」「プラグイン」「テーマ」「アップロード」「その他」のすべてにチェックを入れます。
改ざんはファイルとデータベースの両方に行われることが多いため、すべてをセットで戻すのが原則です。
3. 復元プロセスの実行
準備ができたら「復元」を再度クリックし、処理が完了するまでブラウザを閉じずに待ちます。
完了メッセージが表示されたら、サイトが正常に表示されるか確認してください。
主要バックアッププラグインの比較
使用しているプラグインによって、復元のしやすさや機能が異なります。
| プラグイン名 | 復元の難易度 | 特徴 |
|---|---|---|
| UpdraftPlus | 低い | 管理画面から直感的に復元可能。クラウド保存に強い。 |
| BackWPup | 中程度 | 自動バックアップに優れるが、復元にはFTP操作が必要。 |
| All-in-One WP Migration | 低い | ファイル一つで丸ごと復元。容量制限に注意。 |
| BlogVault | 非常に低い | 外部サーバーで管理。サイトが壊れていても復元可能。 |
手動でのクリーンアップとファイル置換
プラグインで解決できない場合や、より確実にクリーンな状態にしたい場合は、手動での作業が必要です。
WordPressの本体ファイルは、公式からダウンロードした新品のファイルと入れ替えることで確実に浄化できます。
WordPress本体の再インストール
WordPress公式サイトから、現在使用しているものと同じバージョンのZIPファイルをダウンロードします。
解凍したファイルの中から、wp-contentフォルダを除いたすべてのファイルを、サーバー上の既存ファイルと上書きしてください。
これにより、wp-includesやwp-adminなどのコアファイルに仕込まれた不正コードを排除できます。
wp-config.php のチェック
設定ファイルであるwp-config.phpは、自動で上書きされないため手動で確認する必要があります。
テキストエディタで開き、身に覚えのないeval()やbase64_decode()といった関数が含まれていないか確認します。
不審なコードが含まれている場合は、バックアップから正常な記述を転記し直してください。
/**
* セキュリティのための定数設定例
* 編集を制限することでリスクを低減します
*/
define('DISALLOW_FILE_EDIT', true); // 管理画面でのテーマ・プラグイン編集を禁止
define('DISALLOW_FILE_MODS', true); // プラグイン・テーマの更新や新規インストールを禁止(一時的)
復元後に必ず実施すべきセキュリティ対策
サイトを復元しただけでは、攻撃を受けた原因(脆弱性)が残ったままです。
同じ被害を繰り返さないために、復元直後に以下の対策を必ず実施してください。
すべてのパスワードを一新する
ログインパスワードが漏洩している可能性が高いため、関係するすべてのパスワードを変更します。
WordPressの管理者パスワードはもちろん、FTPアカウント、データベース(MySQL)、サーバー管理パネルのパスワードも含みます。
パスワードは、英数字と記号を混ぜた12桁以上の複雑なものを設定してください。
プラグインとテーマを最新版にアップデートする
改ざんの多くは、古いプラグインやテーマの脆弱性を突いて行われます。
「更新」が必要なものはすべて最新の状態にしてください。
また、長期間更新されていないプラグインや、使用していないテーマは削除することを強く推奨します。
セキュリティプラグインを導入・強化する
今後の攻撃を防ぐために、防御に特化したプラグインを導入しましょう。
「SiteGuard WP Plugin」などの国産プラグインは、ログインURLの変更や画像認証の追加が簡単に行えます。
「Wordfence Security」を使用すれば、サイト内のファイルスキャンを定期的に行い、改ざんを早期発見できます。
認証用ユニークキーを更新する
wp-config.phpには、クッキー情報を暗号化するための「認証用ユニークキー」が記述されています。
これらを変更することで、既存のログインセッションがすべて無効化され、攻撃者を強制的にログアウトさせることができます。
WordPress公式の鍵生成サービス(https://api.wordpress.org/secret-key/1.1/salt/)を利用して新しいキーを取得しましょう。
まとめ
WordPressサイトが改ざんされた場合、落ち着いてバックアップから正しい手順で復元することが最善の解決策です。
しかし、復元はあくまで「過去の状態に戻す」作業に過ぎません。
復元が完了した後は、再発を防ぐためにパスワードの変更や脆弱性の修正といったセキュリティ強化をセットで行う必要があります。
日頃から定期的なバックアップを外部サーバーに保存する習慣をつけ、万が一の事態に備えておきましょう。
被害に気づいたらすぐに行動することで、サイトの信頼性とユーザーの安全を守ることができます。
