実務で見るべきWordPressのセキュリティリスクと脆弱性

「WordPressのセキュリティ」というと、まず「CVE」や「脆弱性情報」を思い浮かべる人が多いかもしれません。
もちろん、WordPress本体やプラグイン、テーマに報告される脆弱性は重要です。古いバージョンを放置すれば、攻撃者に狙われる可能性は高まります。しかし、実際のWordPress運用で危ないのは、CVEだけではありません。

むしろ現場では、プラグインの放置、管理者権限の甘さ、フォーム設定、ファイルアップロード、古いPHP、バックアップ不備、サーバ設定の問題など、複数の要素が重なってトラブルにつながるケースが多くあります。つまり、WordPressの危険性は「本体が古いかどうか」だけでは判断できません。
この記事では、WordPressサイトを安全に運用するために確認すべき代表的なリスクを、実務目線で解説します。

WordPressのプラグイン・拡張機能を表す3Dイラスト

WordPressの主なセキュリティリスク

WordPressで特に注意すべき危険性は、以下のようなものです。

危険性起こり得る被害優先度
プラグイン脆弱性管理者乗っ取り、情報漏えい、遠隔コード実行最優先
放置プラグイン・テーマ修正されない穴が残り続ける
管理者アカウント乗っ取りサイト改ざん、マルウェア設置、SEOスパム
REST API / admin-ajax.phpの悪用情報取得、権限昇格、負荷攻撃
フォーム・会員登録系の穴スパム投稿、個人情報漏えい、任意ユーザー作成
ファイルアップロード系の穴不正ファイル設置、サーバ侵害最高
古いPHP / 古いMySQL本体を更新しても土台が危険なまま
wp-config.php / DB情報漏えいDB接続情報・認証キー流出
バックアップ不備復旧不能、事業停止リスク

このように、WordPressのリスクはひとつではありません。サイト本体、プラグイン、テーマ、管理者アカウント、フォーム、サーバ、バックアップまで含めて確認する必要があります。

1. 一番危ないのはプラグイン

更新通知が並ぶWordPress管理画面のプラグイン一覧

WordPress本体よりも、実際に問題になりやすいのはプラグインです。
WordPressは非常に便利なCMSですが、その便利さの多くはプラグインによって成り立っています。問い合わせフォーム、SEO、キャッシュ、セキュリティ、EC、会員機能、予約、SNS連携など、必要に応じて機能を追加できます。
しかし、プラグインが増えるほど、攻撃される可能性のある入口も増えます。
特に危険なのは、以下のようなプラグインです。

  • 長期間更新されていないプラグイン
  • 開発元が不明確なプラグイン
  • 導入数が少なく、情報が少ないプラグイン
  • ファイルアップロード機能を持つプラグイン
  • 会員登録・ログイン機能を持つプラグイン
  • フォーム送信内容をDBに保存するプラグイン
  • EC・決済・個人情報を扱うプラグイン
  • 外部APIと連携するプラグイン

本体だけを見て「最新版だから安全です」と判断するのは危険です。
本体が新しくても、古いプラグインが1つ残っていれば、そこから侵入される可能性があります。本体だけ見る診断は、形だけは作業しているように見えますが、大事なものは全部こぼれています。

2. 放置プラグイン・テーマは危険

WordPress管理画面のインストール済みテーマ一覧

WordPressでよくあるのが、「使っていないけれど残っているプラグイン」です。
停止中のプラグインでも、ファイル自体がサーバー上に残っていれば、脆弱性の影響を受ける可能性があります。
特に以下の状態は危険です。

  • 使っていないプラグインが残っている
  • 停止中の古いプラグインが多い
  • テーマが複数残っている
  • 何年も更新されていないテーマがある
  • 購入テーマのライセンスが切れている
  • 配布終了テーマを使い続けている

有料テーマや国産テーマであっても、更新されていなければ危険です。
見た目は普通に動いていても、裏側のPHPやJavaScript、付属プラグインが古いままになっていることがあります。

3. 管理者アカウント乗っ取りが怖い

WordPressで非常に怖いのが、管理者アカウントの乗っ取りです。
管理者権限を取られると、攻撃者は管理画面から多くの操作ができてしまいます。
たとえば、以下のような被害が起きます。

  • サイト内容の改ざん
  • 不正な管理者ユーザーの追加
  • マルウェア設置
  • SEOスパムページの作成
  • 海外サイトへのリダイレクト
  • テーマ・プラグインファイルへの不正コード挿入
  • 顧客情報や問い合わせ内容の流出

特に最近の脆弱性では、プラグインの穴を突かれて、攻撃者が勝手に管理者アカウントを作成できるケースもあります。
そのため、WordPressを更新しただけでは不十分です。アップデート後には、すでに不審な管理者ユーザーが作られていないか確認する必要があります。
確認すべき項目は以下です。

  • ユーザー一覧
  • 管理者権限を持つユーザー
  • 最近作成されたユーザー
  • 見覚えのないメールアドレス
  • 退職者アカウント
  • 共有アカウント
  • ログイン履歴

