速度改善・安全対策

WordPressが乗っ取られた・改ざんされたときの対処法|復旧と再発防止の手順

見覚えのない管理者が増えた、海外サイトへ勝手に転送される、検索結果に不審なページが出る、ブラウザーに危険なサイトと警告される。こうした症状があっても、慌ててプラグインを大量削除したり、最新バックアップを上書きしたりすると、原因と被害範囲を調べる痕跡まで失うことがあります。

WordPressの乗っ取り・改ざん対応は、被害を止める、証拠を保存する、侵入経路を塞ぐ、クリーンな状態へ戻す、公開前に確認するの順で進めます。スキャンで警告が消えたことや管理画面へ入れたことだけでは、安全になったとは判断できません。

個人情報、決済情報、会員情報を扱うサイト、複数サイトが同じサーバーにある環境、管理者権限を奪われた状態は、早い段階でサーバー会社とセキュリティ専門家へ連絡してください。この記事は一般的な初動と確認順を整理するもので、個別の法的判断や完全なマルウェア除去を保証するものではありません。

先に結論|復元だけで終わらせず入口まで塞ぐ

  1. 不審ページを普段使いのブラウザーで何度も開かない
  2. 被害が続く場合は公開停止やアクセス制限をサーバー会社と判断する
  3. 時刻、URL、警告、ユーザー、ログ、直前変更を保存する
  4. 感染状態を隔離して保存し、正常なバックアップの時点を確認する
  5. WordPress以外も含むすべてのアクセス情報を安全な端末から変更する
  6. 不正ファイル・DB・ユーザーを除去し、侵入経路を修正する
  7. 正常なファイル、テーマ、プラグイン、DBへ復旧する
  8. 公開前チェック後、Googleの警告があれば審査を依頼する
  9. 更新、権限、二要素認証、バックアップ、ログ監視を見直す

WordPress公式の「FAQ My site was hacked」も、症状と時刻の記録、サイトと端末のスキャン、ホスティング会社への確認、アクセス制御の見直し、感染状態の保存、除去、更新、再度のパスワード変更、原因調査を一連の対応として案内しています。

乗っ取り・改ざんを疑う主な症状

症状確認する場所注意
見覚えのない管理者・ユーザーWordPressユーザー、サーバー、Search Console、Cloudflare削除だけでは再追加される可能性がある
不審な転送・ポップアップテーマ、プラグイン、DB、.htaccess、外部スクリプト特定端末や検索経由だけに出る場合がある
知らない記事・URL・検索結果投稿、固定ページ、サイトマップ、Search Console管理画面に見えないファイル生成もある
危険・マルウェア警告Search Console Security Issues、Safe Browsing、ホスト通知通常ブラウザーで感染ページを直接確認しない
管理画面へ入れない・権限が変わったユーザー、メール、DB、サーバーログ単なるパスワード忘れと決めつけない
サーバー会社による停止停止理由、検知ファイル、発生時刻、同居サイト勝手に再公開せず条件を確認する
大量メール・CPU・通信量の急増メールログ、アクセスログ、Cron、PHPプロセスサイト表示が正常でも侵害は否定できない

一つの症状だけで原因は決まりません。たとえば海外サイトへの転送は、改ざんだけでなく、誤ったリダイレクト設定や広告スクリプトでも起きます。反対に、トップページが正常でも、検索エンジンや特定端末にだけ不審内容を見せるクローキングが使われる場合があります。

Googleは、感染ページを通常ブラウザーで直接開くと端末へ被害が広がるおそれがあるため、Search ConsoleのSecurity IssuesやURL検査などを使うよう案内しています。警告が出たURLを確認目的で何度も開かないでください。

最初の30分で行う7つの初動

破損した入口を閉鎖し周囲の痕跡を保全した雨上がりの石造り中庭

1. 更新・編集・ログイン試行を止める

新しいプラグイン追加、テーマ編集、キャッシュ設定変更を止めます。管理画面のパスワードを何度も試すと、ログが増えて攻撃者の操作と区別しにくくなることがあります。

