WordPressは現在、ウェブサイトを構築するもっとも人気な手段です。一方、その人気故に世界各地からの悪意ある攻撃のターゲットになりやすい、というマイナスな面もあります。それでは、WordPressはそのような攻撃に対処するだけの安全性を備えているのでしょうか?

残念なことに、毎年何十万ものWordPressサイトやECサイトがハッキングされています。(ちなみにECサイトにおける詐欺対策に関する記事も公開しています)

恐ろしい事実です。ただし、よいお知らせもあります。

ハッカーによる侵害は、最新のWordPressコアの脆弱性が原因ではありません。ウェブサイトがハッキングされる理由の大半は、更新の見逃しや安全でないパスワードの使用など、本来予防できるはずのもの。

そのため、「WordPressは安全なのか」という質問に単刀直入に答えることは難しく、以下のような様々な角度から検証しながらご説明します。

データで見るWordPressサイトのハッキング手段

毎年多くのWordPressウェブサイトがハッキングされていることは前述のとおりですが、一体どのような経路でハッキングされているのでしょうか。世界共通のWordPressの問題なのでしょうか。それとも、サイト管理者の行動が要因なのでしょうか。

多くのWordPressサイトがハッキングされている理由をデータに基づいてご紹介します。

古いコアファイル

まず、Sucuri公開の2017年にハッキング被害を受けたウェブサイトに関するレポートから、当然と言えば当然の相関関係をご紹介します。Sucuriが調査した、ハッキングに遭ったWordPressサイトのうち39.3%が、ハッキング当時に古いバージョンのWordPressコアを使用していました

ハッキングされたウェブサイト

ハッキングされたウェブサイト (画像出典:Sucuri)

このようにハッキングと古いバージョンの使用は密接に関係していることが分かります。ちなみにですが、2016年の割合は61%でしたので、それと比較すると大幅に改善しています。👏

WPScanの脆弱性データベースによると、記録された既知の脆弱性の約74%がWordPressコアファイルにあります。しかし、最も脆弱性の高いバージョンは、WordPress 3.xxです。ここがミソです

WPScanの既知の脆弱性リスト

WPScanの既知の脆弱性リスト

残念ながら、最新版を使用しているのは、WordPressサイト全体のうちたったの62%です。多くのウェブサイトが攻撃に対して不必要なリスクを抱えていることになります。

WordPressのバージョン別使用状況

WordPressのバージョン別使用状況 (画像出典:WordPress.org)

2017年2月に発覚したWordPressの重大なREST APIにおける脆弱性による、数十万ものウェブサイトの改ざんも、この相関関係を示すよい例です。

WordPress 4.7.1には複数の脆弱性が見られ、結果的にウェブサイトの改ざんに悪用されてしまいました。しかし、実は攻撃の数週間前には、この脆弱性をすべて修正したWordPress 4.7.2がリリースされていました。

自動セキュリティパッチを有効化していた、またはWordPress 4.7.2にすばやく更新したウェブサイトは攻撃を受けませんでした。一方、更新をしなかったサイトは悲惨な目に遭ってしまいました。

要点:WordPressのセキュリティチームは、WordPressコアファイルに介在する問題をすばやく処理しています。すべてのセキュリティアップデートを迅速に適用していれば、本体の脆弱性による攻撃を受ける可能性は極めて低いでしょう。しかし、それを怠ると攻撃を受けた時にリスクに晒されます。

2. 古いプラグインやテーマ

WordPressが多くの人に愛されている理由の1つは、プラグインとテーマの種類が非常に多いことでしょう。本稿執筆の時点では、WordPressリポジトリには56,000以上のプラグインとテーマが存在し、他にも有料のものがウェブ上に無数に存在します。

テーマやプラグインはサイトの機能を拡張するのに便利ですが、悪意のある攻撃の潜在的なリスクにもなります。大半のWordPressの開発者は、コードの標準に従い、修正が必要とされる点が発覚した場合には、適宜パッチをリリースしていますが、それでも次のようなリスクが考えられます。

これらの課題はどれほど深刻なのでしょうか。

Wordfence公開のハッキングされたウェブサイトに関する調査によると、“ハッキング経路が発覚している”ウェブサイトの運営者のうち60%以上が、攻撃の要因がプラグインまたはテーマの脆弱性だったと述べています。

