WordPress脆弱性対策の完全ガイド【プラグイン・テーマ・本体の弱点を今日から塞ぐ方法】

WordPress脆弱性対策を表すアイキャッチ画像。更新、スキャン、ファイアウォール、バックアップでサイトを守るイラスト。

「WordPressのプラグインに脆弱性があると聴いたけど、自分のサイトは大丈夫?」「脆弱性対策って何をすればいいの?」と不安に感じていませんか?

脆弱性(セキュリティホール)は、WordPressのプラグイン・テーマ・本体のプログラムに潜む「弱点」です。攻撃者はこの弱点を突いてサイトに侵入し、改ざん・情報漏洎・マルウェア感染を引き起こします。脆弱性対策はWordPressサイト運営の基本中の基本です。

この記事では、脆弱性の仕組みから、今日からできる具体的な対策まで、順番にわかりやすく解説します。

よこやま良平

ITエンジニアとして20年以上WordPressに携わってきたよこやま良平です。多数のサイト復旧を手がけてきたわたしが、脆弱性対策の要点を初心者でも実践できるよう丁寍に解説します。

この記事でわかること
  • WordPressの脆弱性とは何か・なぜ危険なのか
  • 脆弱性を狙った主な攻撃パターン
  • プラグイン・テーマ・本体の脆弱性対策
  • ログイン保護・ファイアウォールの設定方法
  • 脆弱性を自動監視する方法
  • 万が一に備えたバックアップ体制の作り方
目次

WordPressの脆弱性とは何か

脆弱性(ぜいじゃくせい)とは、WordPressのプログラムコードに潜む「セキュリティ上の弱点」のことです。開発者が意図していなかった動作を引き起こすバグや設計ミスが原因で発生します。

脆弱性が発見されると、それを悪用した攻撃ツールが瞬くまに世界中に広まります。古いバージョンのプラグインを使い続けているサイトは、その攻撃の格好の標的になります。

脆弱性が生まれる主な原因
  • 入力値の検証不足:ユーザーが入力したデータを適切にチェックしないことで、悪意あるコードが実行される
  • 権限チェックの不備:管理者以外のユーザーが管理者権限の操作を実行できてしまう
  • 古いライブラリの使用:脆弱性が発見された古いライブラリをそのまま使い続けている
  • 開発者の放棄:プラグイン・テーマの開発が止まり、発見された脆弱性が修正されない

脆弱性を狙った主な攻撃パターン

WordPressの脆弱性を狙った攻撃には、主に以下のパターンがあります。どのような攻撃が行われるかを知ることが、対策の第一歩です。

SQLインジェクション

入力フォームや検索欄などを通じて、データベースへの不正なSQL命令を埋め込む攻撃です。成功すると、データベース内のすべての情報(ユーザー情報・パスワード・記事データ)が漏洎・改ざんされる危険があります。

入力フォームから不正なSQLが実行される流れを示した説明図。
SQLインジェクション攻撃の仕組みを示した図

XSS(クロスサイトスクリプティング)

悪意あるJavaScriptコードをWebページに埋め込む攻撃です。サイトを訪問したユーザーのブラウザでそのコードが実行され、クッキーの盗用・フィッシングサイトへの誤導導・マルウェアの配布などが行われます。コメントフォームや問い合わせフォームを狙った攻撃が多く見られます。

CSRF(クロスサイトリクエストフォージェリ)

ログイン中のWordPress管理者を誘導して、意図しない操作(設定変更・ユーザー追加・投稿削除など)を実行させる攻撃です。管理者がログイン状態のまま悪意あるリンクをクリックするだけで被害を受けます。

ファイルインクルージョン・リモートコード実行

プラグインやテーマの脆弱性を利用して、サーバー上で任意のコード(PHPなど)を実行させる攻撃です。バックドア(隠し侵入口)の設置・マルウェアの配置・サーバーの完全乗っ取りにつながります。

