個人事業主としてフリーエンジニアをしている木下です。
CMS(コンテンツマネジメントシステム)として普及しているWordPress、いまやWebサイト開設として定番となっています。
しかし、使っていると気になるのがセキュリティやアップデートの頻度です。WordPressのセキュリティアップデートはかなりの頻度で公開されています。しかし、WordPressを稼働させ運用段階に入ると意外と公開されるセキュリティ情報に気を配らないことやアップデートが軽視されているケースに出くわします。
WordPressはCMSとして手軽で便利です。しかし、稼働させ続けるのであれば他のソフトウェア同様に適切なセキュリティ対策と運用体制が必要となります。手軽で便利だからメンテナンスフリーというわけではありません。
WordPressを安全に稼動させる上で、考えておくべきこと
- WordPressが狙われる理由はCMSとして圧倒的なシェアがあるから。
- シェアが多いソフトウェアは攻撃対象が多い=セキュリティホールを狙われやすい。
- Webサイトはそのほとんどが「誰もがアクセスできる環境」であることも狙われる理由。
- いざセキュリティホールを突かれ不正改ざんの被害に遭っても、気づかないことが多い。
- 不正改ざんの被害を手動で確認するには、コンテンツ一つ一つを目で見る必要がある。
- 手作業で不正改ざんの被害に遭ったかどうかを確認するのは現実的ではない
つまり、安全に稼働させるためにはセキュリティを確保するための定期的な作業が必須となります。
侵害されるWordPress
お付き合いのある同業者とお会いした時、疲れた表情でこう言っていました。
「セキュリティの問題が起こってね・・・。不正改ざんの被害にあったようなんだ。もう、大変。」話をもう少し詳しく聞いてみると、Webサーバーの運用は外注しておりコンテンツもWeb制作会社で作ったものを公開してホームページを運営していたので、これだけであれば問題がありませんでした。
一方、ユーザー企業(クライアント側)では、「情報発信できるランディングページをいくつも設置しよう。」と考えました。しかし、いちいちWeb制作会社にコンテンツの追加・編集を発注しなければならなかった従来のホームページではそのスピード感に追従できないことになります。「社内のニュース記事や担当者の生の声を発信するようなリアルタイム性があるコンテンツは、自社更新するようにして従来のホームページとは別に用意しよう。」という方針になりました。それなら、ちょっとしたコンテンツ追加に見積もり⇒発注⇒コンテンツ更新⇒納品処理、と時間が掛かることがなくなります。こうしてユーザー企業内のある部署がWordPressを追加したのが発端となります。
WordPressはサーバーにインストールされていたWebサーバープログラムこそ利用するのですが、CMSとしては全く独立した存在です。ユーザー企業としてはホームページコンテンツの一部ディレクトリにWordPressが含まれることで当然今までのWebサーバー運用が適用され外注先の作業範囲になると考えていました。
つまり、クライアント側の社内ユーザーは「サーバーやコンテンツの管理は外注しているからちょっとした変更くらい大丈夫だろう。」と考えWordPressを使い始めました。社内の管理者は「アップデートを含むセキュリティ確保は外注しているからWebサーバーには何もしなくて良い。」という位置付けでWebサーバーが稼働しています。Web制作会社としては「委託されたコンテンツさえセキュリティが確保されていれば契約上問題ない。」というステータスのもと契約されたApacheやNginxのようなWebサーバー上のWebコンテンツだけはしっかりと手を掛けていましたがWordPressのコンテンツは関与していませんでした。同じくWebサーバー運用の外注先でも「ApacheやNginxのようなWebサーバーとそのOSのセキュリティホールが発見されれば速やかにアップデートしコンテンツに影響が出ないようにする。」ということを定例業務として実施していましたが、CMSであるWordPressはそもそも対象の範囲に入っていませんでした。
社内ユーザーでは「外注先に運用は全部任せているから大丈夫」、外注先としては「契約したのはWebサーバー(WordPressの運用は含まれていません)」となります。その中でWordPressは運用側にその存在を知られないまま稼働することになりました。このギャップがそもそもの発端となります。
外注先の運用から外れていたWordPressはインストール時のバージョンのまま稼働していたためにセキュリティホールが顕在化した後も誰もバージョンアップ作業をすることなく稼働した結果、セキュリティホールを突かれたコンテンツは不正改ざんの被害に遭うという結末を迎えます。
WordPressは優れたシステムですので、既存のWebサーバーに手軽にかつ簡単に追加することが可能です。しかしその手軽さ・簡単さゆえに、それほどシステムに精通していないユーザーでも追加が可能であるところに落とし穴があります。簡単で手軽に追加したWordPressがWebサーバーと同じにしか見えないユーザー側では「まさかセキュリティアップデートはWebサーバーの契約範囲に含まれないとは…。」となりますし、Webサーバーの運用を生業としている側からすれば「WebサーバーとWordPressのようなCMSは別物、契約範囲外です。」と認識します。結局この認識の相違がセキュリティの穴になってしまったといえます。
なぜWordPressが狙われるのか
圧倒的に使われている規模が違うからです。
引用:Usage of content management systems for websites
https://w3techs.com/technologies/overview/content_management/all参考:全世界のサイトの4分の1はWordPressで作られている
https://gigazine.net/news/20151109-wordpress-make-quarter-web/
使っている人が多ければ、狙う人も多くなる、という構図です。
Windowsのセキュリティホールがいくつも発見され、そのセキュリティホールが狙われる、というのも、9割近くのコンピュータでWindowsが稼働しているから、という点が理由の一つにあることと似ています。使う人が多ければそれだけ狙われることになります。本記事作成時点でも直近でWordPressには細工したリクエストを送信することによって認証をすり抜けて外部から投稿内容の改ざんが可能となる「コンテンツインジェクション」という脆弱性が公表されています。
参考:IPAセキュリティセンター:WordPress の脆弱性対策について
https://www.ipa.go.jp/security/ciadr/vul/20170206-wordpress.html
ただ、こういったセキュリティの問題を避けるためにWordPressを使わない、という選択をするのは問題解決の方法としては少々ズレた対処となってしまいます。
重要なのは脆弱性が発表された後に速やかなアップデートの適用ができるかどうか、また不正アクセスが発生する前にその兆候を検知できるか、万が一不正な改ざんが実行されてしまったとしても速やかにその不正アクセスを対処できるか、という点が重要になります。
横行する不正改ざん
IPAでは
- 最新版が公開されてから速やかにアップデートする
- 最新版に更新する際に改ざんされていないか、確認してから更新を実行する
といったことを推奨しています。
最新版が公開されてから速やかにアップデートする、というのはイメージがつきやすいのですが、「改ざんされていないかを確認する」という作業は意外と難しいものです。
Webサイトの不正改ざんとは、ソフトウェアのバグに起因する脆弱性(セキュリティホール)を利用して実行されることが多くあります。本記事で言えばWordPressの脆弱性を突いてWordPressで管理しているコンテンツやWebサーバー自体を攻撃するという手法です。
Webサイトの不正改ざんとは、ソフトウェアのバグに起因する脆弱性(セキュリティホール)を利用して実行されることが多くあります。本記事で言えばWordPressの脆弱性を突いてWordPressで管理しているコンテンツやWebサーバー自体を攻撃するという手法です。
例えば本来表示されるべきURLが別のURLに書き換えられていて、その書き換えられたURLがマルウェアをダウンロードするように仕組まれたページであったり、フィッシング目的の入力フォームだったりします。いくら信頼できる企業のページでも不正に改ざんされたWebページは閲覧者を攻撃し情報を搾取する動きをします。この手の改ざんはページを1ページずつ見ていけば発見できることもありますが、ページ数が多ければ人手で確認するのは現実的ではないでしょう。
コンテンツが改ざんされていなくても安心はできません。不正改ざんによってそのサイトにバックドアが設置されているケースもあります。この場合いくらコンテンツを見ても不正に設置されたプログラムを確認することはできません。
こういった不正改ざんの被害を受けることで、閲覧者を攻撃することにもつながってしまいます。
なぜこんなに不正改ざんに注目が集まっているか、といえば、現在のセキュリティインシデントのうちWebサイトの不正改ざんの被害件数が全体に占める割合が多いことがその理由です。
JPCERT/CC インシデント報告対応四半期レポート
https://www.jpcert.or.jp/ir/report.html
本記事執筆時点での最新版である2017年1月11日公開のレポート
JPCERT/CC インシデント報告対応レポート[2016年10月1日~2016年12月31日]を見てみましょう。
このレポート内に、「カテゴリ別インシデント件数」という箇所があります。
このインシデント件数を見てみると、攻撃の前準備段階で実施される「スキャン」に次いで発生件数の多いインシデントが「Webサイト改ざん」が挙げられています。攻撃の前段階となるスキャンが多いのは当然ですが、実害が発生する具体的な攻撃の中で一番多いセキュリティインシデントがWebサイトの不正改ざんであることが分かります。その件数は一般的にセキュリティのイメージであるマルウェアの被害やフィッシングサイトよりも件数自体が多いことからも「いまWebサイトの不正改ざんが狙われている」ということが分かります。
そして、冒頭にも書きましたが、改ざんされたWebサイトの多くではWordPressに代表されるCMSが使用されていた、という記述があります。ただし、これも前出のURLに記述があるCMSのシェア比較を見てみれば圧倒的なシェアを持つWordPressが主な攻撃対象になっていると考えることができます。このJPCERT/CCのレポートでは具体的な攻撃手法の事例も紹介されていますので、興味のある方は確認をおすすめします。
※ インシデント対応事例の【WordPress などのCMSを使用したWebサイトの改ざん】という箇所が参考になります。
手動の確認が難しい不正改ざん
結局のところ、手動で確認するということは現実的ではありません。
WordPressの脆弱性を突いた不正改ざんがログに残るかどうかは攻撃手法に依るでしょうし、ログに残ったとしても攻撃者がその部分のログだけを消去してしまうかもしれません。
コンテンツが改ざんされたにしても一つ一つについてマスタデータと見比べるのは現実的ではありませんし、人の目で見るにも限界があります。なによりWebサイトはOSやWebサーバーを管理するシステム管理者とWebサイトの運用(コンテンツとサーバーの運用担当者)とWebコンテンツの制作者(制作会社など)の狭間でシステムとコンテンツのセキュリティをどのように確保していくかのステークホルダーがうやむやになりがちな一面もあります。例えばOSやWebサーバーであるApache・Nginxはシステム管理者が担当し、ウワモノとなるWordPressのようなCMSはWebサイトの運用者が担当する、コンテンツはWeb制作会社が担当する、といった棲み分けをしている場合です。この場合セキュリティの問題を予防するにはどの担当者が何をやればよいか、という線引きが難しくなりがちです。やはりこういった作業はコンピュータで自動化するに限ります。
まとめ
- WordPressの運用に置いて、不正改ざんといった被害に遭わないために定期的なアップデートは必須。
- WordPressは使っている人が多い=シェアが高い、シェアが高いソフトウェアは攻撃対象として狙われることが多い。
- WordPressのセキュリティ侵害において、原稿執筆時点において不正改ざんの被害が最も多い。
不正改ざん(に限らないかもしれませんが)は、その被害に遭ったかどうかを手動で確認することが難しいため、あらかじめご自身でお使いのWordPressに対しては不正改ざんを検知する仕組みを用意しておくことが結果的にWordPressのセキュリティを向上させることにつながります。
この解決策としてSiteLockというソリューションが提供されています。
https://saas.gmocloud.com/service/websecurity/
小規模サイトであれば月あたり385円(税込)程度から始めることができるセキュリティ対策となります。
このソリューションではアプリ診断の機能でWordPress脆弱性診断を実施することができ、自社WordPressサイトの情報を登録して診断頻度を設定しておけば自動的に定期診断を実行してくれます。このため自身のWordPress環境に狙われやすい脆弱性があれば診断の都度発見可能になりますし、定期的に診断結果を受け取ることで意識せず脆弱性のあるバージョンのWordPressを利用し続けることもなくなります。加えて月額1,320円(税込)のレギュラープランでは、SMART診断という機能を利用することによって、第三者によってWebサイトが不正に改ざんされた形跡を定期診断して、不正コンテンツの検知時はマルウェア駆除など復旧作業を行います。そのため、本記事で挙げた不正改ざんの確認を自動化することも可能になります。
執筆者プロフィール
- 木下肇
- 現在フリーのエンジニアとして契約先企業のインフラ構築・管理の傍ら、ライターとしても活動中。分かりにくい技術を分かりやすくすることに日々腐心しており、ITのことが分からないという顧客から好評を得ている。