2. 被害拡大を止める

訪問者へマルウェアを配る、不正フォームで情報を集める、大量メールを送るなどの被害が続く場合は、サーバー会社へ連絡し、メンテナンス表示、アクセス制限、メール送信停止、サイト隔離を検討します。DNSを衝動的に削除すると、メールや所有権確認まで失う可能性があるため、影響範囲を確認して行います。

3. 症状と時刻を記録する

  • 最初に気づいた日時とタイムゾーン
  • 最後に正常だった日時
  • 不審な完全URL、警告文、スクリーンショット
  • 見覚えのないユーザー名、メール、権限
  • 直前の更新、インストール、外注作業、サーバー変更
  • 影響する端末、回線、ブラウザー、検索経由の差
  • サーバー会社、Google、利用者から届いた通知

4. ログと現在状態を保全する

アクセスログ、エラーログ、FTP/SFTPログ、メールログ、サーバー操作履歴、WordPressユーザー一覧を保存します。警察庁のウェブサイト改ざん対策でも、サービス停止とアクセスログ等の証拠保全、原因調査、脆弱性修正、パスワード変更が案内されています。

5. サーバー会社へ連絡する

共有サーバーでは同居サイトやメールも影響している可能性があります。検知したファイル、停止理由、利用可能なログ、正常なバックアップ、復旧条件、他サイトへの影響を確認します。

6. 安全な端末を用意する

管理に使っていたパソコンやブラウザー拡張から認証情報が漏れた可能性もあります。OS、ブラウザー、セキュリティソフトを更新し、フルスキャンを行います。不審な端末から新しいパスワードを設定しないでください。

7. 感染状態を隔離して保存する

感染している可能性があっても、現在のファイルとDBは原因調査や差分確認に役立ちます。公開に使わない隔離先へ保存し、正常バックアップと混ぜない名前を付けます。機密情報を含むため、共有リンクを公開状態にしないでください。

専門家へ任せるべき判断ライン

状況自力対応を止める理由主な連絡先
個人情報・決済・会員情報を扱う漏えい範囲と通知判断が必要責任者、法務、委託先、専門家
複数サイト・メール・端末へ広がるWordPressだけの清掃では足りないサーバー会社、セキュリティ専門家
管理者・サーバー権限を奪われた攻撃者が再設定できるサーバー会社、ドメイン・メール事業者
感染ファイルが削除後に再発する入口や常駐処理が残っているセキュリティ専門家
ログがない・侵入時点が不明安全な復元時点を判断しにくいサーバー会社、専門家
警察・顧客・取引先対応が必要証拠保全と説明の一貫性が必要組織責任者、警察相談窓口、専門家

WordPress公式も、高度な攻撃では自力復旧が難しいため、信頼できる専門家へ依頼する選択を案内しています。費用だけでなく、調査範囲、ログ保全、再発保証の条件、報告書の有無、機密情報の扱いを確認して依頼します。

すべてのアクセス点を洗い出して変更する

  • WordPressの全管理者・編集者アカウント
  • レンタルサーバー、コントロールパネル
  • SFTP、FTP、SSH
  • データベースのユーザーとパスワード
  • ドメイン管理、DNS、Cloudflare
  • 管理者メール、フォーム送信用メール
  • Google Search Console、GA4、広告・タグ管理
  • Git、外部ストレージ、バックアップ保存先
  • 保守会社、制作会社、退職者など第三者アカウント

攻撃者がWordPress管理者だけでなく、サーバーやメールへ入れる状態なら、WordPressのパスワードだけ変えても戻されます。安全な端末から、他サービスで使い回していない長く一意なパスワードへ変更し、利用できる箇所は二要素認証を設定します。

WordPressのログインセッションを切るため、認証用のsecret keysを更新する方法も公式資料で案内されています。ただし、wp-config.phpを誤編集するとサイトが停止するため、バックアップと編集手段を確保し、分からなければサーバー会社へ依頼してください。