脆弱性が悪用されると起きること
  • サイトが改ざんされ、スパムページや悪意あるコンテンツが表示される
  • 訪問者のデバイスにマルウェアが配布される
  • 顧客情報・個人情報が漏洎する
  • Googleのブラックリストに登録され、検索から排除される
  • サイトが別のサイトへのリダイレクトに使われる
  • スパムメールの送信踏み台にされる

WordPress本体・プラグイン・テーマを常に最新版にする

脆弱性対策で最も重要かつ効果的なのが、WordPress本体・プラグイン・テーマを常に最新版に保つことです。脆弱性が発見されると、開発者は修正したアップデートをリリースします。古いバージョンを使い続けることは、鍵のかかっていない扇を放置するのと同じです。

WordPress本体のアップデート

WordPress本体のアップデート手順
  1. 管理画面 →「ダッシュボード」→「更新」を開く
  2. 「WordPressX.X.Xへ更新」ボタンが表示されていればクリックする
  3. 更新完了後、サイトが正常に動作しているか確認する
WordPress管理画面の更新ページで本体アップデートを確認しているスクリーンショット。
WordPress本体の更新画面

マイナーバージョンアップ(例:6.5.1→6.5.2)はセキュリティ修正が主です。通知が来たらできるだけ早く適用しましょう。メジャーバージョンアップ(例:6.5→6.6)はバックアップを取ってから行うことをおすすめします。

プラグインのアップデート

プラグインアップデートの手順
  1. 管理画面 →「ダッシュボード」→「更新」→「プラグイン」タブを開く
  2. 更新可能なプラグインに「すべて選択」でチェックを入れる
  3. 「プラグインを更新」をクリックする
  4. 更新完了後、サイトの動作を確認する
WordPress更新画面でプラグイン更新一覧を確認しているスクリーンショット。
プラグイン更新一覧の画面

使っていないプラグイン・テーマを削除する

「無効化しているから大丈夫」と思いがちですが、無効化しているだけではファイルがサーバーに残っており、脆弱性が放置されています。使っていないプラグイン・テーマは「削除」してください。

削除すべきプラグイン・テーマの見極め方
  • 現在使っていない(無効化している)プラグイン・テーマ
  • 最終更新から2年以上経過しているプラグイン
  • WordPress.orgから削除されたプラグイン(公式ディレクトリから入手できなくなったもの)
  • WordPressの現在のバージョンとの互換性が確認されていないプラグイン
WordPressプラグイン一覧で更新状況や互換性を確認しているスクリーンショット。
プラグイン一覧で互換性や更新状況を確認する画面

脆弱性を自動検出・監視する方法

インストールしているプラグイン・テーマが脆弱性を抱えているかどうかを、手動で常にチェックするのは現実的ではありません。自動で監視してくれるツールを使いましょう。

Patchstackで脆弱性を自動監視する

Patchstackは、インストール済みのプラグイン・テーマ・WordPress本体に既知の脆弱性が見つかった場合に、メールでアラートを送ってくれる無料のセキュリティプラグインです。

Patchstackの主なメリット
  • 脆弱性データベースとの自動照合(プラグイン・テーマ・本体)
  • 新しい脆弱性が発見されると即時メール通知
  • 深刻度(Critical・High・Medium・Low)と修正バージョンがわかる
  • 無料版でも1サイトの脆弱性監視が可能

Wordfenceのスキャンでマルウェアも検出する

Wordfenceは、脆弱性の監視に加えてマルウェアのスキャン・ファイルの改ざん検出も行える多機能セキュリティプラグインです。無料版でも基本的なスキャンが使えます。

Wordfenceのスキャン画面でセキュリティ状態を確認しているスクリーンショット。
Wordfenceのスキャン結果画面

ログイン保護で不正アクセスを防ぐ

脆弱性対策はアップデートだけではありません。ログイン画面への不正アクセスを防ぐことも同じくらい重要です。

ログインページURLを変更する