特に「admin」というユーザー名を使っている場合や、複数人で同じ管理者アカウントを共有している場合は注意が必要です。
WordPressの管理者権限は、サイトの鍵そのものです。鍵を何人もで使い回していたら、誰が開けたのか分からなくなります。

4. REST API / admin-ajax.phpの悪用

WordPressには、REST APIやadmin-ajax.phpという仕組みがあります。
これらはWordPressの機能やプラグインが動作するために使われる重要な仕組みです。存在自体が悪いわけではありません。
しかし、プラグイン側の実装が甘いと、情報漏えいや権限昇格につながることがあります。
よくある問題は以下です。

  • 本来見えないデータが取得できる
  • 低権限ユーザーが管理者向け処理を実行できる
  • nonce検証が不十分
  • 認証なしで設定変更できる
  • メールログや注文情報が見える
  • API経由で大量アクセスされる

特にメールログ系プラグインやフォーム系プラグインでは注意が必要です。

たとえば、メールログにパスワードリセットURLや問い合わせ内容が残っている場合、そのログが漏れるとサイト乗っ取りや個人情報漏えいにつながります。「メールログが見えるだけ」と思うかもしれません。しかし、そこに管理者のパスワード再設定URLが含まれていれば、泥棒に玄関の鍵をわたしているようなものです。

5. フォーム・会員登録系の穴

問い合わせフォームや会員登録機能も、WordPressでは非常に注意すべきポイントです。
フォームは外部からデータを受け取る入口です。そのため、入力チェックや権限管理が甘いと、さまざまな問題につながります。
代表的なリスクは以下です。

  • スパム送信
  • メール大量送信
  • 個人情報漏えい
  • 不正なユーザー登録
  • 管理者アカウント作成
  • SQLインジェクション
  • XSS
  • ファイル添付による不正ファイル設置

特に、フォーム送信内容をWordPressのDBに保存している場合は注意が必要です。
問い合わせフォームの内容には、名前、メールアドレス、電話番号、会社名、相談内容などが含まれます。場合によっては、かなりセンシティブな情報が入ることもあります。その情報をWordPress内に長期間保存していると、サイトが侵害された際にまとめて漏れる可能性があります。フォームは便利ですが、個人情報の受け皿でもあります。「ただの問い合わせフォーム」と軽く見てはいけません。

6. ファイルアップロード系は即死級

WordPressで特に危険度が高いのが、ファイルアップロード機能です。たとえば、以下のような機能がある場合は注意が必要です。

  • 問い合わせフォームの添付ファイル
  • 採用応募フォームの履歴書アップロード
  • 会員による画像投稿
  • ECの商品画像登録
  • 口コミ・レビュー投稿
  • 管理画面からのファイルアップロード

通常は画像やPDFをアップロードする機能ですが、チェックが甘いと危険なファイルをアップロードされる可能性があります。特に怖いのは、PHPファイルやWebシェルを設置されるケースです。以下のような不備があると危険です。

  • 拡張子だけで判定している
  • MIMEタイプを信用しすぎている
  • .php.jpg のような偽装を許す
  • アップロード先でPHPが実行できる
  • ファイル名をそのまま保存している
  • アップロード先が公開ディレクトリになっている

チェック対象としては、以下のディレクトリが重要です。

/wp-content/uploads/
/wp-content/cache/
/wp-content/plugins/
/wp-content/themes/

特に uploads 配下に .php ファイルがある場合は、強く疑ったほうがいいでしょう。
ファイルアップロードの穴は、サイト改ざんだけでなくサーバ全体の侵害につながることがあります。

7. 古いテーマ・購入テーマ・配布終了テーマ

テーマも重要な確認対象です。
WordPressのテーマは「見た目だけ」を担当しているように見えますが、実際には多くのPHPコードを含んでいます。
特に有料テーマや多機能テーマでは、以下のような機能を持っていることがあります。

  • 独自ショートコード
  • 独自ウィジェット
  • 独自カスタム投稿
  • スライダー機能
  • フォーム機能
  • Ajax処理
  • 画像アップロード
  • テーマ独自の管理画面
  • 付属プラグイン

テーマが古くなると、こうした機能に脆弱性が残る可能性があります。
また、親テーマを直接編集している場合、テーマ更新ができなくなることがあります。
よくある流れは以下です。

配布テーマを導入
→ テーマファイルを直接カスタマイズ
→ 更新すると壊れるため放置
→ 脆弱性が残る
→ 侵害リスクが高まる

テーマは便利な既製服のようなものです。多機能だと管理しきれず、内側に知らないUSBが縫い込まれたりします。中身を確認せずに使い続けるのは危険です。