パスワード変更は、初動で被害を抑えるときと、クリーン化完了後の2回を検討します。清掃前に設定した新しい認証情報が、残った不正プログラムに再取得される可能性があるためです。

クリーン化と復旧を6段階で進める

汚染された石材を隔離し正常な部材だけで門を再建する防護中庭

1. 正常な復元時点を決める

最後に正常だった時刻、最初の不審ログ、ファイルの更新日時、Googleやサーバー会社の通知時刻を並べます。最新バックアップにも不正ファイルが含まれる可能性があるため、取得日時だけで選びません。

2. 不正ユーザー・所有権・権限を確認する

WordPress、Search Console、Cloudflare、サーバー、メールに見覚えのないユーザーや所有者がいないか確認します。Google Search Consoleの所有者を削除しても、確認用HTMLやメタタグが残れば再取得される可能性があるため、確認トークンの所在も調べます。

3. コア・テーマ・プラグインを信頼できる配布元と比較する

WordPress本体はWordPress.org、テーマ・プラグインは公式配布元または正規購入元から入手します。不正コードだけを一行削除しても、別の入口や追加ファイルが残る可能性があります。wp-contentにはアップロード、独自テーマ、設定があるため、無差別に上書きせず内容を確認します。

4. データベースと自動実行を確認する

  • 見覚えのない管理者、投稿、固定ページ、埋め込みコード
  • 不審なURL、script、iframe、難読化された長い文字列
  • 予定していないCron、Must-Useプラグイン、ドロップイン
  • テーマ設定、ウィジェット、ヘッダー・フッター挿入
  • メール送信、APIキー、Webhook、決済・フォーム設定

5. 正常バックアップまたはクリーンな部品から復旧する

正常時点のバックアップがある場合も、侵入経路を塞いだうえで復元します。復元対象と失われる新規データを整理する手順は、WordPressをバックアップから復元する方法で確認してください。

6. 本体・テーマ・プラグイン・PHPを安全に更新する

侵入原因になった脆弱性や古いソフトウェアを残すと、復元後に同じ方法で再侵入されます。不要なテーマ・プラグインは無効化だけでなく削除を検討し、必要なものは正規配布元の最新版へ更新します。更新を一度に重ねず、WordPress更新の安全な順番に沿って確認します。

Googleの警告と不審URLを整理する

  1. Search ConsoleのSecurity Issuesを開く
  2. 問題の種類とサンプルURLを保存する
  3. サイト全体のクリーン化と侵入経路の修正を完了する
  4. 不正URLが適切な404または410になることを確認する
  5. 正常ページがnoindexやrobots.txtで遮断されていないか確認する
  6. 修正内容と原因対策を簡潔にまとめる
  7. Security Issuesから審査を依頼する

GoogleのSecurity Issues公式ヘルプでは、ハッキングされたコンテンツ、マルウェア、不正なソーシャルエンジニアリングを確認し、クリーン化後に審査を依頼できます。表示されるURLは例であり、一覧にないページが安全だと保証するものではありません。

不正URLを早く消したいからと、サイト全体を削除ツールで非表示にするのは避けます。正常ページまで検索結果から消える可能性があります。不正URLを削除し、適切なHTTP状態を返し、サイトマップと内部リンクから外して再クロールを待ちます。

審査依頼では、「すべて削除しました」だけでなく、問題ごとに何を削除し、どの入口を修正し、どのアクセス情報を変更したかを説明します。警告解除には時間差があるため、承認直後にブラウザー表示が変わらなくても、連続で同じ審査を送らず更新を待ちます。

公開再開前の確認表

