「WordPressの脆弱性はどのくらいあるの?」
「Webサイトを安全に運用するには、どのような対策をしたら良い?」
WordPressの脆弱性とは、本体やプラグインの設計ミスなどによって発生するセキュリティ上の欠陥のことです。脆弱性を放置したままにすると、不正アクセスやWebサイトの改ざん、情報漏えいなどの被害を受ける可能性が高まります。
本記事では、以下の内容を詳しく解説します。
- WordPressの脆弱性について
- WordPressの脆弱性が狙われやすい理由
- WordPress脆弱性に起因する攻撃とリスク
- WordPressの脆弱性を確認する方法
- WordPressのセキュリティ強化対策
本記事を読むことで、脆弱性を放置するリスクやサイバー攻撃から守るためのセキュリティ強化方法が分かります。
WordPressを安全に活用したいと考えている企業の方は、ぜひご一読ください。
Webサイトを安全に運用したい組織の方、必見!
Webサイトのセキュリティ、どのような対策が必要?
Webサイトは運用形態によってセキュリティ対策の方法や要点もさまざまです。セキュリティを強固にするため、また効率よく実施するためにも、まずはWebサイトの運営形態に適したセキュリティ対策を把握するところから始めましょう。まずは、こちらの資料をご覧ください。
WordPressの脆弱性
WordPressの脆弱性とは、WordPressを構成するプログラムの欠陥のことです。
プログラム設計ミスやバグが原因で脆弱性が生まれると、外部から攻撃を受けるリスクが高まります。
JVNの脆弱性レポートによると、2022年の1年間に報告されているWordPressの脆弱性は99件ほどありました。
報告された脆弱性(一部抜粋)
公表日 | ID | タイトル |
---|---|---|
2022/01/06 | JVNDB-2022-003186 | WordPressにおけるSQLインジェクションの脆弱性 |
2022/01/26 | JVNDB-2022-004782 | WordPress GDPR WordPress プラグインにおけるクロスサイトスクリプティングの脆弱性 |
2022/01/31 | JVNDB-2022-004534 | Essential Addons for Elementor WordPress プラグインにおけるパストラバーサルの脆弱性 |
2022/12/05 | JVNDB-2022-003694 | Return Refund and Exchange For WooCommerce WordPress プラグインにおける危険なタイプのファイルの無制限アップロードに関する脆弱性 |
2022/12/09 | JVNDB-2022-004107 | WP User WordPress プラグインにおけるSQLインジェクションの脆弱性 |
被害事例として、2021年に発生した企業サイトの改ざん事件があります。
悪意ある外部サイトへ誘導するようにWebサイトが改ざんされ、訪問したユーザーが不利益を被るというものでした。原因は、WordPress本体のアップデート漏れによる脆弱性の放置でした。
事例からも、脆弱性に対応したWordPressのバージョンが配信された時にはすぐに更新することが非常に大切なことがわかります。
プラグインの脆弱性が最も狙われやすい
WordPressに対する攻撃のうち、もっとも狙われやすいのがプラグインの脆弱性です。プラグインの脆弱性を突いた攻撃が、攻撃要因の約56%を占めるという調査結果があります。
プラグインの脆弱性を突いた被害事例には、2017年に発生した女性向けファッション事業への不正アクセス事件があります。プラグインを古いまま使い続けていたことが原因で攻撃を受け、スパムメール送信の踏み台にされてしまいました。
プラグインがアップデートされた時はすぐに更新する、バージョンが更新されないプラグインは使用しないなどの対応が必要です。
テーマにも脆弱性は存在する
Webサイトのデザインを調整するテーマにも、脆弱性が見つかる場合があります。テーマの脆弱性を狙った攻撃はプラグインほど多くはありませんが、軽視できません。
過去には、WordPressのテーマ「OneTone」にデータベースの中身を書き換えられてしまう脆弱性が見つかっています。サイト改ざんなどの被害が出て、テーマの削除を迫られたユーザーも数多くいました。
WordPress本体やプラグインと同様に、テーマも定期的にアップデートすることが大切です。
WordPressの脆弱性が狙われやすい3つの理由
WordPressの脆弱性が狙われやすい主な理由は、次の3つです。
- シェア率が高い
- プログラムが公開されている
- 特別な知識がなくても使える
詳しく解説していきます。
1. シェア率が高い
WordPressの脆弱性が狙われやすいのは、ユーザーが多いためです。
利用統計グラフによると、WordPressは全Webサイトの中で4割以上のシェア率を占めており、CMS市場でのシェア率は6割でした。
また、日本においてはWebサイト作成に使用するCMSの8割をWordPressが占めていました。
このデータからも解かるとおり、WordPressはシェア率が高いため、攻撃対象として狙われやすくなっています。
2. プログラムが公開されている
WordPressは、プログラムの内容が公開されているOSS(オープンソースソフトウェア)です。ソースコードを変えて自由にカスタマイズでき、コンテンツをより良い形に改変できる利点があります。
OSSは多くのエンジニアが改良に参加するため、企業や個人など限られたリソースで開発するより多くの知見が活かされ、バグも発生しにくくなります。もちろん多くのエンジニアによって積極的にデバッグされることが前提ですが、WordPressはユーザーが多いため比較的安全性が高いと言えるでしょう。
一方で、OSSは組織的にソフトウェアの安全性を高める取り組みには欠けるため、全体を俯瞰したときに不整合が発生することがあります。
悪意ある第三者がプログラムの中身を見て脆弱性を発見し、攻撃してくる可能性は十分あります。WordPressもOSSである以上、Webサイトの改ざんなど不正利用されるリスクを念頭に置いておく必要があるでしょう。
3. 特別な知識がなくても使える
WordPressのシェア率が高い理由の一つでもありますが、WordPressは特別な知識がなくても簡単に使えるように設計されています。よって必然的にセキュリティ意識の低いユーザーも一定数存在することになります。そうすると脆弱性が放置されているWebサイトの数も多くなるため、攻撃者へ格好のチャンスを与えることになります。
攻撃者もセキュリティ意識の甘いユーザーが多いことを理解しているため、WordPressで作成されたWebサイトを狙って攻撃を仕掛けてきます。
使いやすさが一利一害となってしまっている現状では、WordPressユーザー自身がセキュリティ意識を高め、対策を怠らないように気をつけなければ、不正利用されるリスクは非常に高いままと言えるでしょう。
WordPressの脆弱性を狙った攻撃と4つのリスク
WordPressの脆弱性が原因で発生するリスクは、次の4つです。
- 管理画面への不正アクセス
- Webサイトの改ざん
- 重要情報の漏えい
- 踏み台化による犯罪への加担
上記のような被害を受けると、企業の信頼低下や損害賠償などの金銭的な損失につながる可能性があります。
ここでは、4つのリスクの詳細と具体的な攻撃手法について詳しく解説します。
1. 管理画面への不正アクセス
WordPressに脆弱性が潜んでいると、管理画面へ不正にアクセスされる危険があります。攻撃者が管理画面を不正に操作した場合、Webサイトの削除・パスワードの変更・個人情報の盗取などの被害を受ける可能性があります。
不正アクセスに使われる攻撃手法は、主に以下の2つです。
ブルートフォースアタック
手当たり次第にID・パスワードを入力してログインを試みる手法です。自動プログラムを組んで実行し続けるため、単純なID・パスワードだと突破されてしまう危険があります。
リスト型攻撃
フィッシングサイトや違法性の高い情報が取引されるダークウェブを利用し、ID・パスワードを盗んで不正アクセスを試みる手法です。さまざまなサービスで同じID・パスワードを使い回していると、攻撃を受けるリスクが高まります。
2. Webサイトの改ざん
WordPressやプラグインの脆弱性は、不正アクセスだけでなくWebサイトを改ざんに利用されるリスクもあります。Webサイトの改ざん事例は、記事内容の書き換え、フィッシングサイトへの誘導、誹謗中傷・政治的主張の掲載などです。詐欺や嫌がらせなど、さまざまな目的でWebサイトを改ざんする攻撃者がいます。
Webサイトを改ざんする主な攻撃手法には、以下の2つがあります。
コンテンツインジェクション
Webサイトの文章・画像・リンクなどを改ざんする攻撃手法です。有害サイトへのリンクが貼られると、ユーザーに不利益を与える危険があります。
SQLインジェクション
Webサイト内に設置された入力フォームなどに不正なコードを入力し、データベースに侵入する攻撃手法です。データベースに格納された個人情報などは、データの不正操作や改ざん、破壊の危険があります。
Webサイトの攻撃手法の中でも、SQLインジェクションは特に有名です。「SQLインジェクションの対策|被害事例と攻撃が起こる仕組みを解説」では、SQLインジェクションが引き起こした被害の事例や、なぜ攻撃されてしまったのか詳しく解説しています。
攻撃の仕組みやその影響を知ることは、脆弱性対策を検討する上での判断材料になりますので、ご一読いただくことをおすすめします。
3. 重要情報の漏えい
WordPressが攻撃を受けたことにより、企業の機密情報やユーザーの個人情報が漏えいするリスクがあります。情報漏えいは企業の信頼が低下するほどの重大なセキュリティ事故であり、経営に大きな影響を与える可能性があります。
情報漏えいを引き起こす主な攻撃手法は、以下の2つです。
クロスサイトスクリプティング
脆弱性を狙ってWebサイトに不正な簡易プログラムを仕掛け、サイト来訪者を外部の悪質サイトへ誘導する手法です。誘導先でマルウェアに感染したり、個人情報を盗まれたりする危険があります。
ディレクトリトラバーサル
権限がないファイルにアクセスして不正に閲覧する攻撃手法です。企業の機密情報やユーザーの個人情報が盗取される危険があります。
WordPressで報告される脆弱性の約3割を占めるクロスサイトスクリプティングは、対策が必要な箇所が非常に多く、漏れが生じやすいという問題があります。
「クロスサイトスクリプティング(XSS)|影響と対策をわかりやすく解説」では、脆弱性対策として必ず行うべき「根本的な対策」から、必要に応じて対応する「保険的な対策」にわけて詳しく解説しています。どのような対策を取るべきか検討する上での判断材料になりますので、ご一読いただくことをおすすめします。
4. 踏み台化による犯罪への加担
攻撃を受けたことで不正アクセスの中継ポイントや迷惑メールの発信基地に利用され、知らないうちに犯罪へ加担させられるケースがあります。サイバー攻撃の犯人だと疑われ、社会的な信用が低下する危険があります。
踏み台化の攻撃手法は、ブルートフォースアタックです。IDとパスワードを取得してWebサイトを乗っ取り、不正に利用します。また、WordPress本体やプラグインを更新していないことが原因で、脆弱性を突かれて踏み台化に利用されることもあります。
WordPressの脆弱性を調べる3つの方法
WordPressの脆弱性を調べる方法は、次の3つです。
- サイトヘルスで安全性を確認する
- 脆弱性情報データベースで検索する
- 脆弱性診断を実施する
ここでは、具体的な調べ方や参考になるWebサイトを紹介します。
1. サイトヘルスで安全性を確認する
WordPressには、Webサイトの安全性が確認できる「サイトヘルス機能」があります。管理画面にある「ツール」から「サイトヘルス」を選択すると確認可能です。
サイトヘルスは常に「良好」を保つようにしましょう。Webサイトで行うべき改善方法の提案も表示されるため、うまく活用するのがおすすめです。
2. 脆弱性情報データベースで検索する
脆弱性情報データベースを活用すると、国内外で発見された脆弱性情報を集められます。日頃から情報を集めておくと、緊急性の高い脆弱性への対策がしやすくなるでしょう。
脆弱性情報は、以下のサイトで確認できます。
WordPressを含む国内外で発見された脆弱性や、対策方法が確認できる
WordPressなど世界中の脆弱性を辞書のように検索できる
日本におけるセキュリティ事故を確認できる
3. 脆弱性診断を実施する
脆弱性診断とは、不正アクセスや改ざんなど外部攻撃を受ける可能性がないか検証するセキュリティ対策です。
診断を実施することで、既知の脆弱性やカスタマイズした部分の脆弱性を検知することができます。これにより、WordPressで作成したWebサイトに存在する脆弱性や、WordPressのアップデート漏れを防ぐことができます。
脆弱性診断は有効なセキュリティ対策ですので、「脆弱性診断(セキュリティ診断)とは|必要性からやり方まで、すべて解説」をお読みいただき、詳しく知っておくことをおすすめします。
WordPressの脆弱性に対する10のセキュリティ強化対策
WordPressの脆弱性に対応し、セキュリティを強化する対策には次の10個の方法があります。
- WordPress・プラグイン・テーマを最新の状態にする
- 未使用のプラグイン・テーマは削除する
- 複雑な文字列のログインパスワードにする
- ニックネームを設定する
- ログイン画面のURLを変更する
- アクセスできるIPアドレスを制限する
- 画像認証・二段階認証を実装する
- WebサイトをSSL化する
- バックアップを定期的に行う
- WAFを導入する
WordPressの設定を見直したり最新バージョンに更新するだけで、簡単にセキュリティの強化が可能です。
ここでは具体的なやり方や、導入すると良いプラグインなどを紹介します。
1. WordPress・プラグイン・テーマを最新の状態にする
WordPress本体やプラグイン・テーマは、脆弱性への対応や機能追加を目的に常にバージョンアップしています。更新せずに脆弱性を放置すると攻撃を受けるリスクが高まるため、定期的に更新することが大切です。
更新プログラムがある場合は、WordPressの管理画面にある「更新」メニューに数字が付きます。定期的に管理画面をチェックし、メンテナンスを怠らないようにしましょう。
2. 未使用のプラグイン・テーマは削除する
プラグインやテーマが多いほど攻撃を受けるリスクが高まるため、使っていないものがあれば削除しておきましょう。開発者が長期間更新していないプラグインやテーマも、削除するのがおすすめです。
使わないからといって更新せずに放置すると、脆弱性を狙った攻撃によって何らかの不利益を被る可能性があります。たとえ無効化していても攻撃を受けるリスクがあるため、必ず削除するようにしましょう。
3. 複雑な文字列のログインパスワードにする
ブルートフォースアタックなどの攻撃を防ぐには、ログインパスワードを複雑な文字列にすることが大切です。「数字+アルファベット+記号」を組み合わせた10桁以上のパスワードを設定しましょう。
パスワードが短かったり単純な数字を並べたりすると、不正アクセスされるリスクが高まります。企業の場合は、企業名と設立年・ローンチ時期を組み合わせたパスワードに設定してしまうと、解析されやすくなり危険です。
パスワードを設定する際は、企業名や事業内容などとはいっさい関係のない文字列にしましょう。
4. ニックネームを設定する
WordPressの初期設定では、ユーザー名が投稿者名やプロフィール欄に表示される状態になっています。管理画面へのログインに必要なユーザー名を公開することになるため、必ずニックネームを設定しましょう。
ニックネームは、以下の手順で設定できます。
- WordPress管理画面の左側にある「ユーザー」から「プロフィール」を選択
- 「ニックネーム」欄に任意の名前を入力
- 「ブログ上の表示名」をユーザー名からニックネームに変更
- 「プロフィールを更新」を押下
5. ログイン画面のURLを変更する
WordPressのログイン画面は、初期設定で「https://ドメイン名//wp-login.php」となっています。
ドメイン名さえ把握できれば第三者でもアクセス可能となるため、ログイン画面のURLは変更しておきましょう。
なおWordPressにはURL変更の機能がないため、プラグインを導入する必要があります。URLを変更できるプラグインは以下の3つです。
- SiteGuard WP Plugin
- WPS Hide Login
- Login rebuilder
6. アクセスできるIPアドレスを制限する
WordPressのログイン画面や管理画面にアクセスできるIPアドレスを自社に限定すると、外部からのアクセスを防げます。
IPアドレスを制限する方法には、以下の2つがあります。
- プラグイン「SiteGuard WP Plugin」を導入する
- サーバーやファイアウォールなどでIPアドレス制限の設定をする
IPアドレスを制限すれば不正アクセスのリスクが下がるため、必ず設定しておきましょう。
7. 画像認証・二段階認証を実装する
画像認証・二段階認証を利用すると、不正ログインを防ぎやすくなります。
認証 | 概要 |
---|---|
画像認証 | 文字画像やパズル画像を用いてログインする認証方法。プログラムでは画像の内容を読み取れないため、サイバー攻撃を防げる。 |
二段階認証 | アプリやセキュリティコードを用いて、本人確認を2回繰り返す認証方法。本人確認の精度が上がる。 |
なおWordPressの機能に画像認証・二段階認証できるものはないため、プラグインを導入する必要があります。
画像認証ができるプラグイン
・SiteGuard WP Plugin
二段階認証ができるプラグイン
・Google Authenticator
・Two Factor Authentication
・Jetpack
・Wordfence Security – Firewall & Malware Scan
8. WebサイトをSSL化する
WebサイトをSSL化して「http」から「https」に変えることで、ネットワーク上の通信を暗号化できます。通信を暗号化すれば、第三者によるデータの盗取や改ざんを防ぐことが可能です。
SSL化していないWebサイトは、アドレスバーに「保護されていない通信」「安全ではありません」などと表示されます。Webサイトを訪れたユーザーに不信感を与えるため、必ずSSL化しておきましょう。
「Really Simple SSL」というプラグインを導入すると、WordPressをSSL化できます。
9. バックアップを定期的に行う
万が一Webサイトがハッキングされてデータの改ざんなどが行われたときのために、WordPressをバックアップしておきましょう。データが書き換えられたり削除されたりしても、バックアップがあればもとの状態に復元できます。
以下のプラグインを導入すると、WordPressのバックアップが可能になります。
- BackWPup
- All-in-One WP Migration
10. WAFを導入する
WAFとは、外部からの攻撃を検知して、自動でWebサイトを防御するセキュリティ対策製品のことです。SQLインジェクション・クロスサイトスクリプティングなどの攻撃を防げるため、Webサイトの改ざんや情報漏えいのリスクを下げられます。
脆弱性診断ツールを使うと効率よくセキュリティ対策ができる
脆弱性診断ツールを自社に導入すれば、WordPressのセキュリティ強化をかんたんに行うことができます。
WordPress本体やプラグイン・テーマのアップデート漏れや、作成したWebサイトに存在する脆弱性を検知して対策方法も表示してくれます。
診断ツールは色々ありますが、URLを入力するだけで自動でスピーディーに脆弱性を検知する高機能なものもあります。
WordPressは攻撃の標的となりやすいため、継続的なセキュリティ対策が重要になります。診断ツールを定期的に使い脆弱性を早期発見して対策を施せば、被害を受けるリスクが大幅に下がるでしょう。
脆弱性診断ツールについての記事「脆弱性診断ツール(サービス)|有料・無料の違いと5つの選定ポイント」をお読みいただき、導入を検討してみてはいかがでしょうか。
まとめ|WordPressを安全に使用するには継続的なセキュリティ対策を
WordPressの脆弱性とは、本体やプラグインの設計ミスなどによって発生するセキュリティ上の欠陥のことです。
WordPressの脆弱性を調べる方法は、次の3つです。
- WordPressのサイトヘルス機能を活用する
- 脆弱性情報データベースで検索する
- 脆弱性診断を実施する
WordPressの脆弱性対策は、以下の方法で行うことができます。
- WordPress・プラグイン・テーマを最新の状態にする
- 未使用のプラグイン・テーマは削除する
- 複雑な文字列のログインパスワードにする
- ニックネームを設定する
- ログイン画面のURLを変更する
- アクセスできるIPアドレスを制限する
- 画像認証・二段階認証を実装する
- WebサイトをSSL化する
- バックアップを定期的に行う
- WAFを導入する
WordPressの設定を見直したりプラグインを導入することで、セキュリティを強化できます。
上記の対策をすべて定期的に実施するのは大変だという方には、脆弱性診断ツールの導入をおすすめします。
脆弱性診断ツールを利用すれば、効率よくセキュリティ対策が行えます。脆弱性を早期発見すれば、セキュリティ事故が起こるリスクを大幅に下げることが可能です。
脆弱性対策を万全にして、WordPressを安全に活用しましょう。