【事例あり】WordPressサイトがハッキングされたら?復旧手順と再発防止の完全ガイド
ある月曜の朝、自社サイトが「ウイルス配布サイト」に変わっていた
「進藤さん、うちのサイトが……なんか変になってて……」
震える声で電話をかけてきたのは、都内で飲食店を3店舗展開する社長さんでした。月曜の朝、出勤した従業員が会社のホームページを開こうとしたところ、Chromeに「このサイトは第三者によって改ざんされている可能性があります」という赤い警告画面が表示されたのです。
急いでサイトを確認すると、トップページは一見正常に見えるものの、ソースコードの中に悪意のあるJavaScriptが埋め込まれていました。サイトを訪問したユーザーが自動的に海外のフィッシングサイトに転送される仕掛けです。
これは特別な事例ではありません。WordPressは世界中のWebサイトの43%以上で使われている最も人気のあるCMSですが、それゆえに攻撃者にとっても最も「割のいい」標的なのです。
この記事では、WordPressサイトがハッキングされた場合の緊急復旧手順と、二度と同じ被害に遭わないための再発防止策を、僕が実際に対応した事例を交えて解説します。
この記事で分かること
- WordPressサイトがハッキングされた時の「最初の30分」にやるべきこと
- ハッキングの種類と被害の見分け方
- マルウェア駆除とサイト復旧の具体的手順
- 再発防止のためのセキュリティ対策チェックリスト
- 「うちは大丈夫」と思っている方への現実的なリスク提示
「うちみたいな小さいサイト、狙われるわけないでしょ?」——最大の誤解

攻撃は「人」が選んでいるのではない。「ボット」が自動で探している
多くの中小企業の経営者は「うちみたいな無名のサイトをわざわざハッキングする理由がない」と考えています。しかしこれは完全な誤解です。
現代のハッキングの大部分は、人間が手動でターゲットを選んでいるわけではありません。ボット(自動プログラム)が24時間365日、脆弱性のあるWordPressサイトをインターネット全体から機械的にスキャンしているのです。
ボットにとってサイトの規模は関係ありません。「WordPressを使っている」「プラグインが古い」「パスワードが脆弱」——この3条件のいずれかを満たすサイトを見つけたら、自動的に侵入を試みます。
被害の実態:数字で見るWordPressセキュリティ
| 指標 | 数値 | 出典 |
|---|---|---|
| 毎日ハッキングされるWordPressサイト数 | 約30,000サイト | Sucuri 2025年レポート |
| ハッキングの原因の1位 | プラグインの脆弱性(56%) | WPScan脆弱性データベース |
| 原因2位 | 弱いパスワード(16%) | Wordfence 2025年調査 |
| 原因3位 | 古いWordPress本体(12%) | 同上 |
| ハッキング検知までの平均時間 | 約200日 | IBM Security 2025 |
⚠️ 衝撃のデータ:ハッキングされてから検知されるまで平均200日。つまり半年以上、自社サイトが改ざんされた状態で運営し続けている企業が大半ということです。サイト訪問者がマルウェアに感染したり、個人情報が漏洩したりしている可能性があります。
ハッキングの種類と「うちのサイトは大丈夫?」の見分け方