8. AIプラグイン・チャットボット系も注意

最近は、WordPressにAIチャットボットやAIコンテンツ生成機能を導入するケースも増えています。AI系プラグインには便利な面がありますが、注意すべきリスクもあります。代表的なリスクは以下です。

  • APIキー漏えい
  • チャット履歴漏えい
  • 顧客情報を外部AIに送信
  • プロンプトインジェクション
  • 管理者向け操作との接続
  • 外部API連携の権限過多
  • 送信データの範囲が不明確

特に、問い合わせ内容や顧客情報をAIに渡している場合は注意が必要です。
AIプラグインが何を外部に送っているのか、どのAPIキーを使っているのか、チャット履歴が保存されているのかを確認する必要があります。

9. SEOスパム・リダイレクト改ざん

WordPressが侵害された場合、見た目は普通でも、検索エンジンや一部ユーザーだけに不正な表示をするケースがあります。
代表的な症状は以下です。

  • Google検索結果だけ変なタイトルになる
  • 検索結果に薬・カジノ・アダルト系のページが出る
  • スマホだけ別サイトへ飛ぶ
  • 海外IPだけリダイレクトされる
  • 管理者ログイン中は正常に見える
  • Googlebotにはスパムページを返す
  • 謎のページが大量生成される

このタイプの攻撃は、サイト所有者が気づきにくいのが厄介です。
自分でサイトを見ても正常に見えるため、Google検索結果やSearch Console、外部チェックツールを見て初めて気づくことがあります。

10. ログインまわりの基本対策

WordPressのログインまわりは、基本ですが非常に重要です。
危険な設定には以下があります。

  • 管理者IDが admin
  • パスワードが弱い
  • 2段階認証がない
  • ログイン試行制限がない
  • XML-RPCが開きっぱなし
  • 全員が管理者権限
  • 退職者アカウントが残っている
  • 共有IDで運用している

最低限行うべき対策は以下です。

  • 管理者は個別アカウントにする
  • 2段階認証を導入する
  • 強力なパスワードを使う
  • 不要ユーザーを削除する
  • 権限ロールを最小化する
  • ログイン試行制限を設定する
  • 退職者アカウントを削除する

ログインURLを隠す対策もありますが、それだけでは不十分です。
ログインURLの秘匿よりも、2段階認証や権限管理の方が重要です。

11. サーバ・PHP側の危険

WordPressだけを見ても、十分な診断にはなりません。
サーバ側の確認も必要です。
特に見るべき項目は以下です。

  • PHPバージョン
  • MySQL / MariaDBバージョン
  • SSL証明書
  • WAFの有無
  • ファイルパーミッション
  • wp-config.php の配置と権限
  • ディレクトリリスティング
  • バックアップ
  • ステージング環境
  • cron設定
  • エラーログ
  • アクセスログ
  • メール送信設定

古いPHPを使っているサイトは特に注意が必要です。
PHPが古いと、WordPress本体やプラグインを最新版にできない場合があります。
その結果、以下のような悪循環に入ります。

PHPが古い
→ WordPressやプラグインを更新できない
→ 脆弱性が残る
→ 危険なので触りづらい
→ さらに古くなる

これは無限の負の連鎖です。どこかで安全な移行計画を立てる必要があります。

12. バックアップ不備は復旧不能につながる

WordPressのセキュリティ対策では、攻撃を防ぐことばかりに目が行きがちです。
しかし、実際には「何か起きたときに復旧できるか」も同じくらい重要です。
バックアップがない場合、以下のような問題が起きます。

  • 改ざん前の状態に戻せない
  • 誤操作で消したデータを戻せない
  • 更新失敗から復旧できない
  • マルウェア感染前の状態が分からない
  • サーバ障害時に復旧できない
  • 事業停止期間が長くなる

バックアップでは、以下を確認すべきです。

  • ファイル一式を保存しているか
  • データベースを保存しているか
  • 保存頻度は適切か
  • 保存先はサーバ外か
  • 復元テストをしているか
  • 何世代分残しているか
  • 個人情報を含むバックアップの管理は適切か

バックアップは、取っているだけでは不十分です。復元できて初めて意味があります。
「バックアップあります」と言っていても、いざ復元できなければ、それはお守りではなく紙切れです。

WordPressのセキュリティリスクまとめ

WordPressの危険性は、CVEだけでは判断できません。もちろん、WordPress本体やプラグイン、テーマの脆弱性情報を追うことは重要です。
しかし、実際のトラブルは、運用・設定・権限・サーバ・バックアップの不備と組み合わさって起きることが多くあります。
WordPressの安全対策は、ひとつの機能を入れて終わりではありません。サイト全体を見て、危険な入口を減らし、復旧できる体制を整えることが大切です。