「最後にWordPressを更新したのはいつか、正直思い出せない」——自社サイトを運用する企業の担当者から、こうした声をよく聞きます。特に問題は起きていないので後回しにしてきたけれど、他社の改ざん被害のニュースを見るたびに、心のどこかで気になっている状態です。
この記事では、WordPressの脆弱性とは何か、放置するとどうなるかを整理したうえで、今日からできる自己診断の方法、そして本命となるセキュリティプラグインの選び方を具体的に解説します。プラグインだけでは防げない対策(多要素認証・ブルートフォース攻撃対策)まで含めて、自社でどこまで対応できるかの判断材料にしてください。
なお、ここで紹介する内容は、専門のセキュリティエンジニアでなくても実行できる範囲に絞っています。逆に言えば、ここに書かれていることをすべて実行しても不安が残る場合や、すでに被害の兆候がある場合は、自社だけで抱え込む段階を超えている可能性があります。その見極め方についても、最後の章で触れます。
WordPressの脆弱性とは何か
WordPressの脆弱性とは、WordPress本体・テーマ・プラグインのプログラムに存在する、セキュリティ上の欠陥や設計上の弱点のことです。攻撃者はこの弱点を悪用して、管理者権限を奪ったり、サイトに不正なコードを埋め込んだりします。
脆弱性そのものは、WordPressに限らずどんなソフトウェアにも一定数存在します。問題は、脆弱性が発見された後です。開発元が修正プログラム(アップデート)を配布しても、サイト側で適用しなければ弱点は残ったままになります。つまり「脆弱性がある」こと自体よりも、「見つかった脆弱性を放置している」ことの方が実際のリスクに直結します。
なぜWordPressは狙われやすいのか
WordPressは世界で最も多く使われているCMS(コンテンツ管理システム)で、稼働中のウェブサイトの6割前後を占めるとされています。攻撃者からすると、1つの脆弱性を見つければ、同じ仕組みを使っている非常に多くのサイトに攻撃を仕掛けられるということです。
さらに、WordPressは本体だけでなく、無数のプラグインやテーマを組み合わせて使う仕組みになっています。便利な反面、更新が止まったプラグインやテーマが脆弱性の入り口になるケースも少なくありません。実際に、WordPressサイトが攻撃を受けた事例の多くは、本体そのものではなく、古いまま放置されたプラグインが原因になっています。開発が止まって久しいプラグインを「動いているから」という理由で使い続けているサイトは、想像以上に多く存在します。
自社サイトがWordPressで作られているなら、この構造的な事情は避けて通れないと理解しておく必要があります。逆に言えば、狙われる理由が「WordPress特有の欠陥」ではなく「シェアの大きさ」と「更新の放置」にある以上、対策の方向性もはっきりしています。次の章から、実際にどんな被害が起きるのか、そして何を確認すればよいのかを順番に見ていきます。
放置するとどうなるか
脆弱性を放置した場合に実際に起きる被害は、主に次の4つです。
サイトの改ざん
トップページが書き換えられる、見えない場所にスパムリンクが大量に埋め込まれるといった被害です。埋め込まれたリンクに気づかないまま放置され、検索エンジンから「有害なサイト」と判定されるケースもあります。
管理者アカウントの乗っ取り
パスワードが単純だったり、ログインページの制限がなかったりすると、第三者に管理画面へ侵入され、コンテンツを自由に操作されてしまいます。乗っ取りに気づくまでに数週間かかることも珍しくありません。
マルウェアの設置と踏み台化
サイトのサーバーにマルウェアを仕込まれ、他サイトへの攻撃の中継地点(踏み台)として悪用されるケースです。この場合、自社が被害者であると同時に、意図せず加害者側にもなってしまいます。
検索エンジンからの警告表示
Googleがサイトの異常を検知すると、検索結果やブラウザ上に「このサイトは危険です」といった警告が表示されます。警告が出ている間はアクセスが大きく落ち込み、信用の回復にも時間がかかります。
こうした被害は、ある日突然起きるというより、放置してきた小さな隙間が積み重なった結果として表面化します。厄介なのは、改ざんの内容が巧妙な場合、担当者がサイトを見ても異変に気づけないケースがあることです。トップページは何も変わっていないのに、検索エンジンからの流入だけが目に見えて減っていく、といった形で被害が進行することもあります。気づいた時にはすでに数週間、数ヶ月が経過していた、という相談も珍しくありません。
次の章で、まず自分のサイトの現状を確認してみてください。
自己診断チェックリスト
専門知識がなくても、次の項目は自分で確認できます。1つでも当てはまる場合は、対策の優先度が高い状態です。
- WordPress本体の最終更新日を管理画面で確認していない(ダッシュボード > 更新) — 更新が半年以上前で止まっている場合、その間に見つかった脆弱性がすべて未対応の状態です
- 使っていないプラグイン・テーマが管理画面に残ったままになっている — 無効化していても、ファイル自体が残っていれば攻撃の対象になり得ます
- 管理者アカウントのパスワードが8文字以下、または単純な文字列である — 会社名や誕生日など推測しやすい文字列は、ブルートフォース攻撃で短時間に破られる可能性があります
- 管理者アカウント以外に、退職した担当者や制作会社のアカウントが残っている — 使われなくなったアカウントは、誰も異常に気づけない「見えない入口」になります
- ログインURLが初期設定の
/wp-login.phpのままである — 攻撃者が真っ先に試す場所であり、変更するだけで機械的な攻撃の多くを避けられます - ログイン試行回数の制限や、多要素認証を設定していない(多要素認証はあとで詳しく説明します) — 制限がなければ、パスワードを破られるまで何度でも試行され続けます
- セキュリティ専用のプラグインを導入していない — 不正アクセスの検知・ブロックを行う仕組みが何もない状態です
これらはすべて、次章以降で具体的な対策を説明する項目です。まずは自社サイトがどこに当てはまるかを把握することが、対策の出発点になります。
一度確認して終わりにせず、定期的に見直すことも重要です。担当者の異動や制作会社の切り替えがあったタイミングで、古いアカウントが残されたまま放置されるケースは特に多く見られます。半年に一度など、あらかじめ確認のタイミングを決めておくと、チェック漏れを防ぎやすくなります。
今日からできる基本対策:アップデートの習慣化
最も基本的で、かつ最も見落とされがちな対策が、WordPress本体・テーマ・プラグインを常に最新の状態に保つことです。更新の通知が来ているのに「動いているから」と後回しにしている状態は、修正済みの弱点をわざと残しているのと同じことになります。
ただし、アップデートには注意点もあります。特にWordPress本体のメジャーバージョンアップや、大きな機能追加を伴うプラグインの更新は、既存のテーマやほかのプラグインとの互換性が崩れ、サイトの表示が乱れることがあります。
安全にアップデートするための注意点
- 更新前に必ずサイト全体のバックアップを取得する
- 可能であれば、本番環境とは別のテスト環境で先に更新を試す
- マイナーアップデート(セキュリティ修正が中心)は早めに適用し、メジャーアップデートは内容を確認してから適用する
- 更新後は、トップページだけでなく問い合わせフォームや会員ページなど、主要な機能が正常に動くか確認する
自動更新の設定も可能ですが、企業サイトの場合はバックアップとセットで運用しないと、更新の失敗にすぐ気づけないリスクがあります。手間はかかりますが、この習慣化が最も費用対効果の高い対策です。
セキュリティプラグインの選び方と比較
アップデートだけではカバーしきれない、不正アクセスの検知やブロックを担うのがセキュリティプラグインです。WordPress用のセキュリティプラグインには多くの種類がありますが、企業サイトで検討されることが多い代表的なものを比較します。
| プラグイン名 | 主な機能 | 料金 | 日本語対応 |
|---|---|---|---|
| SiteGuard WP Plugin | ログイン試行回数制限、画像認証、管理ページURL変更、更新通知 | 無料 | 対応(国産プラグイン) |
| Wordfence Security | WAF(ファイアウォール)、マルウェアスキャン、ログイン保護 | 無料〜有料版あり | 一部対応 |
| All In One WP Security | 管理画面保護、ログイン制限、データベース保護、ファイアウォール | 無料 | 一部対応 |
| iThemes Security(Solid Security) | 多要素認証、ブルートフォース攻撃対策、パスワード強制、脆弱性検知 | 無料〜有料版あり | 非対応(英語) |
無料版と有料版の違い
紹介した4つのプラグインはいずれも無料で始められますが、多くは有料版(プレミアム版)も用意されています。無料版はログイン制限や基本的な管理画面保護でカバーできる範囲が中心で、まずはここから始めても十分に効果があります。一方、有料版ではリアルタイムでのマルウェアスキャン、既知の脆弱性データベースとの自動照合、より詳細な通知機能などが追加されることが一般的です。個人サイトであれば無料版で足りることが多いですが、顧客情報を扱う企業サイトでは、有料版への切り替えも選択肢として検討する価値があります。
選び方のポイント
- まず1つ入れるなら: 日本語で設定できるSiteGuard WP Pluginが分かりやすく、ログイン周りの対策を手早く固められます
- 不正アクセスの検知まで求めるなら: WordfenceのようなWAF機能付きのプラグインを検討します。ファイアウォールが、攻撃と思われる通信を実際にブロックしてくれます
- 複数の機能を1つにまとめたいなら: All In One WP Securityのように、管理画面保護からデータベース保護まで幅広くカバーするプラグインが向いています
注意したいのは、プラグインは「入れて終わり」ではないという点です。プラグイン自体も更新が必要なソフトウェアであり、放置すればプラグイン自体が新たな弱点になり得ます。また、複数のセキュリティプラグインを同時に入れると、機能が競合してサイトが正常に動かなくなることがあるため、基本的には1つに絞って運用するのが安全です。
導入時の基本的な流れ
- 現状の自己診断チェックリストをもとに、優先したい機能(ログイン制限か、ファイアウォールか)を決める
- プラグインを導入する前に、必ずサイト全体のバックアップを取得する
- インストール後、初期設定でログイン試行制限・管理ページURLの変更など、基本項目を有効にする
- 設定変更後にサイトの表示・ログイン・問い合わせフォームなどが正常に動作するか確認する
- 導入後も、プラグインからの通知(不正アクセスの検知など)を定期的に確認する体制を決めておく
導入した直後に安心してしまい、その後の通知を誰も見ていない、という状態になりがちです。誰が・いつ確認するのかを決めておくところまでが、プラグイン導入の一連の作業だと考えてください。
プラグインだけでは防げないこと
セキュリティプラグインは強力な対策ですが、それだけでは防ぎきれない攻撃もあります。特に押さえておきたいのが、多要素認証とブルートフォース攻撃への対応です。
多要素認証を設定する
多要素認証とは、ID・パスワードによる認証に加えて、スマートフォンの認証アプリやメールで送られる確認コードなど、もう1つの要素を組み合わせてログインを許可する仕組みです。仮にパスワードが漏れてしまっても、第二の認証要素がなければログインできないため、乗っ取りのリスクを大きく下げられます。
WordPress管理画面への多要素認証は、先ほど紹介したセキュリティプラグイン(iThemes Securityなど)や、多要素認証専用のプラグインを追加することで設定できます。設定自体は、スマートフォンに認証アプリ(Google Authenticatorなど)をインストールし、プラグインの画面に表示されるQRコードを読み取るだけで完了することが多く、専門知識がなくても数分あれば対応できます。
個人のブログであれば省略しても大きな問題にはなりにくいですが、複数の担当者が管理画面にログインする企業サイトでは、優先して導入したい対策です。特に、制作会社や外部の運用担当者にもログイン権限を渡している場合、自社のパスワード管理だけでは防ぎきれない部分を多要素認証が補ってくれます。
ブルートフォース攻撃への対策
ブルートフォース攻撃(総当たり攻撃)とは、考えられるパスワードの組み合わせを機械的に大量に試し続け、突破を試みる攻撃手法です。単純なパスワードほど短時間で破られてしまいます。攻撃は自動化されたプログラムによって24時間休みなく行われるため、担当者が気づかないうちに、大量のログイン試行が繰り返されていることも珍しくありません。回数の制限がなければ、攻撃者は時間をかけていつか突破できるまで試し続けられる状態になっているということです。
対策の基本は3つです。
- 推測されにくいパスワードにする: 16文字以上、英数字・記号を組み合わせたランダムな文字列にします
- ログイン試行回数を制限する: 一定回数ログインに失敗したIPアドレスを一時的にブロックします。SiteGuard WP Pluginなどのプラグインで設定できます
- ログインURLを変更する: 初期設定の
/wp-login.phpのままだと、攻撃者が真っ先に狙う場所になります。URLを独自のものに変更するだけで、機械的な攻撃の多くを回避できます
これらは特別な技術知識がなくても、プラグインの設定画面から対応できるものがほとんどです。ただし、「設定した記憶はあるが、今も有効か分からない」という状態も多いため、一度現状を棚卸しすることをおすすめします。
もし既に被害に遭っていたら
自己診断の結果、すでに改ざんや乗っ取りの兆候がある場合は、対策よりも復旧が優先です。
- バックアップから復旧する: 被害前の状態のバックアップがあれば、そこから復元するのが最も確実です
- すべてのパスワードを変更する: 管理者だけでなく、投稿者権限などすべてのアカウントのパスワードを変更します
- 不審なプラグイン・テーマ・ユーザーを確認する: 身に覚えのないプラグインやユーザーアカウントが追加されていないか確認します
- 検索エンジンの警告を確認する: Google Search Consoleに「セキュリティの問題」の通知が出ていないか確認し、原因を解消したうえで再審査をリクエストします
ここで注意したいのは、表面的にファイルを削除しただけでは、侵入経路そのものが塞がれておらず、再度被害に遭うケースが少なくないということです。原因を特定できないまま応急処置だけで終わらせると、同じことの繰り返しになります。
Google Search Consoleへの再審査リクエストも、原因を解消したことが確認できて初めて受理されます。「とりあえず表示だけ元に戻した」状態でリクエストを出しても、再度警告が出て振り出しに戻ることがあるため、焦らず順番に対応することが結果的に早い復旧につながります。
自社で対応できる範囲と限界
ここまでの内容は、専門知識がなくても実行できる範囲の対策です。一方で、次のような疑問や状況は、自社だけで判断するのが難しい領域に入ります。
Q. 更新をずっとしていないと、必ず被害に遭いますか?
必ず被害に遭うとは言い切れませんが、放置期間が長いほど、既知の脆弱性を突かれるリスクは積み上がっていきます。「今まで何も起きていないから大丈夫」という状態は、単に狙われていなかっただけの可能性があります。
Q. 乗っ取られた場合、どこまで被害が広がりますか?
サイトの改ざんだけでなく、フォームに入力された顧客情報が抜き取られる、サーバー内の別のサイトにまで被害が及ぶなど、範囲は状況によって大きく異なります。被害の全容を正確に把握するには、ログの解析など専門的な調査が必要になることもあります。
Q. プラグインを入れれば、もう安心ですか?
プラグインは対策の入り口であり、万能ではありません。サーバー側の設定、コードの品質、運用体制まで含めた総合的な対策が本来は必要です。
Q. レンタルサーバー側のセキュリティ対策と、プラグインでの対策は何が違いますか?
レンタルサーバー側の対策は、サーバー全体を守るための共通の仕組み(通信の暗号化や、サーバー単位でのファイアウォールなど)が中心です。一方、WordPressのセキュリティプラグインは、ログイン画面や管理画面など、サイトの中身に踏み込んだ対策を担います。どちらか一方で十分ということはなく、両方が揃ってはじめて対策として機能します。
Q. 制作会社に保守を依頼していれば、セキュリティ対策も任せられていますか?
契約内容によって大きく異なります。「更新作業のみ」の契約なのか、「セキュリティ監視や不正アクセスの検知まで含む」契約なのかは、会社によって定義が違います。不安な場合は、現在の保守契約書にセキュリティ関連の項目が明記されているか、一度確認してみることをおすすめします。
自己診断で不安な項目が多かった場合や、すでに被害の兆候がある場合は、無理に自社だけで抱え込まず、早めに専門家へ相談することをおすすめします。
保守運用を専門家に任せるという選択肢
セキュリティ対策は、一度設定して終わりではなく、継続的な監視と更新が必要な領域です。日々の業務と兼務しながらすべてを把握し続けるのは、担当者にとって大きな負担になります。
RINIAでは、WordPress本体・プラグインの更新対応、セキュリティ監視、バックアップ体制の構築まで含めた保守運用サービスを提供しています。「何から手をつければいいか分からない」「自己診断してみたら不安な項目が多かった」という段階でも、現状の確認からご相談いただけます。制作を依頼した会社と保守運用を依頼する会社が別でも問題ありません。まずは現状のサイトを確認するところから始められます。
まとめ
WordPressの脆弱性は、放置期間が長くなるほどリスクが積み重なっていきます。まずは自社サイトの状態を自己診断し、アップデートの習慣化とセキュリティプラグインの導入という基本を固めることが第一歩です。そのうえで、多要素認証やブルートフォース攻撃対策など、プラグインだけでは補いきれない部分まで手が回っていない場合は、専門家への相談も選択肢に入れて検討してください。
一度に完璧な対策を目指す必要はありません。今日、この記事の自己診断チェックリストを1つずつ確認するところから始めれば、それだけでも十分な前進です。