WordPressは、オープンソースで気軽に使うことができるCMSとして有名ですね。
無料で簡単にブログを開設したり、サイトを立ち上げることができるため世界中で利用されています。
有志のユーザーが開発したプラグインやテーマを使うことで自由にアレンジができる点もユーザーが多い理由のひとつです。
無料で便利に使うことができる反面、オープンソースであるがゆえに脆弱性が発見されやすいというデメリットがあります。
今回はWordPressの脆弱性を突いた攻撃事例と対策方法についてご紹介します。
WordPressはオープンソース・ソフトウェアのCMSで、CMSとしては世界的にメジャーなものです。
W3Techsによる「Usage of content management systems for websites」(Webサイトのコンテンツマネジメントシステム利用率)によると、利用率は28.8%と圧倒的にトップとなっています。
WebページはHTMLと呼ばれる言語で作成されていますが、CMSを利用すると、HTMLで全て一から作成する必要がなく、本来見せたい内容のみを作成すれば、HTMLを使わなくてもWebページの作成ができるようになります。
それでは、WordPressの脆弱性を狙った攻撃事例についてご紹介しましょう。
Webコンテンツ管理システムのWordPressはPingback(ピンバック)と呼ばれるリクエストを受け付ける機能が初期設定で有効となっており、本来はブログ中に参照URLリンクを記述することで、参照URLに対して、URLを記載したことを通知するための機能です。
WordPressのダッシュボードでは、
設定→ディスカッション→「この投稿に含まれるすべてのリンクへの通知を試みる 」と「新しい記事に対し他のブログからの通知 (ピンバック・トラックバック) を受け付ける」
がピンバック送信・受信の設定になります。たいてい、デフォルトでオンになっていることが多いようです。
この機能を利用して、WordPressで構築されたWebサイトを踏み台とし、リクエストを毎秒数百件と大量に送りつけることで攻撃対象のサイトをダウンさせる攻撃でした。
この攻撃の特徴は、不正なソフトウェアを感染させるというのではなく、WordPressがもつ機能を利用したという点にあります。
WordPress 4.7.0から4.7.1には、攻撃者が細工したリクエストを送信することにより、投稿内容を改ざんすることが可能な脆弱性が存在します。
これは2017年1月に発覚した脆弱性で、WordPressの不具合の中でも深刻なものでした。
この脆弱性はコンテンツの書き換え権限に関する脆弱性で、権限のないユーザーでも特定の文字列を入力するだけでコンテンツの書き換えができてしまうというものです。
WordPress.orgは即時に脆弱性の修正パッチを公開し、対応を促しましたが攻撃者の行動も早く155万件にも及ぶ被害が出てしまいました。
WordPressの脆弱性が発覚したとき、利用者はどのような対応をすれば良いのでしょうか?
2018年にEUが施行した「一般データ保護規則(GDPR)」に準拠するために役立つプラグインに脆弱性が発見されました。一般データ保護規則(GDPR)とは欧州連合の個人情報を保護に関するルールを定めた規則のことです。
この脆弱性に対するプラグインのアップデートが公開されましたが、適用するまでの間に多くのサイトが攻撃を受けてしまいました。攻撃を受けることによって、Web改ざんやサイトの乗っ取り、不正なサイトへの誘導などの被害が発生してしまいました。
頻繁にバージョンアップしているので、定期的にバージョンアップされているかチェックし、常に最新バージョンを保つようにしてください。
WordPressのダッシュボード上でもWordPress自体、プラグインともにバージョンの通知を確認することができます。
2017年10月12日時点バージョン4.8.2では、
SQLインジェクション、クロスサイト・スクリプティング、ディレクトリ・トラバーサルといった攻撃が可能な脆弱性が修正されています。
>>WordPress修正情報
なお、バージョンアップの際は事前にコンテンツデータをバックアップしておいてください。
WordPressにはバックアップの仕組みを提供するプラグインがいくつか提供されています。
「BackuWPup」や「UpdraftPlus」といったものがあります。
少なくとも、エクスポート機能を使って、コンテンツをWordPressの外に置いておくことは必要です。なお、これだけの場合、復元状況によってはリンクの再設定が発生する場合があるため、多くのコンテンツを扱う場合は、バックアップの仕組みを導入するべきでしょう。
マイナーなテーマやプラグインはバージョンアップの開発自体が止まってしまうことが多いため、もし脆弱性が見つかると対応できなくなります。
実績があり、かつ頻繁に更新が行われている新鮮なものを利用しましょう。
スパムコメントは様々なサイバー攻撃の入り口となるものです。
「Akismet」プラグインはデフォルトでインストールされています。
これも頻繁にバージョンアップしているので、定期的にチェックして最新バージョンになるようにしましょう。
デフォルトは「admin」ユーザとなっていますが、このままだと、パスワードのみで総当たり攻撃される可能性があるため、管理者ユーザIDも変更しておきましょう。
さらに、デフォルトだと、ユーザ名とニックネームが同一になっているので、ニックネームは別のものに変更し、さらにブログ上の表示名をニックネームに変更しましょう。そのままだと、ブログ記事にユーザ名が表示されるためです。
WordPressに限った話ではありませんが、WAFの導入が有効です。
特に、自環境への設定変更といった影響が少なく、かつ専門技術者が不要なクラウド型WAFがおすすめです。
こちらはWordPress自体ではなく、WordPressが利用するWebサーバの仕組みの設定になります。
デフォルトの状態だと、公開しているディレクトリ構造がブラウザなどで見えるようになっている場合があります。
こうなっていると、攻撃者へ攻撃のヒントを与えてしまうことになってしまうので、設定を見直し、外側から見えないようにしましょう。
Webサーバが参照する「.htaccess」を編集することによりアクセスを制限できる例がいろいろ紹介されています。レンタルサーバによっては、レンタルサーバ運営会社により自動的に制限設定されているところもあるようです。
WordPressに脆弱性が発見されたときは速やかに対策を行いましょう。
動作エラーが出ないか確認をしなければならないなど、即時の対応を行うことは難しいとは思いますが、早ければ早いほど安全は確保できるでしょう。
WordPressを利用するときは脆弱性情報に注意しましょう。
WordPressを利用しているとURLのディレクトリに「?author=1」を追加してアクセスするだけで、簡単にIDがわかってしまいます。
アクセスすると、「http://×××.com/author/〇〇〇〇/」と表示され「〇〇〇〇」の部分にIDが表示されます。この方法で誰でも簡単にIDを知ることができてしまうので、「WP Author Slug」などのプラグインをインストールしてIDが見られないように対策しましょう。
脆弱性を突くサイバー攻撃への対抗策として、前述のセキュリティアップデートを適用する以外の安全な方法に、WAFを導入するという方法があります。
WAFを導入することで脆弱性を突いた攻撃を防ぐことができるようになります。
WAFには色々なものがありますが、その中でもクラウド型WAFであれば、コストや手間も少なくセキュリティ対策することができます。
クラウド型のWAFは導入ハードルが極めて低いので、これからWebセキュリティ対策を行う企業様には有力な選択肢となります。
WAFを選定する時には、サポート体制や導入実績なども重視して、自社に最適なものを選びましょう。
クラウド型WAF「攻撃遮断くん」は、最新の攻撃パターンにも自動的に対応していくため、セキュリティパッチをすぐに適用できない状況や、定期的に脆弱性診断が出来ない状況でも、セキュアな環境を保てます。
ぜひこの機会にWebセキュリティ対策を見直し、WAFの導入を検討してみてください。
「攻撃遮断くん」の詳細資料は、こちらからダウンロード頂けます。
(2017/10/26 執筆、2019/6/3修正・加筆)
この記事と一緒に読まれています
2019.09.11
セキュリティ対策
2019.11.22
用語集
2017.06.19
セキュリティ対策
あなたの企業は大丈夫?中小企業の情報セキュリティ対策の実態とは?-その1-
2019.09.10
セキュリティ対策
あなたの企業は大丈夫?中小企業の情報セキュリティ対策の実態とは?-その2-
2019.09.11
セキュリティ対策