1. 改ざんのメインターゲットはCMS
かつてウェブサイトを公開するには、HTMLやファイル転送の仕組みを理解する必要がありました。今はコンテンツ・マネジメント・システム(CMS)を利用することで、コンテンツさえあれば誰でも簡単にウェブサイトを公開することができます。CMSには豊富なテンプレートや拡張機能が用意されており、コンテンツのイメージに合った個性豊かなウェブサイトを作ることができるため、個人だけでなく、官公庁の広報サイト、社内ポータルサイトなど、官民問わずたくさんの人に使われています。
しかし、この便利なCMSを使ったウェブサイトは、攻撃のターゲットにされやすい状況にあります。JPCERT/CC(※1)の2016年の活動報告によると、JPCERT/CCが対応するインシデントのうち約3割が「ウェブサイト改ざん」であり、改ざんされたウェブサイトの多くがCMSを利用していたようです。さらに対応の4割近くを占める「スキャン」では、CMSやその拡張機能を対象とした脆弱性調査と思われる活動が観測されています。
- ※1 JPCERT/CC, "インシデント報告対応四半期レポート"
https://www.jpcert.or.jp/ir/report.html(外部リンク)
■JPCERT/CC活動報告(1~3月,4~6月,7~9月)をもとに作成
2. なぜCMSが標的になっているのか?
CMSが標的になる理由として、「攻撃できる範囲の広さ」と「攻撃の糸口の多さ」が挙げられます。CMSの開発は世界的に活発で、現在リリースされているCMSは数百種類を超えています。W3Techs(※2)によるシェア調査(※執筆当時:2016年11月)は、352種類のCMSを対象として実施されました。世界の約半数のウェブページがCMSで作成され、内6割は「WordPress」(※3)を利用しており、「Joomla!」(※4)、「Drupal」(※5)が続きます。この調査では、75%のCMSは利用者が0.1%以下となっています。
- ※2 W3techs
https://w3techs.com/(外部リンク) - ※3 WordPress
https://ja.wordpress.com/(外部リンク) - ※4 Joomla
https://www.joomla.org/(外部リンク) - ※5 Drupal
https://www.drupal.org/(外部リンク)
すべてのウェブサイトのうち27.2%はWordPressで作成されたものです。WordPressは豊富な拡張機能、Joomla!は利用の手軽さ、Drupalは柔軟な構築が可能なことから人気を集めています。ユーザが多く、ユーザ同士のコミュニティが盛んなシステムは、蓄積されたトラブルシューティングのノウハウから適切な解決策を得られる可能性が高くなります。従って、CMSを選定・運用する立場の人にとっては、「上位のCMSは魅力的である」と感じられるでしょう。
一方、攻撃者にとっても「上位のCMSは魅力的」です。CMSは「攻撃できる範囲が広い」魅力的なターゲットです。たった3種類のCMSを攻撃する方法を知っているだけで、すべてのウェブサイトの約3割、CMSを使ったウェブサイトの7割を攻撃することができるからです。CMSの多くはオープンソースで提供されていますから、ソースコードを取得して攻撃ツールを作成するのも容易です。
さらに、ユーザにとって便利な「拡張機能」も、攻撃者のターゲットとなります。豊富な拡張機能は、一方で適切な管理・パッチ適用の見逃しを招きます。以下のグラフは、脆弱性対策情報を収集・提供するデータベースJVN iPedia(※6) から、CMSにかかわる項目をカウントしたものです。脆弱性の多くがCMSの「拡張機能」に含まれる傾向にあることは以前より指摘されていますが、このグラフからもその様子を見て取ることができます。拡張機能が管理されず脆弱性が大量に残存している環境は、攻撃者から「攻撃の糸口が多い」環境といえるでしょう。
- ※6 JVN iPedia
http://jvndb.jvn.jp/(外部リンク)
3. CMSのリスクと関連事例
CMSのリスクは、大きく以下の2つに分類されます。
(1)CMS本体および拡張機能の脆弱性を悪用する
攻撃者は主要なCMSの脆弱性情報を保有し、ウェブサイトを自動的に巡回して攻撃対象を探しています。ウェブサイトの運営者は、このスキャン行動に対して「ウェブサイトの脆弱性」を修正しますが、「拡張機能の脆弱性」は見落とされがちです。多くの拡張機能はCMS本体とは別の開発者によって提供されているため、「拡張機能が利用できなくなる」という理由でCMSのセキュリティアップデートを適用せず、脆弱性を保有してしまう例も見られます。
(2)CMSで構築されたウェブサイトの管理者アカウントへの不正ログイン
CMSを利用しているサーバは、ログインページのURLやアカウント名、パスワードが初期設定で運用されていることも多く、攻撃者にとって認証を突破しやすい環境が整っているといえます。
一例として、CMSへの不正ログイン手順を示します。
- 1)管理ページのURLを特定する
WordPressでは、デフォルトで”wp-admin”または”wp-login.php”となっています。WordPressを利用していることがわかれば、そのまま管理画面のURLを特定することができます。 - 2)ユーザ名とパスワードを推測し、送信する
WordPressやJoomla!のデフォルト管理者ID ”admin”は多くの人に使われているので、攻撃者はID特定の手間が省け、パスワード解析に注力できます。また、パスワードとしてよく利用される文字列や、辞書に載っている単語を用いたパスワードを使用している場合には、パスワード解析も容易に行うことができます。 - 3)返答されるHTTPヘッダから、認証突破の可否を確認する
認証が成功すると特定のステータスコードが返信されます。認証が成功したことがわかれば、自動的にそのサーバとID, パスワードを「認証突破リスト」へ追加します。わざわざブラウザで管理画面を確認する必要はありません。
いずれの場合も、攻撃者によってウェブページを改ざんされたり、乗っ取られたりする可能性があります。改ざんされたウェブサイトは、ランサムウェアのばらまきを行う、または次の攻撃への踏み台とされるなどで、ウェブページにアクセスした一般のユーザへ被害を与える場合があります。さらにCisco(※8)の調査 では、ハッキングしたWordPressのWebサーバを、ランサムウェアなどの攻撃ツールを流通させるインフラとして利用することで、通信経路からの検知を回避するケースも報告されています。
また、2016年にはこのような事例がありました。
◆Joomla! に深刻な脆弱性を発見
2016年10月、Joomla!の特定バージョンに2つの脆弱性が発見されました。これらの脆弱性を組み合わせて利用すると、新しい管理者アカウントが作成できるため、サイトを乗っ取ることが可能です。Joomla! の開発元は公式パッチをただちに公開しましたが、公開後24時間以内にはすでに多くの攻撃者によって悪用を試みられていたことが、Sucuri(※9)によって報告されています 。この脆弱性を突く攻撃は、パッチ公開後3日が経過した時点で2万7000件を超えたということです。
◆認証情報の収集と売買
2016年6月には、サーバの認証情報リストが闇市場で売買されていたことが分かっています。Kaspersky(※10)の調査によると、売買リストには日本のサーバも多数含まれていたということです 。攻撃者は単純な認証方式や使いまわしのアカウント名・パスワードを利用しているサーバを狙い、ログイン試行によってこのリストを作成したと推測されています。デフォルトアカウント利用者の多いCMSを利用したウェブサーバも数多く含まれていると考えられます。
- ※8 Cisco 2016年セキュリティレポート
https://www.cisco.com/c/m/ja_jp/offers/sc04/2016-midyear-cybersecurity-report/index.html(外部リンク) - ※9 "Joomla Exploits in the Wild Against CVE-2016-8870 and CVE-2016-8869"
https://blog.sucuri.net/2016/10/joomla-mass-exploits-privilege-vulnerability.html(外部リンク) - ※10 Kaspersky Lab
http://www.kaspersky.co.jp/about/news/virus/2016/vir16062016(外部リンク)
4. 安全なCMS利用のために
情報処理推進機構(IPA)(※11)は、2016年9月に公開した「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント 」のなかで、ウェブサイト運用において情報セキュリティの面から注意すべきポイントをチェックリストとして提示しています。本項ではそのうち、特にCMS利用において推奨される対策を紹介します。
(1) 脆弱性を狙った攻撃への対策
- セキュリティ対策が実施されているCMSを選定する
選定時には、定期的に開発元からセキュリティ情報やアップデートが発信されていることを確認しましょう。また、事前に定めたセキュリティ要件を満たすことを確認しましょう。 - 拡張機能を見直す
利用を始めるときには最新でも、運用中に一度も更新パッチをあてていなかったり、1年以上もアップデートがリリースされていないことがあります。拡張機能が最新版になっているか、開発元の更新が止まっていないかを定期的に確認し、利用していない拡張機能は削除しましょう。 - 常に最新版にアップデートする
CMS本体と拡張機能を常に最新版に保ちましょう。古いバージョンに残された脆弱性は、攻撃者の巡回で容易に見つけることができます。機能への影響が把握できないからといってパッチ適用が遅れがちにならないよう、ウェブサイト作成時に、パッチをあてやすいシンプルな構成を心がけるのも重要です。
(2) 不正ログイン、認証情報窃取への対策
- 管理画面にアクセスしづらくする
管理ページ名を編集する、IP制限をかける、BASIC認証を要求する等の対策を行い、意図しない人が容易に管理画面にアクセスできる状況を避けましょう。 - 推測しやすいID、パスワードを避ける
一般的に数字のみや、辞書にある単語のみで構成されたパスワードは特定が容易です。十分に複雑なパスワードを利用し、漏えいしないよう適切に管理しましょう。
- ※11 情報処理推進機構IPA,「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」
https://www.ipa.go.jp/security/technicalwatch/20160928-1.html(外部リンク)
5. まとめ
CMSはウェブサイト運営の利便性を高めることで人気を集めました。加えてそれらの多くが無料で提供されています。しかし、無料ソフトウェアは、一方で自らマネジメントする意識が要求されます。主要なCMSや拡張機能の開発元は、定期的にセキュリティ情報および設定方法を発信しています。攻撃対象になりやすいことを認識したうえで、信頼のおける情報を収集して適切なセキュリティ対策を実施し、安全なウェブサイトを運営しましょう。