種類1:マルウェア埋め込み型(最も多い)
サイトのPHPファイルやJavaScriptファイルに悪意のあるコードを挿入し、訪問者をフィッシングサイトに転送したり、ブラウザにマルウェアをダウンロードさせたりする攻撃です。
兆候:
- Chromeが「このサイトは危険です」と警告を表示する
- Google Search Consoleから「セキュリティの問題」の通知が届く
- サイトにアクセスすると、意図しないページにリダイレクトされる
種類2:SEOスパム注入型
サイトのコンテンツやリンクを改ざんし、攻撃者が売りたい商品(偽ブランド品、違法薬物等)へのリンクを大量に埋め込む攻撃です。「ファーマハック」とも呼ばれます。
兆候:
- Googleで自社サイトを検索すると、身に覚えのない日本語(またはその他の言語)のタイトルが表示される
- サイトのソースコードに、見知らぬ外部サイトへのリンクが大量に存在する
- Search Consoleでインデックスされたページ数が異常に増加している
種類3:バックドア設置型
攻撃者が今後いつでもサイトに侵入できるよう、裏口(バックドア)プログラムを設置する攻撃です。表面上は何も変わっていないため、検知が最も困難です。
兆候:
- サーバー上に
wp-tmp.php、cache.php、class-db.php等の見知らぬPHPファイルがある .htaccessファイルが勝手に書き換えられている- FTPログに身に覚えのないIPアドレスからのアクセスがある
自分でできるクイック診断
今すぐ以下の3つを確認してみてください。
- Google Search Consoleにログインし、「セキュリティの問題」タブを確認(警告が出ていないか)
- Sucuri SiteCheck(https://sitecheck.sucuri.net/)に自社URLを入力してスキャン(無料・即時結果)
- サイトをシークレットモードで開き、普段と違う挙動がないか確認(リダイレクト、ポップアップ等)
💡 ポイント:Sucuri SiteCheckは外部からのスキャンなので、バックドアのように表面に露出しない攻撃は検出できません。より精密な検査にはサーバー側のファイルスキャンが必要です。
ハッキングされた!——最初の30分にやるべき緊急対応

ステップ1:サイトを一時的にメンテナンスモードにする(0〜5分)
被害の拡大を防ぐため、まずサイトへのアクセスを遮断します。
方法A(サーバーパネルから): エックスサーバー等の管理画面からアクセス制限をかける
方法B(.htaccessで):
# 全アクセスを遮断(自分のIPだけ許可)
Order deny,allow
Deny from all
Allow from [自分のIPアドレス]
ステップ2:パスワードを全て変更する(5〜10分)
以下の全パスワードを即座に変更してください。
- WordPressの管理者パスワード
- FTP/SFTPのパスワード
- データベース(MySQL)のパスワード
- サーバーコントロールパネルのパスワード
⚠️ 重要:データベースのパスワードを変更した場合、wp-config.php内のDB_PASSWORDの値も一致させないと、サイトが接続エラーになります。必ず両方を同時に更新してください。
ステップ3:バックアップを確認する(10〜15分)
ハッキング「前」のバックアップが存在するか確認してください。
- サーバー会社の自動バックアップ(エックスサーバーは過去14日分を自動保持)
- 自分で取得したバックアップ(UpdraftPlusなど)
バックアップが存在する場合は、ステップ4に進みます。存在しない場合は、手動でのマルウェア駆除が必要です(後述)。
ステップ4:クリーンなバックアップから復旧する(15〜30分)
ハッキング前のバックアップが存在する場合、最も確実で速い復旧方法はバックアップからの復元です。
ただし、復元後に同じ脆弱性(古いプラグイン等)が残っている場合、すぐに再度ハッキングされます。復元後は必ずステップ5以降のセキュリティ強化を行ってください。
バックアップがない場合の手動マルウェア駆除
駆除手順1:WordPress本体を再インストールする
wp-admin/、wp-includes/ ディレクトリ内のファイルを、WordPress公式サイト(https://ja.wordpress.org/download/)から取得した最新版で上書きします。
絶対に上書きしてはいけないファイル:
wp-config.php(データベース接続情報が入っている)wp-content/フォルダ全体(テーマ・プラグイン・アップロード画像が入っている)
駆除手順2:プラグインとテーマのクリーン再インストール
全プラグインを一旦非有効化し、公式リポジトリから最新版をダウンロードして再インストールします。使っていないプラグインとテーマは完全に削除してください。
駆除手順3:wp-content/uploads/ のスキャン
アップロードフォルダ内にPHPファイルがないか確認します。画像フォルダにPHPファイルが存在する場合、ほぼ確実にバックドアです。
# サーバーのSSHで実行
find wp-content/uploads/ -name "*.php" -type f
該当ファイルが見つかった場合は即座に削除してください。
駆除手順4:データベースの検査
phpMyAdminでデータベースにアクセスし、wp_usersテーブルに見知らぬ管理者アカウントが追加されていないか確認します。攻撃者はよく自分用の管理者アカウントを作成します。
✅ プロに依頼すべきタイミング:手動駆除を試みて30分以内に解決の見通しが立たない場合は、無理をせずセキュリティ専門会社に依頼してください。素人判断で中途半端に駆除すると、バックドアが残り、数日後に再感染するケースが非常に多いです。
二度とハッキングされないための再発防止10カ条
1. 全プラグイン・テーマ・WordPress本体を最新に保つ
ハッキングの原因の56%がプラグインの脆弱性です。最新版にアップデートするだけで、半分以上のリスクを排除できます。
2. 使っていないプラグインとテーマは完全に「削除」する
「無効化」ではダメです。ファイルがサーバー上に残っている限り、脆弱性は存在し続けます。
3. 管理者パスワードを「20文字以上のランダム文字列」にする
password123やadmin2026のようなパスワードは論外です。パスワードマネージャー(1Password、Bitwarden等)で生成した20文字以上のランダム文字列を使用してください。
4. ログインURLを変更する
デフォルトの/wp-admin/は世界中の攻撃者に知られています。「WPS Hide Login」プラグインで、ログインURLを独自のものに変更しましょう。
5. 二要素認証(2FA)を導入する
管理者ログインに「パスワード+認証アプリ」の二段階認証を追加します。たとえパスワードが漏洩しても、攻撃者はログインできなくなります。
6. WAF(Webアプリケーションファイアウォール)を有効化する
エックスサーバーやConoHa WINGには、サーバー標準のWAF機能が搭載されています。必ずONにしてください。
7. ファイル編集をWordPress管理画面から禁止する
wp-config.phpに以下を追加すると、管理画面からのテーマ/プラグインエディタが無効化されます。
define('DISALLOW_FILE_EDIT', true);
8. 自動バックアップを「日次+外部保存」で設定する
バックアップは同一サーバーに保存していると、サーバーごとハッキングされた場合に使えません。Google Drive、Dropbox等の外部ストレージに自動保存する設定にしてください。
9. セキュリティプラグインを1つ導入する
| プラグイン名 | 主な機能 | 料金 | おすすめ度 |
|---|---|---|---|
| Wordfence Security | ファイアウォール、マルウェアスキャン、ログイン保護 | 無料(有料版あり) | ★★★★★ |
| Sucuri Security | セキュリティ監査、ファイル整合性監視 | 無料(有料版あり) | ★★★★☆ |
| iThemes Security | 二要素認証、ログインURL変更、ブルートフォース対策 | 無料(有料版あり) | ★★★★☆ |
10. 月に1回、セキュリティチェックルーティンを実行する
- WordPress本体・プラグイン・テーマの更新状況を確認
- Sucuri SiteCheckでスキャン
- Search Consoleの「セキュリティの問題」を確認
- ログイン履歴に不審なアクセスがないか確認
まとめ:セキュリティは「やらない理由」がない投資
WordPressのハッキング被害は、「明日起きるかもしれない」リスクです。しかし幸いなことに、この記事で紹介した再発防止の10カ条のうち、7つは無料で・今日中に・自分で実施できます。
ハッキングされてからの復旧コストは平均15〜30万円。一方、予防策のコストは0円〜月額数千円。どちらが賢い選択かは、もう明白ですよね。
まず今日、以下の3つだけ実行してください。
- 全プラグインを最新版に更新する(5分)
- 使っていないプラグインとテーマを「削除」する(10分)
- Wordfence Securityをインストールし、初期スキャンを実行する(15分)
この30分の作業が、将来の30万円と数週間のダウンタイムを防ぎます。
この記事を書いた人:進藤 優介|株式会社Acqua 代表取締役 飲食業界18年の実務経験を経て、Web制作・デジタルマーケティングの世界へ転身。2020年にAcquaを設立し、AI×Webの力で中小企業のビジネスを加速させることをミッションに、HP制作・LP制作からAI導入支援まで代表自らが伴走しています。