WordPressは手軽にWebサイトやブログを構築できる便利なCMSですが、その人気の高さから常にサイバー攻撃の標的になりやすい特徴があります。
「WordPressはセキュリティが弱いと聞いて不安」「Webサイトを立ち上げたが、何から対策すればいいかわからない」といったお悩みを抱えるWeb担当者やサイト管理者の方へ。帆の記事では、WordPressサイトを安全に運営するためのセキュリティ対策や、その重要性から具体的な設定方法、万が一の際の対処法までを網羅的に解説します。
この記事を読めば、ご自身のサイトのセキュリティレベルを正しく把握し、適切な対策を講じることができます。不正アクセスやサイト改ざんといった脅威から、大切な資産であるWebサイトを守りましょう。
\BtoBサイトリニューアルで陥りがちな失敗って?/
Table of Contents
WordPressとは、プログラミング知識がなくてもブログやWebサイトを作成・管理でき、世界中で広く利用されているオープンソースのコンテンツ管理システム(CMS)です。基本的に無料で使用でき、拡張性が高いことから多くの企業や個人に利用されています。
しかし、その人気の高さゆえに常にサイバー攻撃の脅威に晒されています。不正アクセスや情報漏洩といった深刻な被害につながる恐れがあるため、WordPressのセキュリティ対策は欠かせません。
まずは、なぜWordPressが攻撃の対象となりやすいのか、そして攻撃によるリスクについて理解しておきましょう。
もしWordPressサイトがサイバー攻撃を受けると、具体的には以下のような深刻な影響が出る恐れがあります。
攻撃の内容 | 想定される影響 | ビジネス上のリスク |
---|---|---|
Webサイトの改ざん | デザインや内容を書き換えられる、意図しない広告・不適切なコンテンツを表示される | ・ブランドイメージの毀損 ・顧客離れ |
情報漏えい | 氏名・住所・クレジットカード情報などの流出 | ・金銭的損害 ・信頼喪失 ・賠償問題 |
マルウェアの拡散 | サイト訪問者の端末がウイルス感染、攻撃の踏み台に利用される | ・顧客や取引先への被害拡大 ・自社の信用失墜 |
検索結果からの除外 | Googleなどに危険サイトと判断され、検索結果への警告表示やインデックス削除が行われる | ・アクセス激減 ・集客 ・売上への打撃 |
サーバーの停止 | DDoS攻撃などで過負荷が発生し、サイトが閲覧不能になる | ・機会損失 ・業務停止による損害 |
このように、WordPressサイトが一度でも攻撃を受ければ、直接的な被害だけでなく顧客との信頼関係やビジネス継続性にまで深刻な影響が及びます。
そのため、日常的にWordPressセキュリティ対策を講じることは、サイト運営において欠かせない取り組みと言えるでしょう。
効果的なセキュリティ対策を講じるためには、まず「どこに危険が潜んでいるのか」を正しく理解することが欠かせません。WordPress自体は信頼性の高いシステムですが、運用方法や追加機能によって脆弱性が生じるケースがあります。
ここでは、脆弱性の要因となる代表的な例を解説します。
WordPressの脆弱性で最も多いのが、プラグインやテーマに起因するものです。WordPress本体は世界中の優秀な開発者によって常にセキュリティが強化されていますが、数万種類以上存在するプラグインやテーマは品質にばらつきがあり、開発者のスキルや管理体制もさまざまです。
そのため、プラグインやテーマには脆弱性が生じやすく、サイト全体のリスク要因となるケースが少なくありません。代表的な要因としては以下のようなものが挙げられます。
長期間アップデートされていないプラグインやテーマは、新たに報告された脆弱性が修正されず放置されている可能性があります。攻撃者はそうした脆弱性を狙って攻撃を仕掛けるため、更新されていないソフトウェアは格好の標的です。
利用していないプラグインやテーマは早めに削除し、脆弱性への対応が続いているものを採用すると良いでしょう。
開発者のスキル不足やチェック体制の不十分さによって、コードにセキュリティ上の欠陥が含まれている場合があります。こうした脆弱性は外部からの侵入や不正な操作につながりやすく、サイト全体を危険に晒します。
特に無料で配布されているテーマや、不明な配布元のプラグインは注意が必要です。
利用していないプラグインやテーマを「無効化」しても、サーバー上にファイルが残っていれば攻撃の入口として悪用される恐れがあります。
完全に不要なものは削除し、Webサイト環境をできるだけシンプルに保つことがセキュリティ強化につながります。
WordPressの脆弱性はシステム上のものだけではなく、管理する「人」の意識不足によっても発生します。代表的な例としては以下が挙げられます。
「123456」や「password」など推測されやすいパスワードは、総当たり攻撃や辞書攻撃で簡単に突破されてしまいます。特に管理者アカウントのパスワードが弱いと、サイト全体を乗っ取られる可能性も高まります。
パスワードを設定する際は、英数字や大文字小文字、記号を組み合わせた強力なパスワードを設定し、定期的に変更する習慣を持つことが大切です。
複数人でサイトを運用する際に、全員に管理者権限を与えるのは非常に危険です。ひとつのアカウントが乗っ取られただけで、サイト全体の操作やデータ改ざんが可能になります。
必要最低限の権限を付与する「最小権限の原則」を徹底することで、リスクを大幅に減らすことができます。
WordPress本体やプラグインには、セキュリティ修正を含むアップデートが頻繁に配信されています。これらのアップデートを怠ると既知の脆弱性が残り、攻撃者に悪用される可能性が高まります。
そのため、更新通知が届いたら速やかに対応し、サイトの安全性を常に最新の状態に保つことが大切です。
WordPressで安全にサイトを運営するためには、日常的なセキュリティ対策が欠かせません。脆弱性を突いた攻撃は、少しの油断や初歩的な設定ミスからでも被害につながることがあります。
ここでは、WordPressサイトを運用する上で必ず実施すべき基本的なセキュリティ対策を15項目にまとめました。専門知識がなくても対応可能なため、運用するWebサイトが対策済みかひとつずつ確認してみてください。
定期的なアップデートは、最も基本的かつ重要な対策です。WordPress本体やプラグイン、テーマに脆弱性が発見されると、開発者から修正プログラムを含む更新版(アップデート)が提供されます。これを放置するのは、家の鍵をかけずに外出するのと同じくらい危険です。
管理画面に更新通知が表示されたら内容を確認し、速やかにアップデートを実施しましょう。ただし、アップデートによっては稀に表示崩れなどの不具合が起きる可能性があるため、必ず事前にバックアップを取得してから実施してください。
現在使用していないプラグインやテーマは、「無効化」するだけでなく、完全に「削除」しましょう。無効化しているだけではサーバー上にファイルが残り続けるため、その脆弱性を突かれる可能性があります。
定期的にインストール済みのプラグインやテーマを見直し、不要なものは整理する習慣をつけましょう。
初期状態のログイン画面URL「ドメイン名/wp-login.php」や「ドメイン名/wp-admin/」は、広く知られるURLです。このようなURLに対して、攻撃者は自動化プログラムを使って簡単にログイン画面に到達し、攻撃を仕掛けてきます。
ログインURLを推測されにくい独自の文字列に変更することで、こうした攻撃を大幅に減らすことができます。「WPS Hide Login」というプラグインを使用すれば、簡単で安全にログイン画面のURLを変更できるのでおすすめです。
ログイン画面に画像認証を設置すると、プログラムによる自動的なログイン試行のブルートフォース攻撃を防げます。「私はロボットではありません」のチェックボックスや、画像洗濯、歪んだ文字の読み取りなどの仕組みを加えることで、効果的にセキュリティ対策を強化可能です。
これらを実装するプラグインとしては、「SiteGuard WP Plugin」や「All In One WP Security & Firewall」がおすすめです。
ブルートフォース攻撃への対策として、一定回数以上ログインに失敗したIPアドレスからのアクセスを、一定時間ブロックする機能も有効です。例えば「5分以内に3回ログインに失敗したら、1時間アクセスを禁止する」といった設定により、総当たり攻撃のリスクを減らせます。
このような機能を実装するためには、「SiteGuard WP Plugin」や「All In One WP Security & Firewall」といったプラグインがおすすめです。
WordPressのログイン画面の前に、さらにもう一段階の認証(Basic認証)を設けることで、二重のセキュリティを構築できます。サーバー側の設定が必要ですが、非常に効果的な対策です。レンタルサーバーによっては、管理パネルから簡単に設定できる場合もあります。
手動で設定する場合は、以下の流れで設定してください。
▼「Basic認証」設定の流れ
<files wp-login.php>
AuthType Basic
AuthName "Login"
AuthUserFile /path/to/.htpasswd (※1)
require valid-user
</files>
※1:/path/to/.htpasswd の部分は.htpasswdファイルの絶対パスを指定する
※2:ファイル内に[ユーザーID]:[暗号化されたパスワード]の形式でユーザーIDとパスワードの組を記述する
オフィスなど、特定の場所からのみWordPressにログインしたい場合は、そのIPアドレスからのみログイン画面にアクセスできるように制限すると、セキュリティが格段に強化されます。
▼「IPアドレス制限」設定の流れ
<files wp-login.php>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</files>
WordPress 4.7から標準搭載されたREST APIは、外部のアプリケーションとWordPressのデータを連携させるための便利な機能です。しかし、設定次第ではユーザー情報などが外部から閲覧されるリスクがあります。特に利用していない場合は、第三者からの外部アクセスを制限し、思わぬ情報漏えいを防ぎましょう。
REST APIを制限するには、「Disable REST API」というプラグインがおすすめです。
XML-RPCは、スマートフォンアプリなどから記事を投稿するために使われていた古い機能です。現在ではREST APIが主流となっているため、XML-RPCはブルートフォース攻撃やDDoS攻撃の踏み台として悪用される傾向が多く見られます。利用していない場合は、以下の手順で無効化しておくのが安全です。
▼ XML-RPC機能の無効化方法
<Files xmlrpc.php>
Order deny,allow
Deny from all
</Files>
「会社名」「123456」「password」のような単純なパスワードは攻撃者に即座に突破されるため、推測されやすいパスワードは絶対に使用しないでください。以下の要素を組み合わせて、長く複雑なパスワードを作成しましょう。
安全な管理のためには、パスワード管理ツールなどの利用も効果的です。
複数人でサイトを管理する場合、全員に「管理者」権限を与えるのは危険です。記事の投稿者や編集者など役割に応じた最小限の権限を割り当てることで、万が一アカウントが乗っ取られた際の被害を最小限に抑えることができます。
WordPressのユーザー権限は以下の5つです。
管理者 | サイトの全設定を変更できる最高権限 |
編集者 | すべての投稿を公開・管理できる |
投稿者 | 自分の投稿のみを管理できる |
寄稿者 | 投稿を作成できるが、公開できない |
購読者 | プロフィールの編集のみ可能 |
2013~2014年頃にインストールされた古いWordPressでは、管理者ユーザー名がデフォルトで「admin」に設定されています。これは攻撃者にも知られているため、真っ先に攻撃の標的となります。
もし現在も「admin」を使用している場合は、新しい管理者アカウントを作成し、データを移行した上で「admin」アカウントは削除しましょう。
wp-config.phpは、データベースの接続情報など、WordPressの最も重要な情報が記載されたファイルです。このファイルが外部から閲覧されると、Webサイトを乗っ取られる危険性が非常に高まります。以下の方法で外部からのアクセスを拒否設定に変更し、不正利用を防ぎましょう。
▼ wp-config.phpファイルへのアクセス制限方法
<files wp-order allow,deny
deny from all
</files>
サーバーの設定によっては、index.htmlやindex.phpファイルが存在しないディレクトリにアクセスすると、中のファイル一覧が表示されてしまうことがあります。これによりサイトの構造が攻撃者に知られてしまうため、無効化しておきましょう。無効の設定は、.htaccessファイルに「Options -Indexes」の1行を追記するだけです。
WAFとは、Webアプリケーションの脆弱性を狙った攻撃を検知し、防御する仕組みです。代表的なものに、データベースを不正操作するSQLインジェクションや、悪意のあるスクリプトを仕込むクロスサイトスクリプティング(XSS)などが挙げられます。これらの攻撃はWordPressサイトに深刻な被害を与える恐れがあるため、WAFの導入は非常に効果的です。
なお、多くのレンタルサーバーでは、標準機能や有料オプションとしてWAFが提供されています。サイト側のセキュリティ設定とあわせてWAFを利用すれば、複数の防御層を築くことができ、より堅牢なセキュリティ体制を実現可能です。
まずは利用しているサーバーの管理パネルを確認し、WAFを必ず有効にしておきましょう。
これまで紹介した対策の多くは、セキュリティプラグインを導入することで簡単に実装できます。
ここでは多機能かつ評価の高い、定番のセキュリティプラグインを5つ紹介します。
SiteGuard WP Pluginは、無料で使える純国産の非常に人気が高いプラグインです。ブルートフォース攻撃への対策をはじめ、ログインURLの変更や、画像認証(CAPTCHA)、ログインロック、WAF機能など、基本的なセキュリティ対策を網羅しています。日本語で設定が分かりやすいのも魅力です。
All In One WP Security & Firewallは、WordPressをさまざまな危険から守ってくれる非常に多機能なオールインワンタイプのプラグインです。ユーザーアカウントの保護、ログインセキュリティ、ファイルシステム保護、ファイアウォール機能などを備えています。セキュリティ強度をメーターで可視化してくれるため、対策状況が分かりやすいのが特徴です。
なお、All In One WP Security & Firewallには自動更新機能が備わっています。自動更新を有効化しておくと、運営元が日々プラグインのアップデートを行うため、脆弱性を最小限に抑えることが可能です。
WPS Hide Loginは、WordPressのログインURLの変更に特化したシンプルなプラグインです。コアファイルの書き換えなしに安全にログインURLをカスタマイズできます。他の多機能プラグインと併用したい場合や、URL変更だけを行いたい場合におすすめです。
UpdraftPlusは、WordPressのデータベースやプラグイン、テーマなど「wp-content」フォルダに格納されているデータのバックアップを簡単に取得できるプラグインです。スケジュール設定による自動バックアップや、Google Drive、Dropboxなどの外部ストレージへの連携もできます。
Sucuri Securityは、マルウェアスキャンやファイル変更監視、セキュリティ強化、攻撃後の対応支援など、幅広い機能を持つプラグインです。無料版でも強力なスキャン機能を利用できます。
また、有料プランではクラウド型WAFやリアルタイム監視も提供されるため、総合的なセキュリティ保護を目指すWebサイトに適しています。
セキュリティプラグインは非常に便利ですが、単にインストールするだけでは十分な効果を得られません。プラグインを最大限に活用するには、日頃からの準備や運用ルールを整えておくことが重要です。
ここでは、特に押さえておきたいバックアップとリカバリープランの考え方を解説します。
セキュリティ対策の最終手段となるのがバックアップです。どれだけ対策をしても攻撃を完全に防ぐことはできないため、サイトが改ざんされたりデータが消失したりした際に、復旧できる仕組みを備えておくことが欠かせません。
▼バックアップの取り方と頻度
対象 | ・データベース ・ファイル(WordPress本体、テーマ、プラグイン、アップロードした画像など) |
頻度 | ・最低でも週に1回 ・更新頻度が高いサイトは毎日取得するのがおすすめ |
保存場所 | ・サーバー ・自身のPC ・Google Drive、Dropboxなどのクラウドストレージ |
方法 | ・UpdraftPlusなどのバックアップ用プラグインを活用 ・レンタルサーバーが提供する自動バックアップ機能の活用 |
上記の方法や頻度に基づきバックアップを取得することで、万が一攻撃を受けても正常な状態に復元できます。
攻撃や障害は予期せず発生するため、事前に復旧までの手順を定めておくことが重要です。リカバリープランを用意しておけば、いざという時に慌てず冷静に対応できます。
例えば、以下のような点をあらかじめ明確にしておくと良いでしょう。
緊急時の対応者 | 復旧の担当者と連絡体制を明確にする |
対応内容 | サイトの一次閉鎖、被害状況の確認、バックアップからの復元、脆弱性の修正、パスワードの一斉変更、関係各所への報告など、具体的な手順をリストアップする |
緊急時の連絡先 | サーバー会社やWeb制作会社、セキュリティ専門家などを定めておく |
こうした準備があるかどうかで、復旧のスピードと被害の拡大防止に大きな差が生まれます。
どれだけ入念に対策をしても、攻撃を受けてしまう可能性はゼロではありません。大切なのはパニックにならず、冷静にひとつずつ対応していくことです。
ここでは、ハッキング被害に遭った場合の基本的な復旧プロセスを解説します。
まず行うべきは、サイトを一時的にオフラインにすることです。
訪問者へのマルウェア感染や被害拡大を防ぐため、メンテナンスモードを有効化するか、.htaccessでアクセス制限をかけて外部から閲覧できない状態にしましょう。
次に、被害状況の確認を行います。
WordPressサーバーにFTPで接続し、index.phpやwp-config.php、.htaccessといった主要ファイル、さらにwp-content/uploadsフォルダ内に不審な改ざんがないかをチェックします。
また、WordPressの管理画面でユーザー一覧を確認し、不正な管理者アカウントが追加されていないかも確認しましょう。並行して、Sucuri SiteCheckのようなマルウェアスキャナーを用いて外部からの診断も行うと効果的です。
被害状況を確認したら、再発防止のために侵入経路を突き止め、脆弱性を修正します。古いプラグインを放置していなかったか、推測しやすいパスワードを利用していなかったか、サーバーログの解析を通じて原因を特定し、不要なプラグインの削除やシステムの更新などを必ず行いましょう。
続いて、すべての関連パスワードを新しく複雑なものに変更します。パスワードを変更する際は以下の項目の変更を徹底してください。
ハッキングの原因解消とパスワードの変更が完了したら、Webサイトの復旧作業を行います。最も安全なのは、攻撃前の状態を保存しているバックアップから復旧する方法です。
バックアップがない場合は、WordPress本体や、プラグイン、テーマのコアファイルを公式サイトからダウンロードした最新版とすべて入れ替え、クリーンアップを行います。専門知識が必要となるため、自信がなければ専門家への依頼を検討しましょう。
これらの対策が完了したら、サイトをオンラインに戻します。Google Search Consoleを利用している場合は、再審査リクエストを送信してください。
復旧作業は時間も労力もかかる大変なプロセスなため、日頃からのバックアップ取得やセキュリティプラグインなどによる対策が重要になります。
WordPressを安全に運用するためには定期的にサイトの健康診断を行い、潜在的な脆弱性を早期に把握することが欠かせません。その際に役立つのが、各種セキュリティ診断ツールです。
ここではセキュリティ診断の流れを、ツールの選定と結果分析という2つのステップに分けて紹介します。
最初のステップでは、どの診断ツールを使うかを決めます。
例えばオンラインスキャナーの「Sucuri SiteCheck」は、URLを入力するだけでマルウェア感染やブラックリスト登録の有無、サイトの挙動に異常がないかを簡単に確認できます。より詳細な診断を求めるなら「WPScan」が有効です。WordPress本体のバージョンや導入済みのプラグイン・テーマに存在する脆弱性を深く掘り下げて検出できます。
また、プラグインを利用した診断も有効です。「Wordfence Security」や「All In One WP Security & Firewall」などは、WordPress内部のファイルを直接チェックし、コアファイルの改ざんや不正コードの有無を調べる機能を備えています。
こうしたツールはそれぞれ特徴が異なるため、自社サイトの運用規模や求める診断の深さに応じて適切なものを選択することが重要です。
診断を実施した後は、その結果をもとに具体的な改善策を検討します。
例えば「特定のプラグインのバージョンX.Xに脆弱性が見つかりました」といった指摘があった場合、まずは該当プラグインを最新版にアップデートするのが基本になります。それでも不安が残る場合や開発元の対応が遅れている場合には、代替のプラグインに切り替えるか、使用していなければ削除することも検討しましょう。
このように診断から改善までを一連の流れとして行うことで、WordPressサイトのセキュリティを強化できます。
SSL化(HTTPS化)は、Webサイトの通信を暗号化する技術です。直接的に不正アクセスを防ぐものではありませんが、データのやり取りを安全に保つことで全体的なセキュリティを底上げできます。
今日では標準的な対応として位置づけられており、WordPressを運用するうえでも欠かせない施策といえるでしょう。
SSL化を行うと、ログイン情報やお問い合わせフォームに入力された個人情報が暗号化され、第三者による盗聴や改ざんを防ぐことができます。そのため、利用者は安心してサイトを閲覧・利用できるようになります。
また、ブラウザのアドレスバーに鍵マークが表示されることで安全性が一目で分かり、訪問者からの信頼向上にもつながります。さらに、GoogleはSSL化を検索順位の要素として扱っているため、SEOの面でもプラスの効果が期待できます。
WordPressをSSL化する手順は、以下の流れで進めます。
まずはサーバーでSSL証明書を取得・設定します。多くのレンタルサーバーでは、無料で利用できる「Let’s Encrypt」が提供されており、管理画面から数クリックで導入可能です。
次に、WordPressの管理画面にある「設定」→「一般」から「WordPressアドレス(URL)」と「サイトアドレス(URL)」をhttpからhttpsに変更します。その後、httpでのアクセスをすべてhttpsへ転送するように.htaccessにリダイレクト設定を行いましょう。
最後に、記事や固定ページに古いhttpリンクが残っていると「混合コンテンツ」として警告が出るため、「Search Regex」などのプラグインを使ってURLを一括修正しておくと安心です。
攻撃をいち早く察知し被害を最小限に抑えるためには、日頃からの監視が欠かせません。誰が、いつ、どのIPアドレスからログインしたのか(あるいは失敗したのか)を記録・監視することで、不審なアクセスを早期に発見できます。
その際、「SiteGuard WP Plugin」や「All In One WP Security & Firewall」などのプラグインを使えば、ログイン履歴を簡単に記録可能です。特に、身に覚えのない時間帯や、海外からのログイン試行が頻発している場合は注意してください。
以下のような兆候が見られたら、不正アクセスを疑いましょう。
これらの兆候を発見した場合は、前述の「万が一被害に遭ってしまったら?」の手順に従って、迅速に対処してください。
WordPressのセキュリティは、システム的な対策だけでなく、サイトを運用する「人」の意識が非常に重要です。日頃からスタッフ全員が意識を高めることで、脆弱性を突かれるリスクを大幅に減らせます。
Webサイトの更新を複数人で行っている場合、全員がセキュリティに関する共通認識を持つことが不可欠です。社内セキュリティ教育のポイントとしては、以下のような項目が挙げられます。
定期的に勉強会などを開催し、社内全体のセキュリティレベルを向上させましょう。
サイバー攻撃の手法は日々進化しています。そのため、常に最新の情報をキャッチアップして対策に活かすことが求められます。具体的には、以下の情報源を定期的に確認すると効果的です。
これらの情報を日常的にチェックし、サイト運用に反映することで、リスクを未然に防ぐことが可能です。
WordPressのセキュリティ強化に関するよくある質問をまとめました。
WordPressの脆弱性の要因としては、以下が挙げられます。
記事内の「WordPressの脆弱性の要因」で詳しく解説しています。
WordPressのセキュリティを守る基本対策としては、以下のようなものが挙げられます。
詳しくは、記事内の「WordPressのセキュリティを守る15の基本対策」をご覧ください。
WordPressのセキュリティ意識を高めるには、社内のセキュリティ教育を強化したり
最新の脅威情報を収集したりすることが重要です。
詳しくは記事内の「WordPressのセキュリティ意識を高めるポイント」で解説しています。
WordPressは非常に便利で高機能なCMSですが、その人気と構造上の特性から、常にサイバー攻撃のリスクと隣り合わせにあります。ただし、システム自体に問題があるわけではなく、多くの被害は運用側の対策不足が原因です。
本記事で紹介したように、アップデートの徹底、パスワードの強化、不要なプラグインの削除といった基本的な対策を一つひとつ着実に実行し、セキュリティプラグインやサーバーの機能を活用することで、脅威の大半は防ぐことができます。
セキュリティ対策は一度行ったら終わりではありません。定期的なバックアップ、継続的な監視、そして最新の脅威情報の収集を怠らず、大切なWebサイトを悪意ある攻撃者から守り抜きましょう。
執筆者
コンテンツディレクター/ライター
Miho Shimmori
2023年ファングリーに入社。以前はWebマーケティング会社で約2年半コンテンツマーケティングに携わり、不動産投資メディアの編集長を務める。SEOライティングが得意。ほかにも士業関連や政治など複数メディア運営の経験あり。Z世代の端くれ。趣味はサウナと競馬と街歩き。