2021-2022年版 WordPressの脆弱性とその対策についてチェック [脆弱性一覧あり]
この記事では、WordPressに関する脆弱性とその対策方法について解説しています。
WordPressは無料で利用できるオープンソースCMSで、日本国内での利用率が80%以上と圧倒的なシェアを誇っています。全世界の40%程度のサイトがWordPressで作られているとも言われるほどで、企業のブログやサイトをWordPressで作成している企業も多いのではないでしょうか。
専門的な知識がなくても記事の投稿やサイト管理ができる利便性の高さから人気がある一方、「WordPressはセキュリティ面に課題がある」「WordPressのプラグインに脆弱性が見つかった」といった話を耳にするケースもあり、不安に思う方もいるでしょう。
本記事ではWordPressの脆弱性について触れ、そのうえで取るべき対策法を紹介します。WordPressを利用しているけれどセキュリティ面で不安な方や、脆弱性の観点からWordPressの導入を躊躇している企業の方は、ぜひ最後まで読んでいただければと思います。
WordPressの脆弱性は大きく2種類
WordPressの脆弱性は、大きく分けると以下の2種類です。
- WordPress自体の脆弱性
- 付随するプラグインの脆弱性
WordPress自体の脆弱性とは、WordPressそのものが持っている脆弱性です。
まだ気づかれていない脆弱性や、見つかってはいるものの修正プログラムがまだ提供されていない脆弱性をつく「ゼロデイ攻撃」が行われるケースもあり、攻撃が多様化しているのが現状です。
付随するプラグインの脆弱性とは、WordPressに機能を追加するプログラムの「プラグイン」の脆弱性のことを指します。たとえWordPress自体に問題がなくてもプラグインに脆弱性が発生すれば攻撃の対象となり、ホームページの改ざんや情報の不正入手などが可能になるのです。
WordPressのプラグインには、公式のものと非公式のものがあります。公式プラグインは、ソースコードチェックを行った後にWordPressの公式サイト内の「プラグインディレクトリ」に登録されているものです。
公式プラグインはソースコードチェックが実施されているため、基本的には安全に使用できると考えてよいでしょう。
非公式プラグインとは、WordPressの公式プラグインディレクトリに登録されていないプラグインを言います。非公式プラグインを使用する際には、以下の点に注意が必要です。
- ソースコードチェックが実施されていないため不具合が生じる可能性がある
- 悪意のあるプログラムが仕組まれている可能性がある
- 脆弱性が含まれている可能性がある
非公式プラグインを使用するなら、上記の点を理解したうえで使用しなければなりません。
2021年から2022年に発見されたWordPressの脆弱性について、一覧を掲載します。記事記載時点(2022年1月)で169件と数が多いため、今回は掲載されている順に15件を取り上げて紹介しました。どのような脆弱性があるか、チェックしてみてください。
公表日 | 最終更新日 | ID | タイトル | CVSSv3 | CVSSv2 |
2022/01/12 | 2022/01/12 | JVNDB-2022-000002(JVN#72788165) | WordPress 用プラグイン Quiz And Survey Master における複数の脆弱性 | 5.4 | 4.0 |
2021/04/20 | 2022/01/14 | JVNDB-2021-006615 | WordPress 用 Redirection for Contact Form 7 プラグインにおける不正な認証に関する脆弱性 | 6.3 | 6.5 |
2021/04/20 | 2022/01/14 | JVNDB-2021-006614 | WordPress 用 Redirection for Contact Form 7 プラグインにおける不正な認証に関する脆弱性 | 4.3 | 4.0 |
2021/04/20 | 2022/01/14 | JVNDB-2021-006613 | WordPress 用 Redirection for Contact Form 7 プラグインにおける信頼できないデータのデシリアライゼーションに関する脆弱性 | 8.8 | 6.5 |
2021/04/20 | 2022/01/14 | JVNDB-2021-006612 | WordPress 用 Redirection for Contact Form 7 プラグインにおける不正な認証に関する脆弱性 | 6.5 | 4.0 |
2021/04/20 | 2022/01/14 | JVNDB-2021-006611 | WordPress 用 Redirection for Contact Form 7 プラグインにおける不正な認証に関する脆弱性 | 7.5 | 5.0 |
2021/04/11 | 2022/01/12 | JVNDB-2021-006555 | WordPress 用 College publisher Import プラグインにおける危険なタイプのファイルの無制限アップロードに関する脆弱性 | 7.2 | 6.5 |
2021/04/10 | 2022/01/12 | JVNDB-2021-006554 | WordPress 用 Classyfrieds プラグインにおける危険なタイプのファイルの無制限アップロードに関する脆弱性 | 8.8 | 6.5 |
2021/04/10 | 2022/01/12 | JVNDB-2021-006553 | WordPress 用 Event Banner プラグインにおける危険なタイプのファイルの無制限アップロードに関する脆弱性 | 7.2 | 6.5 |
2021/04/06 | 2022/01/12 | JVNDB-2021-006540 | WordPress 用 WPBakery Page Builder Clipboard プラグインにおける不正な認証に関する脆弱性 | 6.5 | 4.0 |
2021/04/06 | 2022/01/12 | JVNDB-2021-006539 | WordPress 用 WPBakery Page Builder Clipboard プラグインにおけるクロスサイトスクリプティングの脆弱性 | 5.4 | 3.5 |
2021/04/03 | 2022/01/12 | JVNDB-2021-006538 | WordPress 用 OpenID Connect Generic Client プラグインにおけるクロスサイトスクリプティングの脆弱性 | 6.1 | 4.3 |
2021/04/07 | 2022/01/12 | JVNDB-2021-006537 | WordPress 用 Business Directory Plugin – Easy Listing Directories プラグインにおけるクロスサイトリクエストフォージェリの脆弱性 | 8.8 | 6.8 |
2021/04/11 | 2022/01/12 | JVNDB-2021-006536 | WordPress 用 Business Directory Plugin – Easy Listing Directories プラグインにおけるクロスサイトリクエストフォージェリの脆弱性 | 8.8 | 6.8 |
2021/02/17 | 2022/01/11 | JVNDB-2021-006513 | WordPress 用 NextGEN Gallery Pro プラグインにおけるクロスサイトスクリプティングの脆弱性 | 6.1 | 4.3 |
公表日が新しい順に発表されている脆弱性を見てみると、すべてプラグインの脆弱性となっています。WordPress自体の脆弱性について、いくつか取り上げて以下にまとめました。
公表日 | 最終更新日 | ID | タイトル | CVSSv3 | CVSSv2 |
2021/04/15 | 2022/01/06 | JVNDB-2021-006422 | WordPress における情報漏えいに関する脆弱性 | 4.3 | 4.0 |
2021/04/15 | 2022/01/06 | JVNDB-2021-006418 | WordPress の Media Library における XML 外部エンティティの脆弱性 | 6.5 | 4.0 |
2021/03/31 | 2021/12/22 | JVNDB-2021-005905 | WordPress 用 Goto テーマにおけるクロスサイトスクリプティングの脆弱性 | 6.1 | 4.3 |
上記のようにWordPressの脆弱性は日々報告されており、CVSSによる深刻度や影響する範囲、対応方法について記載されています。
WordPress自体も常にアップデートされており、脆弱性への対策が実施されていますが、すぐに対策ができるわけではなく、ゼロデイ攻撃もあるため注意しなければなりません。
プラグインに関する脆弱性も多く見られますが、プラグインを使用する場合は「定期的にアップデートされているか」「使用ユーザーが多いか」などを確認して取り扱いに注意する必要があります。
WordPressの脆弱性の事例
WordPressの脆弱性の具体的な事例について、内容を詳しく紹介します。
REST APIの脆弱性をついた攻撃
2017年2月に起きたREST APIの脆弱性をついた攻撃では、155万を超えるサイトが改ざんされる被害が出ました。WordPressに関連する脆弱性のなかでも最悪に分類されるとも言われています。
REST APIの脆弱性をついた攻撃は、亜種が発見されたこともあって被害が大きくなりました。日付を追って内容を見てみましょう。
- 2月1日:WordPressによって脆弱性の情報が発表される
- 2月3日:攻撃が発生、5日まで増加を続ける
- 2月5日:ファイアウォールに設定されたルールを回避する亜種が発見される
- 2月7日:亜種による攻撃が増加する
一度改ざんされたサイトが、別の攻撃グループによって再度改ざんされる例も見られました。
プラグインWP GDPR Complianceの脆弱性
プラグインWP GDPR Complianceの脆弱性は、認証を受けていない攻撃者が新規ユーザーの登録と権限昇格を行えるものです。
管理者権限を持つユーザーを作成すれば、悪意を持って「システムの操作」「設定の変更」「データの読み書き」「ソフトウェアの導入や除去」などができるため、サイト全体が影響を受けます。マルウェアを埋め込まれる可能性もあるため、注意が必要です。
WP GDPR Complianceの脆弱性には、大きく分けて2つの項目が見られます。
- 任意のオプション値を保存可能
- 任意のオプションの呼び出しと実行
2つの脆弱性を組み合わせて任意のオプション値を保存したうえで呼び出して実行すると、新たなユーザーの作成と管理者権限の付与が簡単にできる仕組みです。
WordPressテーマOneToneの脆弱性
OneToneとは、トップページで多彩なセクションを設定できるWordPressのテーマです。おしゃれで美しいテーマとして人気があり、直感的な操作でカスタマイズできる機能性にも定評があります。
使用者も多いOneToneですが、認証なしでデータベースに侵入できる脆弱性が見つかりました。
データベースに侵入可能なので、データベース言語のひとつであるSQLを注入してのサイトの改ざんや、データの操作を行うSQLインジェクションの攻撃の対象となり、被害が出ています。テーマの削除が必要となったユーザーも多数いたなど、大きな影響が出ました。
WordPressを利用するうえで考えておくべきこと
WordPressを利用するなら、以下の点について考えておく必要があります。
- 国内外で発見される脆弱性を確認しておく
- WordPressを常に最新バージョンに保つ
- テーマ・プラグインも常に最新バージョンに保つ
- ログインページや管理画面にIP制限をかける
- ログインページのURLを変更する
- 定期的に脆弱性診断を行う
それぞれの内容を詳しく紹介します。
国内外で発見される脆弱性を確認しておく
WordPressを利用するなら、国内外で発見される脆弱性を確認しておきましょう。情報を集めれば、緊急度の高い脆弱性から対策を始めるなどの判断が可能です。
脆弱性の確認には以下の情報が役立ちます。
JVN iPedia 脆弱性対策情報データベース
WordPress以外の脆弱性含め国内外で発見された脆弱性が確認できる
JPCERT コーディネーションセンター
国内で発見された脆弱性が確認できる
CVE
WordPress含む、世界中の脆弱性を確認することができる
WordPressを常に最新バージョンに保つ
WordPressを使用するなら、常に最新バージョンに保つ必要があります。WordPressは脆弱性を解消する目的で頻繁にアップデートが行われているため、最新バージョンに保つことで脆弱性に対してある程度の対策が可能です。
WordPressに搭載されている自動アップデート機能を利用すると便利ですが、メジャーなアップデートが行われる場合はインストールしているテーマやプラグインが動作しなくなる可能性もあるので注意しましょう。
テーマ・プラグインも常に最新バージョンに保ち不要なものは削除する
テーマやプラグインも常に最新バージョンに保って、不要なものは削除しましょう。脆弱性の一覧からもわかるように、プラグインの脆弱性も多く見られます。WordPress自体を最新バージョンに保っていても、プラグインに脆弱性があれば意味がありません。
テーマはプラグインとセットになっているケースも多いため、テーマも含めて常に最新バージョンに保つ必要があります。
プラグインに自動アップデート機能はありません。以下の手順でテーマやプラグインを最新バージョンに保つ必要があります。
- インストール済みのテーマとプラグインをリスト化する
- 更新情報を定期的にチェックする
インストールしているテーマやプラグインが多くなるほど、脆弱性があるものを利用する可能性が高まります。不要な物を削除すると管理もしやすくなるでしょう。
ログインページや管理画面にIP制限をかける
WordPressを利用する際には、ログインページや管理画面にIP制限をかけましょう。IP制限がかかっていると、攻撃者がログインページや管理画面にアクセスしにくくなります。
オフィスや自宅からのIP以外は受けないよう設定するなら「SiteGuard WP Plugin」を使用すると便利です。
ログインページのURLを変更する
WordPressを利用する前に、ログインページのURLを変更しましょう。WordPressのログインページはデフォルトで「/wp-login.php」になっており、危険性が高いからです。
デフォルトの状態だと、WordPressサイトのドメイン名がわかればすぐにログインページにアクセスできます。簡単にアクセスできないようにするためには、URLの変更が重要です。
定期的に脆弱性診断を行う
利用者が多いWordPressは、脆弱性をついた攻撃の標的にされやすいのも事実です。利用者側でさまざまな対策を実施しても、見つかった脆弱性への対策が行われている期間中も攻撃されるため、完全な対策は難しいと言えるでしょう。
脆弱性対策を行う際には、WordPress自体やプラグインのみではなく、サーバーやネットワークも含めて対策を行わなければなりません。定期的に脆弱性診断を行えば、より信頼性の高い対策が可能になります。
脆弱性診断とは何かについて詳しく知りたい方は脆弱性診断とは(エンジニア向け)と脆弱性診断とは(⾮エンジニア向け)もぜひご参照ください。
WordPressだけのセキュリティ対策だけでは不十分
本記事では、WordPressの脆弱性を紹介しその対策方法について紹介してきました。しかし今回紹介した対策はあくまで最低限のセキュリティ対策でしかありません。より強固なサイトにするためにセキュリティを強化したい企業様はぜひ、弊社の脆弱性診断サービス「Securify」を活用ください。
脆弱性に不安を抱えている企業様は、ぜひご相談ください。