Dyno

「 WordPress は脆弱性が多い」は本当か?

今回は巷でときどき言われる「 WordPress は脆弱性が多い」という主張の真偽を検証してみました。

あるソフトウェアの脆弱性を多いと見るか少ないと見るかはあくまでも相対的な評価なので、「何と比較するか」を決めないことには議論になりません。 今回は対象を次の 2 つの切り口で比較・検証することにしました。

  1. WordPress vs. WordPress 以外のオープンソース CMS
  2. WordPress vs. オープンソース CMS 以外のサイト制作手法

1. WordPress vs. WordPress 以外のオープンソース CMS

まずは WordPress と WordPress 以外のオープンソース CMS の比較です(ご存知でない方のために補足すると、 WordPress もオープンソース CMS のひとつです)。 オープンソース CMS は世の中に無数にありますが、今回はその中から世界的にシェアが高い次の 4 つを比較対象に選びました。

  • Joomla!
  • Drupal
  • Magento
  • TYPO3

WordPress とこれらの CMS の CVE ( Common Vulnerabilities and Exposures )に登録されている脆弱性の数を比較すると次のようになります。

CMS 脆弱性の数 (A) 期間 (B) 年平均の脆弱性の数 (A ÷ B)
WordPress 342 2004 年 - 2019 年 21.3
Joomla! 382 2005 年 - 2019 年 25.4
Drupal 333 2002 年 - 2019 年 18.5
Magento 84 2015 年 - 2019 年 16.8
TYPO3 196 2005 年 - 2019 年 13.0

年別のトレンドをグラフにすると次のようになります。

WordPress とメジャー CMS の脆弱性の数

出典はいずれも CVE Details です。

このデータを見ると、 WordPress は年平均の脆弱性の数が 21.3 です。 これは 5 つの CMS の中で 2 番目に高い数字です。 5 個中 2 番目というのは多いといえば多いのですが、他の CMS もそう変わらない数字なので、この事実をもって「 WordPress は脆弱性が多い!」と言ってしまうのはちょっと無理がありそうです。

たとえば「他の CMS がどれも年間 20 件そこそこなのに、 WordPress だけ毎年 50 件以上が続いている」という感じなら「 WordPress は脆弱性が多い」と言えますが、このデータを見るかぎり「どれもそう大差無い」と解釈するのが妥当かと思います。

2. WordPress vs. オープンソース CMS 以外のサイト制作手法

続いて「オープンソースの CMS 」以外のサイト制作手法との比較です。 具体的には次のようなものが比較対象として考えられます:

  • プロプライエタリ CMS
  • クラウドサービス CMS
  • ウェブアプリケーションフレームワーク
  • 静的サイトジェネレーター
  • 静的サイト

ひとつめの「プロプライエタリ CMS 」は企業がソースコードを公開せずに開発している CMS のことです。ふたつめの「 クラウドサービス CMS 」というのは、インストールやセットアップが必要ない CMS で、有名どころだと Shopify や Squarespace や Wix 等があります。 その他はすべて CMS 以外のサイト制作手法・ツールです。

これらと WordPress の脆弱性の数を比較するとどうなのか、なのですが……そもそも公平な比較をするのが難しいものばかりです。

たとえばプロプライエタリ CMS と WordPress の比較を考えてみましょう。 プロプライエタリ CMS はソースコードを公開していないため、オープンソースの WordPress と同じプロセスで脆弱性が発見されるわけではありません。 プロプライエタリ CMS では脆弱性が存在してもその内容が公開されない場合もあるでしょう。

また、多くのプロプライエタリ CMS と WordPress では利用数が桁違いに異なります。 CMS の脆弱性の検出率というのは利用数が多ければ多いほど上がるものですが、 WordPress の利用数は圧倒的に高く、プロプライエタリ CMS の中で利用数が WordPress の 100 分の 1 あるものはほとんど存在しません。 これは単純な算数で、たとえば 1,000 万個のサイトで使われている WordPress とその 1 万分の 1 の 1,000 個のサイトで使われているプロプライエタリ CMS について「検出された脆弱性の数」を比較したとしても、それは公平な比較とは言えないでしょう。 WordPress と同等に使われているプロプライエタリ CMS があれば比較もできますが、そんなプロプライエタリ CMS は現時点では存在しません。

ウェブアプリケーションフレームワーク(以下「フレームワーク」)と WordPress の比較についても同様で、公平な比較が難しいです。 フレームワークはウェブアプリケーションを作るための「道具」にすぎません。 他方の WordPress は単体で利用できるウェブアプリケーションで、いわば「完成品」です。 道具と完成品をそのままで比較するのは不可能です。 それは自動車のパーツと完成車について安全性を比較しようとするようなものです。

静的サイトジェネレーターや静的サイトについては、 WordPress とは仕組みがそもそも異なるので脆弱性の数の比較自体がナンセンスだと思います。 「 WordPress のような動的 CMS は静的サイトや静的サイトジェネレーターに比べてセキュリティ面で注意すべき点が多い」というのは事実ですが、「 WordPress は静的サイトに比べて脆弱性が多いからダメだ」と言うのは間違いです。 それを言うのは「トヨタの車は徒歩に比べて事故が多くて危険だ」とか「 SONY のスマートフォンはそろばんよりも脆弱性が多くて危険だ」と言うのと同じです。 比較対象が間違っています。 それをあえて言うのは「 WordPress はよくないですよ」というメッセージを伝えるためのただの印象操作です。

つまり、 WordPress とその他のサイト制作手法について脆弱性の数を比較するのは無理があります。

以上のデータと考察をまとめると以下のことが言えます。

  • WordPress は他の CMS と比べて脆弱性が少ないわけではないが特別に多いわけでもない
  • WordPress と CMS 以外のツールの脆弱性の数を比べるのは難しい

ということで、巷でときどきまことしやかに言われる「 WordPress は脆弱性が多い」という主張は間違いだというのが今回の結論になります。 ご参考になれば幸いです。

勘違いしていただきたくないのですが、「 Wordpress は脆弱性が多い」という主張が間違っているということは、「 WordPress はどんな使い方をしても大丈夫、どんな使い方をしても安全である」ということを意味しません。 WordPress を利用するときには(他の CMS を利用するときにも)適切なセキュリティ対策を行った上で利用するというのが大前提なので、そこは外さないようにしましょう。