この記事は株式会社スリーシェイク・鈴木雄大氏からの寄稿記事となります。

WordPressは無料で利用できるオープンソースCMSで、全世界の40%程度のサイトがWordPressで作られているとも言われており、日本国内での利用率は80%以上と圧倒的なシェアを誇っています。企業のブログやサイトをWordPressで作成している企業も多いのではないでしょうか。

専門的な知識がなくても記事の投稿やサイト管理ができる利便性の高さから人気がある一方、「WordPressはセキュリティ面に課題がある」「WordPressプラグインに脆弱性が見つかった」といった話を耳にするケースもあり、不安に思う方もいるでしょう。

本記事ではWordPressの脆弱性について触れ、そのうえで取るべき対策法を紹介します。WordPressを利用しているけれどセキュリティ面で不安な方や、脆弱性の観点からWordPressの導入を躊躇している企業の方は、ぜひ最後まで読んでいただければと思います。

目次

  1. WordPressの3つのセキュリティリスク
  2. WordPressのセキュリティインシデントの事例
  3. WordPressを利用するうえでのセキュリティ対策

WordPressの3つのセキュリティリスク

WordPressのセキュリティリスクは大きく3種類あります。

  • WordPress自体の脆弱性
  • ❷ 付随するプラグインの脆弱性
  • ❸ 運用上の不用意な設定内容の公開

➊WordPress自体の脆弱性

WordPress自体の脆弱性とは、WordPressそのものが持っている脆弱性です。
まだ気づかれていない脆弱性や、見つかってはいるものの修正プログラムがまだ提供されていない脆弱性をつく「ゼロデイ攻撃」が行われるケースもあり、攻撃が多様化しているのが現状です。

WordPressの脆弱性は日々報告されており、CVSSによる深刻度や影響する範囲、対応方法について記載されています。

※CVSSとは
情報システムの脆弱性に対する汎用的な評価手法。脆弱性の深刻度を同一の基準で定量的に比較できる。

WordPress自体は常にアップデートされており、脆弱性への対策が実施されていますが、すぐに対策ができるわけではなく、ゼロデイ攻撃もあるため注意しなければなりません。

❷付随するプラグインの脆弱性

付随するプラグインの脆弱性とは、WordPressに機能を追加するプログラムのプラグインの脆弱性のことを指します。たとえWordPress自体に問題がなくてもプラグインに脆弱性が発生すれば攻撃の対象となり、ホームページの改ざんや情報の不正入手などが可能になるのです。

WordPressプラグインには、公式のものと非公式のものがあります。公式プラグインは、ソースコードチェックを行った後にWordPressの公式サイト内の「プラグインディレクトリ」に登録されているものです。

公式プラグインはソースコードチェックが実施されているため、基本的には安全に使用できると考えてよいでしょう。

WordPress 公式プラグイン

出典:WordPress プラグイン

非公式プラグインとは、WordPressの公式プラグインディレクトリに登録されていないプラグインを言います。非公式プラグインを使用する際には、以下の点に注意が必要です。

  • ソースコードチェックが実施されていないため不具合が生じる可能性がある
  • 悪意のあるプログラムが仕組まれている可能性がある
  • 脆弱性が含まれている可能性がある

非公式プラグインを使用するなら、上記の点を理解したうえで使用しなければなりません。
定期的にアップデートされているか」「使用ユーザーが多いか」なども確認して取り扱いに注意しながら利用しましょう。

❸運用上の不用意な設定内容の公開

WordPressプラグインに問題がなくても、WordPressログイン画面管理画面の公開状況が不用意な設定になっていると、外部から不正アクセスされてしまう恐れがあります。

WordPressのログイン画面

出典:はじめての WordPress

デフォルトの設定のままではセキュリティリスクが高いため、対策が必要です。具体的な方法についてはこのあと解説します。

WordPressのセキュリティインシデントの事例

WordPress利用時に起こるセキュリティインシデントとして、近年は不正アクセスによる情報の改ざんが急増しています。

そのなかでも、具体的な2つの事例について紹介します。

REST APIの脆弱性をついた攻撃

2017年2月に起きたREST APIの脆弱性をついた攻撃では、WordPress「4.7.0」および「4.7.1」のバージョンを利用していた155万を超えるサイトが改ざんされる被害が出ました。WordPressに関連する脆弱性のなかでも最悪に分類されるとも言われています。

※REST APIとは
「REST」と呼ばれる設計原則にのっとって構築されたAPIのこと。

REST APIの脆弱性をついた攻撃は、亜種が発見されたこともあって被害が大きくなりました。日付を追って内容を見てみましょう。

  • 2月1日:WordPressによって脆弱性の情報が発表される
  • 2月3日:攻撃が発生、5日まで増加を続ける
  • 2月5日:ファイアウォールに設定されたルールを回避する亜種が発見される
  • 2月7日:亜種による攻撃が増加する

一度改ざんされたサイトが、別の攻撃グループによって再度改ざんされる例も見られました。

WordPressテーマ OneToneの脆弱性

