WordPressのセキュリティ対策。基本的な対策方法を分かりやすくご紹介!
2024年8月16日
東証スタンダード上場企業のジオコードが運営!
Web制作がまるっと解るWebマガジン
【監修】株式会社ジオコード Web制作事業 責任者
高松 建太郎
脆弱性とはコンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計におけるミスが原因となるセキュリティ上の弱点です。脆弱性が発覚すると不正なアクセスによって情報の流出やサイトの改ざんにつながりかねません。
脆弱性はOSやソフトウェアに発生するため、世界で広く利用されているCMSであるWordPressにも存在します。
本記事ではWordPressの脆弱性や、不正な攻撃を避ける方法などを解説します。
目次
WordPressの脆弱性は大きく次の2つです。
それぞれの脆弱性について解説します。
WordPressそのものに脆弱性があるため、悪意を持つ攻撃者による不正なアクセスなどにつながってしまうでしょう。WordPressそのものに脆弱性が生まれてしまう理由の一つにオープンソースであることが関わっています。WordPressを始めとした無料CMSは、システムの設計図とも言えるソースコードが公表されています。従って、攻撃者はシステムのソースコードを分析して、WordPressが抱えている脆弱性を発見可能です。
WordPressそのものに脆弱性が生じる理由として、ユーザーが最新バージョンへアップデートしていないケースも挙げられます。
WordPressそのものの脆弱性の中には、まだ気付かれていないもの、修正のプログラムが提供されていないものもあります。まだ気付かれていない脆弱性、修正プログラムが提供されていない脆弱性を狙った攻撃はゼロデイ攻撃と呼ばれています。
WordPressの脆弱性は、サービスを提供するベンダーによって早期に発見されるのが一般的です。しかし、中には攻撃者がベンダーよりも早く脆弱性を見つけてしまうケースがあります。このようなゼロデイ攻撃ではベンダーが脆弱性に気付くまでの間、ユーザーは危険にさらされるリスクが高まります。
WordPressの機能を拡張するためのプラグインが公式、非公式でいくつも発表されています。プラグインを活用することでお問い合わせフォームの設置やSNSのシェアボタン設置などが可能です。
また、WordPressはプラグインだけでなく、サイトのデザインや構成などを決めるテンプレート(テーマ)もインストールできます。しかし、WordPressのプラグインやテーマには脆弱性が潜んでいる可能性があります。WordPress自体に脆弱性がなかったとしても、プラグインやテーマに脆弱性があった場合、不正のアクセスにつながりかねません。
公式プラグインは専用のチームによるソースコードのチェックが実施されており、公式テーマも厳しいテスト・検証を通過したものです。そのため、基本的には安全に利用できると言えます。脆弱性による危険を避けるのであれば、公式プラグイン、公式テーマの活用を検討してみましょう。
非公式プラグインや非公式テーマはチェックが実施されていません。そのため、中には脆弱性が潜んでいる可能性もあるでしょう。チェックが実施されていないため、非公式プラグインや非公式テーマは不具合が発生する可能性もあります。
脆弱性や不具合を避けるためにも、信頼できる開発元であるか、定期的に更新がされているか、ダウンロード数が多くユーザーの評価が高いかなどをチェックしてみましょう。
前述のように、WordPressはそのものだけでなく、プラグインやテーマが脆弱性を抱えている可能性があります。WordPressが不正な攻撃を受けやすいのは脆弱性に加えて、次のような理由も考えられるでしょう。
WordPressは世界で高いシェアを誇っているCMSです。広く使用されているからこそ、不正な攻撃の対象になったサイトがWordPressのサイトである確率は高いと言えるでしょう。
WordPressは専門的な知識がなくとも操作がしやすいのが特徴です。専門的な知識がなくとも操作しやすいというのはWordPressのメリットではあるものの、不正な攻撃を受けやすい理由にもなりえます。専門的な知識が不要なため、サイト運営について慣れていないユーザーはセキュリティ対策を怠ってしまう可能性があります。その結果、不正なアクセスをしようとするユーザーの攻撃の対象になりかねません。
先述のとおり、WordPressのソースコードは一般に公開されています。そのため、専門的な知識を持つユーザーであれば、WordPressがどのようなプログラムなのかを分析可能です。従って、悪意を持つユーザーがプログラムを分析し、不正アクセスを実行する恐れがあります。
WordPressに脆弱性がないかを調べるには、次のような方法を試してみましょう。
サイトヘルス機能を活用することでWordPressの脆弱性を確認可能です。WordPressにはサイトの状態を確認するサイトヘルス機能が備わっています。WordPressの管理画面から【ツール】、【サイトヘルス】の順に進むことで利用可能です。
サイトヘルス機能を利用するとサイトがどのような状態であるのかステータスが表示されます。サイトヘルス機能によって表示されるステータスは良好もしくは改善が必要です。サイトヘルス機能ではステータスだけでなく、改善すべき内容も確認しましょう。なお、サイトステータスが良好であっても、改善案が提案されるケースはあります。余裕があれば、改善案に対応するとよいでしょう。
WordPressの脆弱性は脆弱性診断サービスを活用することでも把握可能です。脆弱性診断サービスの中には無料で利用できるものもあります。脆弱性診断サービスを活用することで、WordPressの状態を把握でき、どのような対応を取るべきなのかも判断できるでしょう。
JVN(Japan Vulnerability Notes)は日本で使用されているソフトウェアなどの脆弱性に関する情報をまとめているポータルサイトです。JVNからWordPressの脆弱性について信頼性の高い情報を得られるため、万が一の際の対策を講じやすくなります。
脆弱性についての情報を掲載しているのはJVNだけではありません。一般社団法人JPCERTコーディネーションセンターが運営するJPCERTでは、国内で過去に起きたセキュリティ事故を確認可能です。
また、CVE(Common Vulnerabilities and Exposures)からも脆弱性について情報収集ができます。CVEは、情報セキュリティにおける脆弱性や事例を事典のようにまとめています。
WordPressの脆弱性を放置せずに良好な状態を維持するためには、次のような対策を講じましょう。
WordPressのログインに用いるパスワードは、解析されにくいものにしましょう。短い文章やゾロ目などはパスワードを解読される恐れがあります。また企業によっては、企業名と企業設立年の組み合わせをパスワードとして設定しているケースもあるでしょう。企業名と企業設立年の組み合わせも、悪意のあるユーザーに解析されかねません。
WordPressのログインパスワードは、次のようなポイントを押さえて設定することが大切です。
WordPressやプラグインは常に最新の状態を維持することが大切です。WordPressは定期的に更新されます。そのため、頻繁に更新して最新の状態を維持しましょう。更新を怠り、古いバージョンを使用していると脆弱性をついた攻撃の対象になりかねません。
WordPress、プラグインだけでなくテーマも最新の状態を維持しましょう。WordPressにおけるテーマとは、サイト全体のデザインを変更・調整するために作られているテンプレートです。WordPress、プラグインの脆弱性をチェックしていても、テーマの脆弱性がチェックできていなければ不正なアクセスにつながりかねません。
更新が可能な場合、WordPressの管理画面【更新】メニューに数字が付いています。定期的に管理画面をチェックして、更新可能かどうかを確認しましょう。
使用していないプラグインやテーマは削除しておきます。プラグインやテーマが多ければ多いほど、脆弱性をついた不正アクセスのリスクが高まってしまいます。そのため、使用していないプラグイン、テーマを放置していると不正なアクセスにつながりかねません。
プラグインやテーマは無効化することで、WordPressへの影響を停止可能です。しかし、無効化によっても脆弱性をついた攻撃を受ける可能性があるため、使用していないプラグインやテーマは削除しましょう。
プラグインやテーマは簡単にインストールできるため、必要以上に手に入れてしまい管理が煩雑になりかねません。インストールしたものの使用していないプラグインやテーマを放置するのではなく、リスト化して適切に管理しましょう。
WordPressではニックネームを設定が可能です。ニックネームが未設定の場合、ユーザー名がそのまま表示されてしまいます。ニックネーム設定は次のような手順で進めましょう。
ニックネームはユーザー名とは異なる名前を設定します。
WordPressへの不正アクセスを防止するためには、IPアドレスの制限が効果的です。例えば、WordPressの管理画面やログイン画面にアクセスできるのを自社内に限定することで、外部からのアクセスを遮断可能です。IPアドレスの制限はプラグインの活用、もしくはサーバーやファイアウォールで設定できます。
WordPressのログイン画面のURLは次のとおり構成されています。
https://(ドメイン名)//wp-login.php
ドメイン名が特定されてしまうと、不正なアクセスにつながりかねません。不正なアクセスを避けるためにもログイン画面のURLは変更しましょう。WordPressのログイン画面URLを変更するには、プラグインが必要です。
WordPressのシステムデータは定期的にバックアップを取りましょう。WordPressのシステムデータのバックアップを取る必要性は次のとおりです。
WordPressのシステムデータは、プラグインを使用することでバックアップを取れます。なお、バックアップを取る際は、WordPressを最新の状態に保っておくことがポイントです。そのため、WordPressやプラグインなどの更新が発生したら、バックアップを取っておきましょう。
WordPressのシステムデータは、プラグインを活用することでバックアップが可能です。
WordPressへの不正アクセスを防ぐためには、常時SSL化が効果的です。
常時SSL化とは、ドメインのURLの冒頭を「http」から「https」に変更することで、サイト全てを暗号化する方法です。
従来はサイトにおいても個人情報やクレジットカード情報などの入力ページのみがSSL化されているのが一般的でした。しかし、セキュリティに対する意識の高まりを受けて、常時SSL化が一般的になっています。サイトが常時SSL化していないと、ユーザーが訪問した際に警告文が出てしまうため、不信感や離脱につながってしまいます。
なお、常時SSL化はWebサイトに対して行なう方法と、WordPressに対して行なう方法があります。WordPressを採用している場合に常時SSL化をするのであれば、次のようなステップで進めていきましょう。
なお、SSLサーバー証明書の取得方法は契約しているレンタルサーバーによって異なるため、自社の契約先のマニュアルやヘルプページを参照しましょう。
常時SSL化することでセキュリティリスクを軽減可能です。常時SSL化するメリットは、セキュリティリスクの軽減だけではありません。SEO(検索エンジン最適化)にも影響を及ぼします。常時SSL化、良質なコンテンツの提供によって検索エンジンの検索順位向上が期待できます。
また、サイトの表示スピードが向上するHTTP/2への対応にも、常時SSL化は効果的です。
画像認証、二段階認証を設定することで、脆弱性の原因を始めとしたWordPressへの不正を防止可能です。それぞれの認証方法は次のとおりです。
画像認証の場合、プログラムでは画像内容を判断できないため不正アクセスを防止できます。一方、二段階認証では認証を2回実施するため、本人確認の精度向上が期待できます。
契約しているレンタルサーバーによっては、セキュリティ機能を提供しています。従って、レンタルサーバーのセキュリティ機能を利用することで、WordPressの脆弱性を狙った不正対策を講じられます。レンタルサーバーが提供しているセキュリティ機能は主に次のとおりです。
SSL証明書とは、インターネット上でデータをやり取りする際に暗号化する技術です。SSL証明書はサイトでのやり取りを暗号化できるだけでなく、実在証明としても機能します。運営者の身元が認証局によって証明されているため、ユーザーは安心してサイトを利用可能です。
Web改ざん通知は、サイトの改ざんが発生した際に通知してくれる機能です。サイトのコンテンツやファイルなどが改ざんされていないかを自社で検知するのは困難でしょう。改ざんに気付かなかったことで、ユーザーに被害が及んでしまう可能性もあります。レンタルサーバーが提供するWeb改ざん通知を利用すれば、万が一、サイトに改ざんが発生した際に迅速に対応しやすくなります。
国外IPアクセス制限とは外国からのアクセスを制限する機能です。WordPressを始め、サイトへの不正なアクセスは、日本国外から行われるケースもあります。国外IPアクセス制限機能を活用することで、海外からの不正なアクセスに対処でき、国内のユーザーは利便性を維持してサイトの閲覧が可能です。
WAFとはWebアプリケーションファイアウォールの略です。WAFを利用することで、クロスサイトスクリプティングやSQLインジェクション、ブルートフォースアタックなどの脆弱性を狙ったサイバー攻撃への対策ができます。
WAFでは過去の通信内容と攻撃時の通信を照らし合わせ、不正なアクセスであると判断されると通信が遮断されます。
IDSとIPSは、どちらも通信を監視することで不正なアクセスを検知する機能です。特にIPSは不正侵入を検知したら、通信の遮断などを実行するため、不正な攻撃を自動的に遮断可能です。
WordPressの脆弱性を原因としたサイトへの不正なアクセスを防止するのであれば、セキュリティ対策に特化している専門業者のサービスを利用するのもおすすめです。
WordPressのセキュリティ対策を講じている専門業者を選ぶ際は、次のような点に着目しましょう。
WordPressのセキュリティ対策を専門業者に委託するのであれば、費用だけでなく専門性にも着目しましょう。専門業者に依頼する場合、一定の費用がかかってしまいます。
予算を意識しすぎて費用ばかりに着目してしまいがちですが、費用だけでなく提供しているサービスの内容や、専門性の高さなども確認しましょう。専門性が高い業者であれば、より効果的なアドバイスや対策が期待できます。
また、土日や夜間の対応や報告書の有無と内容なども費用以外に着目すべきポイントです。
なお、WordPressのセキュリティを提供している専門業者の中には、相場よりも費用を抑えているケースもあります。相場よりも費用を抑えている場合、理由を問い合わせることも効果的です。理由に納得した場合、依頼を検討してみましょう。
提供しているセキュリティ対策が包括的かどうかも、委託先選びのポイントです。脆弱性に対しての対策だけでなく、さまざまな脅威や攻撃に対応できるサービスを提供する業者を選びましょう。
例えば、セキュリティ診断の方法がツール診断のみでは、脆弱性の可能性しか検出できません。脆弱性の可能性以外の検出や対策を期待するのであれば、ツール診断だけでなく手作業による精査を実行している業者を選ぶのがポイントです。
サイトが抱えるセキュリティリスクは常に変化しています。変化を続けるセキュリティリスクに対応するためには、新しい技術やソリューションを提供している業者への委託を検討しましょう。新しい技術やソリューションだけでなく、新たな事例などを蓄積していることも日々変化するセキュリティリスクに対応する業者に求められます。
WordPressの脆弱性は、プラグインやテーマにある場合とWordPressそのものにある場合の2つに分けられます。WordPressは脆弱性だけでなく、CMSの中でも高いシェアを誇る上に専門的な知識が不要なため不正アクセスの被害に遭いやすいでしょう。
WordPressの脆弱性はサイトヘルス機能や脆弱性診断サービスを活用することで、診断可能です。WordPressの脆弱性をついた不正なアクセスを防ぐためにも、解析されにくいパスワードの設定や最新バージョンの維持などを心掛けましょう。
株式会社ジオコードでは、WordPress セキュリティプランを提供しています。「WordPressでサイトを立ち上げたものの、セキュリティ対策に不安がある」という方はぜひご相談ください。