WordPressのデフォルトのログインページURL(/wp-login.php・/wp-admin/)は攻撃者に知られています。SiteGuardプラグインを使って変更することで、ブルートフォース攻撃のリスクを大幅に下げられます。

SiteGuardでログインURLを変更する手順
  1. 「SiteGuard WP Plugin」をインストール・有効化する
  2. 管理画面 →「SiteGuard」→「ログインページ変更」を開く
  3. 「ログインページ変更」をオンにする
  4. 新しいログインページ名(例:login-12345)を設定して「変更を保存」をクリックする
  5. 新しいログインURL(例:https://あなたのサイト/login-12345)をブックマークする
SiteGuardのログインページ変更設定画面のスクリーンショット。
SiteGuardのログインページ変更設定画面

ログイン失敗回数を制限する

ブルートフォース攻撃(パスワードの総当たり攻撃)を防ぐために、ログインの失敗回数を制限します。SiteGuardやWordfence、Limit Login Attempts Reloadedなどで設定できます。

SiteGuardのログインロック設定画面で失敗回数や時間を確認しているスクリーンショット。
SiteGuardのログインロック設定画面

二段階認証を設定する

パスワードが漏洎しても不正ログインを防ぐ最強の対策が二段階認証(2FA)です。認証アプリ(Google Authenticatorなど)を使ったTOTP方式は、Solid SecurityまたはWordfenceの無料版から設定できます。

Wordfenceのログインセキュリティ画面で二要素認証を設定しているスクリーンショット。
Wordfenceの二要素認証設定画面

管理者アカウントID「admin」を使わない

WordPressのデフォルト管理者ユーザー名「admin」は攻撃者が最初に試すIDです。インストール時に「admin」以外のユーザー名を設定するか、すでに「admin」を使っている場合は別のユーザーを管理者として追加し、「admin」アカウントを削除してください。

「admin」から別の管理者アカウントへ変更する手順
  1. 「ユーザー」→「新規ユーザーを追加」から新しいメールアドレスで管理者ユーザーを作成する
  2. 新しいユーザーでログインし直す
  3. 「ユーザー」一覧から「admin」ユーザーを削除する(投稿は新しいユーザーに帰属させる)

ファイアウォールとマルウェアスキャンを導入する

アップデートやログイン保護だけでは防ぎきれない攻撃に対して、ファイアウォール(WAF)とマルウェアスキャンが最後の砂とになります。

Wordfenceでファイアウォールを有効にする

Wordfenceのファイアウォール(WAF)はSQLインジェクション・XSS・ファイルインクルージョンなどの攻撃パターンをリアルタイムでブロックします。無料版でも基本的なファイアウォール機能が使えます。

Wordfenceファイアウォールの有効化手順
  1. 「Wordfence」→「Firewall(ファイアウォール)」を開く
  2. 「Firewall Status(ファイアウォール状態)」が「Enabled and Protecting(有効・保護中)」になっているか確認する
  3. 「Optimize the Wordfence Firewall(ファイアウォールを最適化)」をクリックして拡張保護モードに設定する
Wordfenceファイアウォール設定画面で保護状態を確認しているスクリーンショット。
Wordfenceファイアウォール設定画面

wp-config.phpとファイルパーミッションを保護する

wp-config.phpはWordPressの最も重要な設定ファイルで、データベースの接続情報が書かれています。このファイルが外部から読み取られると、サイト全体が危険にさらされます。

wp-config.phpへのアクセスを制限する

.htaccessに以下のコードを追加することで、wp-config.phpへの外部からの直接アクセスをブロックできます。

# wp-config.phpへのアクセスを拒否
order allow,deny
deny from all
FTPクライアントで.htaccessファイルを開き、セキュリティ設定を追記している説明用スクリーンショット。
FTPで.htaccessを編集する画面

ファイルパーミッションを正しく設定する

WordPressのファイルとフォルダに適切なパーミッションを設定することで、不正なファイルの書き込みや実行を防げます。

WordPressの推奨パーミッション設定
  • wp-config.php:400または600(オーナーのみ読み取り)
  • .htaccess:644(オーナーが読み書き、グループ・その他は読み取りのみ)
  • WordPressファイル全般:644
  • WordPressフォルダ全般:755
  • wp-content/uploadsフォルダ:755(PHPファイルの実行は.htaccessでブロック)

XMLRPCを適切に設定する

XMLRPC(xmlrpc.php)はWordPressの外部連携機能ですが、ブルートフォース攻撃の標的になりやすい脆弱なエンドポイントでもあります。Jetpackなど一部のプラグインはXMLRPCを必要としますが、使っていない場合は無効化または制限してください。

XMLRPCの無効化方法
  • SiteGuardの場合:「XMLRPC無効化」または「XMLRPC多重ログイン防止」を選択する
  • .htaccessの場合:以下のコードを追加してxmlrpc.phpへのアクセスをブロックする
# XMLRPC無効化
order deny,allow
deny from all
注意:Jetpack使用時はXMLRPCを完全に無効化しない

JetpackはXMLRPCを使用しています。XMLRPCを完全に無効化するとJetpackが動作しなくなります。SiteGuardを使っている場合は「XMLRPC無効化」ではなく「XMLRPC多重ログイン防止」を選択してください。

SSLを導入してHTTPS通信を必須にする

SSLは通信を暗号化する技術です。SSL(HTTPS)が設定されていないサイトでは、ログイン情報やフォームの入力内容が平文で送受信され、傍受される可能性があります。現在は多くのレンタルサーバーが無料のSSL証明書を提供しています。

HTTPS化の確認手順
  1. サイトのURLが「https://」で始まっているか確認する
  2. ブラウザのアドレスバーに鍵マーク(🔒)が表示されているか確認する
  3. レンタルサーバーのコントロールパネルから無料SSL(Let’s Encrypt)を有効化する
  4. WordPressの管理画面「設定」→「一般」でサイトURLとWordPress URLを「https://」に変更する
ブラウザのアドレスバーに鍵マークとhttpsが表示されている説明用スクリーンショット。
HTTPSと鍵マークを確認する画面

定期バックアップで万が一に備える

どれだけ対策を施しても、100%安全なWebサイトは存在しません。万が一の侵害に備えて、定期的なバックアップは必須です。バックアップがあれば、感染前の状態に素早く復旧できます。

UpdraftPlusでの定期バックアップ設定
  1. 「UpdraftPlus」プラグインをインストール・有効化する
  2. 「設定」→「UpdraftPlus バックアップ」→「設定」タブを開く
  3. ファイルのバックアップ頻度を「毎週」に設定する
  4. データベースのバックアップ頻度を「毎日」に設定する
  5. バックアップの保存先をGoogle ドライブまたはDropboxに設定する(サーバー外への保存が重要)
UpdraftPlusの設定画面でバックアップ頻度と保存先を確認しているスクリーンショット。
UpdraftPlusのバックアップ設定画面

脆弱性対策チェックリスト

ここまで紹介した対策をチェックリストにまとめました。一つずつ確認して、対策が漏れていないか確認してください。

WordPress脆弱性対策チェックリスト
  • WordPress本体を最新版にアップデートしている
  • すべてのプラグインとテーマを最新版にアップデートしている
  • 使っていないプラグインとテーマを削除している
  • Patchstackで脆弱性の自動監視を設定している
  • ログインページURLを変更している
  • ログイン失敗回数を制限している
  • 二段階認証を設定している
  • 管理者ユーザー名に「admin」を使っていない
  • Wordfenceのファイアウォールを有効にしている
  • wp-config.phpへのアクセスを.htaccessで制限している
  • XMLRPCを適切に制限・無効化している
  • HTTPS(SSL)が正しく設定されている
  • UpdraftPlusなどで定期バックアップを設定している
脆弱性のあるプラグインを使い続けるとどうなりますか?

脆弱性が公開されると、自動化されたツールが世界中のWordPressサイトを無差別にスキャンして攻撃を試みます。脆弱性のあるプラグインを使い続けると、サイトの改ざん・マルウェア感染・不正ログイン・情報漏洎などの被害を受ける可能性が高まります。脆弱性が報告されたプラグインは、修正バージョンへの更新または一時的な無効化を速やかに行ってください。

プラグインを多く入れるほど脆弱性のリスクが高まりますか?

はい、インストールするプラグインの数が多いほど、脆弱性が含まれるリスクは比例して高まります。各プラグインがアップデートされるたびに脆弱性が発見・修正されますが、更新を忘れると脆弱なプラグインがサイトに残り続けます。本当に必要なプラグインだけを厳選して使い、使わないプラグインは削除することをおすすめします。

WordPressのバージョンを最新にしたのに攻撃されました。なぜですか?

WordPress本体の更新だけでは不十分です。攻撃の多くはプラグインやテーマの脆弱性を狙っています。WordPress本体のセキュリティは非常に高いですが、プラグインとテーマはサードパーティが開発しており、品質にばらつきがあります。本体・プラグイン・テーマの三つをすべて最新に保ち、不要なプラグインを削除することが重要です。

有料テーマや無効化された(Null化)プラグインは安全ですか?

無効化(Null化)されたテーマやプラグインは非常に危険です。有料プラグイン・テーマのライセンスを無効化して無料で配布している非公式サイトが存在しますが、そのほとんどにバックドアやマルウェアが仕込まれています。絶対に使用しないでください。必ず公式サイトまたはWordPress.orgから入手してください。

WordPress脆弱性対策まとめ

WordPress脆弱性対策の基本は「更新・監視・アクセス制限・バックアップ」の4つです。どれか一つが欠けても、攻撃者に狙われる隙が生まれます。

脆弱性対策の4本柱
  1. 更新:WordPress本体・プラグイン・テーマを常に最新に保ち、不要なものは削除する
  2. 監視:Patchstack・Wordfenceで脆弱性とマルウェアを自動監視する
  3. アクセス制限:ログインURL変更・失敗回数制限・二段階認証・ファイアウォールで攻撃をブロックする
  4. バックアップ:万が一の侵害に備えてサーバー外への定期バックアップを設定する

脆弱性対策は一度やれば終わりではありません。毎月のメンテナンスとして、更新確認・スキャン実行・バックアップ確認を習慣にしましょう。

ホームページの乗っ取りが自分で解決できない時は

WordPress修復マルウェア駆除トラブル専門「クイックレスキュー」

ホームページの乗っ取り・マルウェア感染・不正アクセスでお困りなら、
クイックレスキューが解決します。

こんなお悩みはありませんか?
  • ホームページが乗っ取られた・改ざんされた
  • 管理画面にログインできなくなった
  • 変なサイトにリダイレクトされている
  • Googleに危険なサイトと表示されている
  • 自分で復旧しようとしたが直らない
  • WordPressを復旧・修正したい

こんなお悩みなら最短30分ですぐに解決します!
いまなら期間限定で3つの安心保証

3つの安心保証
  • 万一復旧できない場合やマルウェア駆除できない場合は全額返金保証で安心
  • 90日間再感染保証・動作保証で安心
  • 初期費用・調査費用0円で安心

この記事を書いた専門家

こんにちは!20年以上ITエンジニアとして活動してきた
よこやま良平です。

Wordpress復旧やサイト修復、オンライン講座では
776件以上のレビューを頂いており

「すぐに復旧してくれる!」
「当日行ってくれて助かった!」など

評価は4.9/5.0と非常に高く好評です。

またWordPress、SEO、Officeなど30冊以上の書籍を出版しており、
売上ランキング1位を連続で獲得致しました。

その他これまでに3000以上のサービス・システム・サイトを作成。

多くの方の「できない」や「悩み」を解決してきました。
その観点からわかりやすく解説しています。

目次