OneToneとは、トップページで多彩なセクションを設定できるWordPressのテーマです。おしゃれで美しいテーマとして人気があり、直感的な操作でカスタマイズできる機能性にも定評があります。

使用者も多いOneToneですが、認証なしでデータベースに侵入できる脆弱性が見つかりました。

データベースに侵入可能なので、データベース言語のひとつであるSQLを注入してのサイトの改ざんや、データの操作を行うSQLインジェクションの攻撃の対象となり、被害が出ています。テーマの削除が必要となったユーザーも多数いたなど、大きな影響が出ました。

WordPressを利用するうえでのセキュリティ対策

セキュリティ対策

WordPressを利用するなら、以下の対策について考えておく必要があります。

WordPress自体の脆弱性に対して

  • 国内外で発見される脆弱性を確認しておく
  • WordPressを常に最新バージョンに保つ

❷ 付随するプラグインの脆弱性に対して

  • テーマ・プラグインも常に最新バージョンに保つ

❸ 運用上の不用意な設定内容の公開に対して

  • インターネット上に公開する必要のない情報(バージョン情報など)は公開しない
  • 外部からアクセスが必要なログインページや管理画面にIP制限をかける
  • ログインページURLを変更する
  • 定期的に脆弱性診断を行う

それぞれの内容を詳しく紹介します。

➊WordPress自体の脆弱性への対策

国内外で発見される脆弱性を確認しておく

WordPressを利用するなら、国内外で発見される脆弱性を確認しておきましょう。情報を集めれば、緊急度の高い脆弱性から対策を始めるなどの判断が可能です。
脆弱性の確認には以下の情報が役立ちます。

JVN iPedia 脆弱性対策情報データベース
WordPress以外の脆弱性含め国内外で発見された脆弱性が確認できる

JPCERT コーディネーションセンター
国内で発見された脆弱性が確認できる

CVE
WordPress含む、世界中の脆弱性を確認することができる

WordPressを常に最新バージョンに保つ

WordPressを使用するなら、常に最新バージョンに保つ必要があります。WordPressは脆弱性を解消する目的で頻繁にアップデートが行われているため、最新バージョンに保つことで脆弱性に対してある程度の対策が可能です。

WordPressに搭載されている自動アップデート機能を利用すると便利ですが、メジャーなアップデートが行われる場合はインストールしているテーマやプラグインが動作しなくなる可能性もあるので注意しましょう。

❷プラグインの脆弱性への対策

テーマ・プラグインも常に最新バージョンに保ち 不要なものは削除する

テーマやプラグインも常に最新バージョンに保って、不要なものは削除しましょう。脆弱性の一覧からもわかるように、プラグインの脆弱性も多く見られます。WordPress自体を最新バージョンに保っていても、プラグインに脆弱性があれば意味がありません。

テーマはプラグインとセットになっているケースも多いため、テーマも含めて常に最新バージョンに保つ必要があります。

プラグインに自動アップデート機能はありません
以下の手順でテーマやプラグインを最新バージョンに保つ必要があります。

  • インストール済みのテーマとプラグインをリスト化する
  • 更新情報を定期的にチェックする

インストールしているテーマやプラグインが多くなるほど、脆弱性があるものを利用する可能性が高まります。不要な物を削除すると管理もしやすくなるでしょう。

❸運用上の設定への対策

上記で紹介した「WordPress本体やプラグインのバージョンアップ」については取り組まれている方も多いと思いますが、見落とされがちなのが運用上の設定」に対する対策です。 不用意に公開している情報がないか、確認しましょう。

インターネット上に公開する必要のない情報は公開しない

例えば、phpのバージョン情報が公開されている場合、それ自体にセキュリティリスクはありませんが、攻撃者が攻撃をする際の糸口や情報となり得ます。

そのため、公開する必要があるものと公開する必要がないものを分けて、公開する必要がないものについては公開しないことでセキュリティリスクを軽減できます。

外部からアクセスが必要なログインページや管理画面にIP制限をかける

WordPressを利用する際には、ログインページや管理画面にIP制限をかけましょう。IP制限がかかっていると、攻撃者がログインページや管理画面にアクセスしにくくなります。

ログインページのURLを変更する

WordPressを利用する前に、ログインページURLを変更しましょう。WordPressのログインページはデフォルトで「/wp-login.php」になっており、危険性が高いからです。

デフォルトの状態だと、WordPressサイトのドメイン名がわかればすぐにログインページにアクセスできます。簡単にアクセスできないようにするためには、URLの変更が重要です。

定期的に脆弱性診断を行う

これらの運用上の設定に対して、攻撃者が攻撃をする際の糸口や情報が公開されていないかを確認する方法のひとつが、ツールを用いた「脆弱性診断」です。

弊社(株式会社スリーシェイク)でも、URLを登録いただくと脆弱性の件数、危険度が一目で確認できる「Securify WordPress診断」を提供しています。

脆弱性診断

WordPressのセキュリティ対策を進めたいけれども、社内で詳しい人がいないため不安を抱えている企業様は、ぜひご相談いただければと思います。