Wordfenceのハッキングされたウェブサイトについての調査

Wordfenceのハッキングされたウェブサイトに関する調査 (画像出典:Wordfence)

同様に、Sucuriの2016年のレポートによると、同社が調査したハッキングされたウェブサイトのうち、15%以上で3つの特定のプラグインが原因となっています。

Sucuriのハッキングされたプラグインのリスト

Sucuri公開のハッキング対象となったプラグイン

ただし、ここからが重要です。

上記のプラグインの脆弱性はすでに対処されていたにもかかわらず、サイト所有者がプラグインの更新を行っていなかったのです。

要点:WordPressのテーマとプラグインはリスクになる可能性があり、サイトを悪意のある攻撃に晒すことがあります。一方、ベストプラクティスに従うことでリスクを大幅に軽減できます。テーマとプラグインを常に最新のものに更新し、信頼できるソース以外からはインストールしないようにしましょう。

また、GPL Clubについても触れておきたいと思います。GPL Clubでは有料のWordPressプラグインやテーマをほんの数ドルで入手することができます。WordPressもGPLの提唱する「フリー(無料+自由)」ライセンスの対象であり、それ自体は素晴らしいことですが、購入する際は注意が必要です。このプラグインは、言うなれば、一種の「非正規プラグイン」です。

GPL Clubでプラグインを購入すると、その更新を第三者に一任することになります。また、サポートが完全でないことも日常茶飯事です。本当の開発者から直接プラグインのアップデートを取得するのが最も安全な方法です。また、開発者の努力に報い支援してあげたいと思うのは自然なことでしょう。

3. WordPress、FTP、レンタルサーバーのログイン情報を対象にした攻撃

こちらはWordPress側の欠陥ではありません。しかし、ハッキングされるケースのうち相当数が、WordPressやレンタルサーバー、FTPアカウントのログイン情報を悪意ある人物に盗まれることによって起こります。

先ほどのWordfenceによる調査では、ブルートフォース攻撃が、サイトにおけるハッキングの原因の約16%を占めています。パスワードの盗難、Workstation、フィッシング、FTPアカウントが原因のケースも、割合は少ないものの無視できません。

WordPressウェブサイトがいくら安全でも、悪意のある人物が「侵入する鍵」を入手してしまうと為す術がありません。

WordPressでは安全なパスワードを自動生成することでこのリスクを軽減しています。しかし、パスワードを安全に保管し、レンタルサーバーやFTPにも強力なパスワードを使用するかどうかはユーザー次第です。

要点:アカウント情報を守ることにより、悪意のある攻撃を予防できます。ブルートフォース攻撃を防止するためには、すべてのWordPressアカウントで強力なパスワードを使用し、不正ログインを制限しましょう。(Kinstaのホスティングプランではこれがデフォルトで実装されています👍)。

レンタルサーバーのアカウントでは、可能であれば必ず二要素認証を使用し、FTPパスワードをプレーンテキストで保存しないようにしましょう(FTPプログラムの一部ではそうしているものもあります)。

FTPとSFTP(SSHファイル転送プロトコル)のどちらかを選択できる場合には、必ずSFTPを選択してください(関連記事:FTPとSFTPの違い)。ご利用のレンタルサーバーでFTPしか利用できない場合は、SFTPのサポートを依頼するか、SFTP対応のレンタルサーバーに移行することをお勧めします。これにより平文のパスワードやファイルデータは一切転送されません。Kinstaでは、SFTPのファイル転送のみをサポートしています。

4. サプライチェーン攻撃

最近ではハッカーがサプライチェーン攻撃という厄介な手法を使用してウェブサイトにアクセスする事案が増えてきました。これは悪意のある人物が次の手順でハッキングを行うことを意味します。

興味のある方は是非Wordfenceの詳しい記事もご確認ください。このような攻撃はまだそこまで普及していませんが、ユーザーが行わなければならないこと(=プラグインの更新)を利用しているため、防止しにくいという難点があります。

一方、WordPress.orgの担当者は通常、上記のような問題をすばやく見つけ出し、ディレクトリから該当のプラグインを削除しています。