修復した門と複数の防護点を公開前に最終点検する明るい石造り中庭
確認領域再開前の条件
被害停止不正転送、マルウェア配布、大量メール、異常な処理が止まっている
原因侵入経路を特定、または再侵入を防ぐ十分な対策を実施した
ファイル・DB不正ユーザー、ファイル、コード、投稿、Cron、設定を確認した
認証全アクセス点を安全な端末から再設定し、不要ユーザーを削除した
更新本体、テーマ、プラグイン、PHPを安全な対応版へ更新した
表示・機能PC・スマホ、ログイン、フォーム、メール、注文、計測を確認した
検索Security Issues、所有者、サイトマップ、不正URLの状態を確認した
記録発生時刻、原因、修正、影響、残課題、担当を記録した
監視ログ、更新、バックアップ、通知を継続確認できる

公開表示が正常になっただけでは、再開条件を満たしません。不正管理者やSearch Console所有者が残る、メール送信が悪用されたまま、入口となった古いプラグインが残る状態では再発します。

再開後も最初の数日は、アクセスログ、サーバー負荷、メール送信、管理者追加、ファイル変更、Search Consoleの警告を短い間隔で確認します。同じ症状が出たら、その場で追加ファイルだけを消さず、未解決の侵入経路がある事故として再調査します。

再発防止で見直す7項目

  • 管理者を必要最小限にし、退職者・外注・テスト用を整理する
  • 長く一意なパスワードと二要素認証を使う
  • WordPress本体、テーマ、プラグイン、PHPを放置しない
  • 使っていないテーマ・プラグインを削除する
  • ファイルとDBを別の場所にも保存し、復元テストを行う
  • アクセスログ、ファイル変更、ユーザー追加、障害通知を確認する
  • 更新日、担当、変更内容、復旧手順を記録する

警察庁が公表した2024年の不正アクセス原因別データでは、「古いバージョンの利用や修正プログラム等の未導入」と「設定の不備」が報告事例の大きな割合を占めています。WordPressでも、難しい防御機能を増やす前に、更新、権限、不要ソフト、バックアップ、記録を日常運用にします。

予防の全体像はWordPressセキュリティ設定の基本、不要な機能の整理はWordPressプラグインを減らす方法で確認できます。

よくある質問

セキュリティプラグインで警告が消えれば安全ですか?

安全とは断定できません。スキャナーごとに確認範囲が違い、DB、サーバー、端末、外部アカウント、未知の不正ファイルをすべて検出できるとは限りません。複数の証拠とログ、公式ファイルとの差分、再発の有無を確認します。

感染前のバックアップへ戻せば解決しますか?

入口を塞がなければ再侵入される可能性があります。バックアップの時点が本当に感染前か、認証情報や端末が安全か、脆弱なテーマ・プラグインや不正所有者が残っていないかを確認してから復元します。

見覚えのない管理者を削除すれば終わりですか?

終わりではありません。攻撃者がサーバー、DB、メール、確認トークンへアクセスできれば、管理者を再作成できます。全アクセス点、ログ、ファイル、DB、Search Console所有権を確認します。

Googleの警告はいつ消えますか?

問題の種類と審査状況により異なります。クリーン化と原因修正を終え、Search Consoleから必要な審査を依頼します。承認後もSearch Console、検索結果、ブラウザー警告の反映には時間差があります。

まとめ|止める・残す・塞ぐ・戻すの順で対応する

WordPressの乗っ取り・改ざんは、不正コードを一つ消して終わる問題ではありません。被害を止め、証拠を残し、サイト・サーバー・端末・外部アカウントを含めて入口を調べ、クリーンな状態へ戻します。

  • 不審ページを通常ブラウザーで何度も開かない
  • サービス停止とログ保全をサーバー会社と判断する
  • 安全な端末から全アクセス情報を再設定する
  • 感染前のバックアップと正規配布元の部品で復旧する
  • Google警告は清掃と原因修正後に審査を依頼する
  • 更新、権限、不要ソフト、バックアップ、監視を日常運用にする

まず、症状、時刻、URL、警告、見覚えのないユーザー、直前変更を書き出してください。そのうえで、個人情報や複数システムへ影響する場合は自力対応を止め、サーバー会社と専門家へ引き継ぎます。

-速度改善・安全対策