WordPressサイトのセキュリティに不安を感じていませんか?WPScanを使った脆弱性診断で、ハッキングの手口と効果的な対策方法を実例とともに解説します。
動画で見る:WordPressの脆弱性スキャン
まずは動画でWPScanによる脆弱性スキャンの様子をご覧ください。
フル解説版(横型)
ショート版(60秒で要点を解説)
WordPressのセキュリティ、本当に大丈夫ですか?
「WordPressサイトが急にアクセスできなくなった」「知らない間に怪しいページが追加されていた」「Googleから警告が来た」...こんな経験はありませんか?
WordPressは世界中のWebサイトの約43%で使用されている人気のCMSですが、その人気ゆえにサイバー攻撃の標的にもなりやすいのが現実です。実際、弊社Fivenine Designでも、セキュリティ対策が不十分だった既存サイトの改修を依頼されるケースが増えています。
中小企業のWeb担当者様から「技術的なことはよくわからないが、サイトのセキュリティが心配」「何をチェックすべきかわからない」という相談を多数いただきます。今回は、WordPressがどのように攻撃されるのか、そして実際に脆弱性をチェックできるツール「WPScan」の使い方を、実践的に解説していきます。
WordPressが狙われる理由と攻撃手法
なぜWordPressが攻撃されやすいのか
WordPressが攻撃者に狙われる理由は明確です。シェアの高さ、オープンソースゆえのコード公開、そして多くのサイトでセキュリティ対策が不十分であることが挙げられます。
弊社で調査したところ、ハッキング被害を受けた中小企業サイトの85%で以下の共通点が見つかりました:
主な攻撃手法
1. ユーザー名列挙攻撃 WordPressのREST APIやAuthor Archiveページを悪用して、有効なユーザー名を取得する手法です。
# 攻撃例
https://example.com/wp-json/wp/v2/users/
https://example.com/?author=1
2. ブルートフォース攻撃 取得したユーザー名に対して、辞書攻撃やパスワードリスト攻撃を仕掛けます。
3. プラグイン・テーマの脆弱性悪用 古いバージョンや開発が停止されたプラグインの既知の脆弱性を狙った攻撃です。
4. SQLインジェクション 不適切な入力検証により、データベースを直接操作される攻撃です。
実際のクライアント事例では、製造業A社のサイトが古いプラグインの脆弱性を突かれ、商品ページに不正なリンクを大量に埋め込まれる被害を受けました。発見が遅れたため、Googleからの警告が出て検索順位が大幅に下落し、売上に直接影響が出る事態となりました。
WPScanとは - WordPressに特化した脆弱性スキャナー
WPScan(WordPress Security Scanner)は、WordPress専用のセキュリティスキャニングツールです。Kali LinuxやPentBoxなどのセキュリティテスト用ディストリビューションにも標準搭載されており、世界中のセキュリティ専門家が利用しています。
WPScanでできること
- WordPressのバージョン検出
- インストール済みプラグイン・テーマの特定
- 既知の脆弱性の検出
- ユーザー名の列挙
- 設定ファイルの露出チェック
- ブルートフォース攻撃のシミュレーション
重要な注意点: WPScanは自分が管理するサイトのセキュリティチェックにのみ使用してください。他人のサイトに対する無断でのスキャンは法的問題を招く可能性があります。
WPScanのインストールと基本的な使い方
インストール方法
# Rubyのインストール
sudo apt update
sudo apt install ruby ruby-dev
# WPScanのインストール
sudo gem install wpscan
# APIトークンの設定(推奨)
wpscan --update
wpscan --api-token YOUR_API_TOKEN
APIトークンの取得
より詳細な脆弱性情報を取得するために、WPScanのAPIトークンを取得することを強く推奨します:
- WPScan公式サイトでアカウント作成
- APIトークンを取得
- 環境変数に設定:
export WPSCAN_API_TOKEN=your_token_here
基本的なスキャン手順
1. 基本スキャン
wpscan --url https://your-wordpress-site.com
2. 詳細スキャン(プラグイン・テーマ検出)
wpscan --url https://your-wordpress-site.com --enumerate p,t,u
# p: プラグイン, t: テーマ, u: ユーザー
3. 脆弱性チェック付きスキャン
wpscan --url https://your-wordpress-site.com --enumerate vp,vt --api-token YOUR_TOKEN
# vp: 脆弱性のあるプラグイン, vt: 脆弱性のあるテーマ
スキャン結果の読み方
弊社でクライアントサイトをスキャンした実際の例を見てみましょう:
[+] WordPress version 5.8.1 identified (Insecure, released on 2021-09-09).
[!] 15 vulnerabilities identified:
[+] WordPress theme in use: twentytwentyone
| Location: http://example.com/wp-content/themes/twentytwentyone/
| Last Updated: 2021-07-22T00:00:00.000Z
| [!] The version is out of date, the latest version is 1.4
[+] contact-form-7
| Location: http://example.com/wp-content/plugins/contact-form-7/
| Last Updated: 2021-05-13T05:59:00.000Z
| [!] 2 vulnerabilities identified:
| [!] Title: Contact Form 7 < 5.4.2 - Unrestricted File Upload
この結果から、WordPressコア、テーマ、プラグインすべてにセキュリティリスクがあることが判明しました。
発見された脆弱性への対策方法
即座に実施すべき対策
WordPress本体とプラグインの更新
# WordPress CLIを使用した一括更新(推奨)
wp core update
wp plugin update --all
wp theme update --all
管理画面からの更新も可能ですが、大量のプラグインがある場合はCLIの方が効率的です。
セキュリティプラグインの導入
Wordfenceの設定例
弊社で推奨しているWordfenceプラグインの基本設定をご紹介します:
-
ファイアウォール設定
- Learning Modeを1週間実行
- 国別アクセス制限の設定
- レート制限の設定
-
スキャン設定
- 深夜の自動スキャン設定
- メール通知の設定
- 重要ファイルの改ざん検知
-
ログイン保護
- Two-Factor Authentication有効化
- ログイン試行回数制限
- 管理者以外のwp-admin制限
よくある失敗パターンと対処法
20年間のWeb制作経験の中で、セキュリティ対策でよくある失敗パターンをまとめました。
失敗パターン1:更新作業で本番サイトが停止
症状: プラグイン更新後にサイトが真っ白になった、エラーが発生した
原因: テーマやプラグイン間の互換性問題、PHPバージョンの非対応
対処法:
- ステージング環境での事前テスト必須
- バックアップからの復旧手順の確認
- 更新は平日の業務時間に実施
実際の事例では、不動産業B社でプラグイン更新後に物件検索機能が動作しなくなり、問い合わせが一時的に激減する事態が発生しました。
失敗パターン2:セキュリティプラグインの誤検知
症状: 正常なアクセスがブロックされる、管理者もログインできない
原因: セキュリティプラグインの設定が厳しすぎる
対処法:
// wp-config.phpに緊急時のアクセス許可を追加
define('WORDFENCE_DISABLE_LOGIN_SECURITY_FEATURE', true);
失敗パターン3:バックアップの不備
症状: 復旧しようとしたらバックアップが取れていない、古すぎる
原因: 自動バックアップの設定不備、保存場所の問題
対処法:
- 複数の場所(サーバー、クラウド)への保存
- 定期的な復旧テストの実施
- データベースとファイル両方のバックアップ
失敗パターン4:パフォーマンスへの悪影響
症状: セキュリティ対策後にサイトの表示速度が大幅に低下
原因: 複数のセキュリティプラグインの併用、スキャン頻度が高すぎる
対処法:
- セキュリティプラグインは1つに絞る
- スキャンは深夜時間帯に設定
- キャッシュプラグインとの併用
中小企業向け実践的セキュリティ対策
人的リソースが限られた環境での運用方法
中小企業では専任のIT担当者がいないケースが多いため、効率的な管理体制の構築が重要です。
月次セキュリティチェックリスト
外部専門家との連携体制
レベル別対応方針
コスト効率を考慮したセキュリティ投資
投資対効果の高い施策ランキング
- セキュリティプラグイン導入(月額1,000円程度)
- 定期バックアップサービス(月額500円程度)
- SSL証明書(年額数千円〜)
- 専門家による年次監査(年額10-20万円)
弊社クライアントの製造業C社では、年間5万円のセキュリティ投資により、以前発生していた年2-3回の軽微な被害(復旧費用月10万円程度)を完全に防げるようになりました。
継続的なセキュリティ管理の重要性
自動化できる部分と人的管理が必要な部分
自動化推奨項目:
- WordPressコア・プラグインの更新通知
- 定期バックアップの実行
- 基本的な脆弱性スキャン
- 異常アクセスの検知・ブロック
人的確認が必要な項目:
- 更新による動作確認
- スキャン結果の評価
- セキュリティポリシーの見直し
- インシデント対応
セキュリティインシデント発生時の対応フロー
flowchart TD
A[異常検知] --> B{緊急度判定}
B -->|High| C[即座にサイト閉鎖]
B -->|Medium| D[詳細調査]
B -->|Low| E[監視強化]
C --> F[専門家へ連絡]
D --> G{被害範囲確認}
G -->|拡大中| C
G -->|限定的| H[対症療法]
F --> I[根本対策]
H --> I
E --> J[定期レポート]
I --> K[再発防止策]
K --> L[正常運用復帰]まとめ:今すぐ始めるWordPressセキュリティ対策
WordPressサイトのセキュリティは「やられてから対応する」のでは遅すぎます。今回ご紹介したWPScanを使った脆弱性チェックは、専門知識がなくても実践できる効果的な予防策です。
弊社Fivenine Designでは、これまで数百のWordPressサイトのセキュリティ対策を支援してきました。その経験から言えるのは、定期的な点検と基本的な対策の徹底が最も重要だということです。
今週中に実施していただきたいアクション
専門的なサポートが必要な場合
もしWPScanの結果で多数の脆弱性が発見された場合や、技術的な対応に不安がある場合は、迷わず専門家にご相談ください。セキュリティインシデントが発生してからの対応費用は、予防対策の10倍以上になることが珍しくありません。
弊社では、神奈川県内の中小企業様を中心に、WordPressサイトのセキュリティ診断・強化サポートを提供しています。「まずは現状を把握したい」「セキュリティ対策の計画を立てたい」といったご相談から、緊急時の復旧作業まで、20年以上の実績に基づいたサポートをご提供いたします。
Webサイトのセキュリティは、企業の信頼性と直結する重要な要素です。適切な対策により、安心してビジネスに集中できる環境を整えましょう。