要点:最新のバージョンに更新することはむしろ推奨される行為ですので、この攻撃は防止しにくいと言えます。そこで、WordfenceなどのセキュリティプラグインをインストールしてWordPress.orgからプラグインが削除された際に警告が表示されるようにし、すばやく対応しましょう。さらに、バックアップを準備しておくことで、サイトを復元し取り返しのつかないダメージを防ぐことができます。

5. 劣悪なホスティング環境と旧式のテクノロジー

WordPressサイト自体の問題の他にも、ホスティング環境とご利用のテクノロジーも大きな影響をもたらします。たとえば、PHP 7はPHP 5と比べてはるかにセキュリティが強化されているにもかかわらず、PHP 7以上を使用しているのはWordPressサイト全体のたった33%です。

WordPressウェブサイトのPHP使用状況

WordPressウェブサイトのPHP使用状況 (画像ソースWordPress.org

PHP 5.6のセキュリティサポートは、2018年末に正式に終了しています。また、それ以前のPHP 5のバージョンに至っては、何年もの間セキュリティサポートが提供されていません。

つまり、5.6未満のPHPバージョンを使用したホスティング環境を使用すると、問題の修正がされていないPHPの脆弱性というリスクに晒されてしまいます。

その事実にもかかわらず、WordPressサイトの28%が未だに5.6未満のPHPバージョンを使用しています。近年、記録的な数のPHPの脆弱性が発覚していることを考えると、これは大きな課題です。

安全なWordPressサーバーを使用すると、最新のテクノロジーを利用できるだけでなく、次のような機能によりセキュリティ上のリスクを大幅に軽減できます。

要点:安全なホスティング環境、PHPといった、重要なテクノロジーについて最新バージョンを使用することにより、WordPressウェブサイトの安全性を高めることができます。

WordPressのセキュリティの責任分担

さて、では上記の問題に対処する責任は一体誰にあるのでしょうか?

正式にはWordPressのセキュリティチームです。(一方、世界中の個人の貢献者または開発者もWordPressの安全性に貢献しています)

WordPressのセキュリティチームは、「リード開発者やセキュリティ研究者を含む50人の専門家」で構成されます。これら専門家の約半数はAutomatticの社員です。残りはウェブセキュリティの分野で働いています。加えて、セキュリティ分野の学者やレンタルサーバーに助言が求められることもあります。

WordPressセキュリティチームの仕事についてご興味がある方は、WordCamp Europe 2017でのAaron Campbell氏による48分の講演をご覧ください。要点のみご説明すると、WordPressのセキュリティチームは次のことを行っています。

WordPressセキュリティチームは、バグの修正に成功しセキュリティの改善版をリリースすると、その内容を公表するという方針を定めています。(2017年に数多くのウェブサイトが攻撃を受けた理由の一つはこの方針にあるとも言えます。該当のウェブサイトはセキュリティチームがバグを公表した後も更新を行わなかったため標的となってしまいました…

一方、WordPressのセキュリティチームの所掌外となるのは、WordPress.orgのテーマやプラグインのチェックです。WordPress.orgのテーマ、プラグインは、ボランティアにより手動でチェックされます。しかし、そのようなチェックにセキュリティの脆弱性を確実に発見、排除できる保証はありません

ベストプラクティスに従えばWordPressは安全なのか

これまでご紹介したデータと事実を総合的に見ると、次の傾向がわかります。

100%安全なコンテンツ管理システムというものは存在しませんが、WordPressコアは高いレベルでのセキュリティ性能を誇ります。ハッキングの大半は、サイト管理者が基本的なセキュリティ上のベストプラクティスに従わなかったことが原因で発生しています。

次のベストプラクティスに従えば、WordPressの利用は安全であり、サイトが今後ハッキングされる可能性は低いでしょう。

Kinstaのお客様はご安心ください。ウェブサイトが万が一当社サーバーでのホスト中にハッキングされても、無料でエンジニアがサイトの復旧をいたします。


この記事はお気に召しましたでしょうか。KinstaのマネージドWordPressホスティングサービスもご確認ください。ウェブサイトをスピードアップし、知識・経験豊富なWordPressに精通したエンジニアによるカスタマーサポートを24時間365日ご利用いただけます。Google Cloudを使用したインフラストラクチャは、スケーラビリティ、パフォーマンス、およびセキュリティに特化。Kinstaの魅力はまだまだ他にもございます。当社のプランをご確認ください。