Skip to content

Webサイトの改ざんとCMSの脆弱性について

2022年8月24日、Webサイトのコンテンツを管理するCMS(コンテンツ・マネジメント・システム)製品であるMovable Typeの脆弱性(ソフトウェアの欠陥)が公表されました。この脆弱性はXMLRPC APIを経由した不正なリクエストにより、組み込みコマンドやシェルコマンドの実行が可能なもので、脆弱性を一意に識別する番号であるCVE番号としてCVE-2022-38078が割り当てられています。XMLRPC APIとは、外部のプログラム等からMovable TypeにXML形式のリクエストを送ることで記事の投稿や削除、ファイルのアップロード等の操作が可能な機能です。この機能に欠陥があり細工したリクエストによって、任意のPerlスクリプトや任意のOSコマンドが実行できてしまうものです。

この記事を書いている時点(9月下旬)では、この脆弱性を悪用した事例は発生していないようです。実は、昨年の10月にも同じような脆弱性が判明しており、その際は脆弱性の公表後、この脆弱性が悪用されたと思われるWebサイトの改ざん事例が頻発しました。なお、脆弱性の公表と同時に開発元から脆弱性を対応した新しいバージョンがリリースされています。Movable Typeを使っている場合は可及的速やかにバージョンアップを行われるといいでしょう。

また、2022年8月31日には、CMSの世界的シェアNo.1と言われるWordPressが脆弱性3件(うち1件は深刻度高)の対応を含むアップデートをリリースしています。深刻度高の脆弱性は、SQLインジェクションの脆弱性で細工されたリクエストによってデータベースの読み取り、更新、削除等の操作が行われてしまう危険なものです。この脆弱性は以前ブックマークと呼ばれていたリンク機能の欠陥です。このリンク機能は、現在はデフォルトで無効になっていますが、以前はそうではなかったため、古いサイトでは、リンク機能が有効になっている可能性が高いようです。この脆弱性を悪用する為には管理者権限が必要であるため、悪用は容易ではないようですが、利用しているプラグインやテーマによっては編集者レベル以下などの、権限の低いユーザーでも悪用できるようです。

残りの2件の脆弱性は、いずれも中程度の深刻度でクロスサイト・スクリプティング (XSS) の脆弱性です。これらの脆弱性が悪用されると、投稿に悪意あるスクリプトを埋め込まれてしまう可能性があります。WordPressを使っている場合は、可及的速やかにバージョンアップを行われるといいでしょう。また、WordPressには自動更新機能も提供されているようですので、積極的に利用されてはどうでしょうか。

さらに、2022年7月25日に、WordPressと並ぶメジャーなCMSであるDrupalにおいて複数の脆弱性への対応を含んだアップデートがリリースされています。この中で最も深刻な脆弱性は、任意のPHPコード実行の脆弱性(CVE-2022-25277)です。この脆弱性は細工した拡張子のファイルをアップロードすることで、任意のPHPコードを実行することが可能なものです。ただし、この脆弱性の悪用には管理者権限が必要のようです。他の脆弱性は、クロスサイト・スクリプティング (XSS) の脆弱性など3件で中程度の深刻度と評価されています。最も深刻な任意のPHPコード実行の脆弱性は管理者権限が必要ということもあり、即座にアップデートが必要というものではないかもしれませんが、公表されたのが7月下旬ということもあり、可及的速やかにもしくは計画的にバージョンアップを行われるといいでしょう。

ここまで、最近公表された代表的なCMSの脆弱性を紹介してきましたが、「CMSって何?」「CMSってうちのWebサイトと関係あるの?」と思われている方もおられるでしょう。次に、CMSについて説明します。

CMSとは、Webサイトを構成する部品であるテキストや画像、レイアウトなどを一元的に管理し、これらを自在に組み合わせてページを生成するソフトウェアです。一昔前は、HTMLを手書きで作成し、作成したHTMLファイルや画像データをWebサーバにアップロードすることでページを作成していました。以下がHTMLのサンプルとサンプルをブラウザで表示した結果です。

 

   <HTMLのサンプル>

HTMLサンプルスクリーンショット


   <上記のHTMLをブラウザで表示した結果>HTMLサンプル


HTMLを手で記述するにはプログラミング的な技術が必要ですし、見映えのいいページを作成するのは高度な技術が必要です。その後、HTMLの記述を支援するツールが登場することでかなり楽になりましたが、やはり見映えのいいページを作成するのは高度な技術が必要であることには変わりありませんでした。近年、画面から設定するだけで見映えのいいWebサイトが作成できるCMSが登場し、一気に広がっていきました。今では多数のWebサイトでCMSが導入されています。

実は、Webサイトの改ざんは日本においても毎月のように発生しています。改ざんされた原因は幾つかありますが、主要な原因は二つです。一つは管理アカウントの管理不備です。多要素認証を導入していない、IDやパスワードが単純等によって、総当たり攻撃等によって悪意ある第三者にログインされ改ざんされてしまうものです。これはCMSの使用有無に関係ありません。もう一つはCMSの脆弱性の未対応です。CMSには冒頭に紹介したようなWebサイトの改ざんが可能な脆弱性が半ば定期的に判明しています。CMSを使ってWebサイトを作成することは、CMSを使わない場合と比べて、改ざんされるリスクが高いと言えます。CMSを使っていれば改ざんされる訳ではなく、パージョンアップをきちんと行っていればいいのですが、CMSを使っていることや脆弱性への対応が必要であることを認識していないケースがあり、使っているCMSの脆弱性が公表されているにも関わらず対応を行わず、改ざんされてしまう事例が後を絶たないのが実態なのです。

では、どれくらいの頻度で脆弱性が判明しているのでしょう。上記に挙げた製品のWebサイトの改ざんが可能な脆弱性は以下の表にあげてみました。いずれの製品も毎年何らかの危険な脆弱性が判明していると言えます。

 

製品

脆弱性の公表日

CVE番号等

Movable Type

2022年8月24日

CVE-2022-38078

Movable Type

2021年10月20日

CVE-2021-20837

WordPress

2022年8月30日

WordPress 6.0.2 

WordPress

2022年1月6日

WordPress 5.8.3

Drupal

2022年7月25日

CVE-2022-25277

Drupal

2022年4月20日

CVE-2022-25274, CVE-2022-25273

Drupal

2022年2月20日

CVE-2019-6340

※詳細は最下部の参考URLを参照下さい。

 

それでは、どうすればCMSを使っていることや脆弱性への対応が必要であることを認識し、タイムリーに脆弱性への対応を行うことができるのでしょうか。そのためにはWebサイトの作り方について少し整理しておく必要があります。Webサイトの作成には大きくサーバを準備することとコンテンツを作成ことの二つのステップがあります。それぞれのステップは以下の2パターンに分けられます。

ステップ1 サーバの準備
  ①自らサーバ(含むレンタルサーバやクラウド)を準備する
  ②Webサイト作成サービスを利用する

ステップ2 コンテンツの作成
  a. HTLMやCSSなどを手作りで作成
  b. CMSを利用

CMSを使うのは2パターンありますが、①-bは、自らCMSをインストールする必要がありますので、CMSを使っている自覚を持ちやすいのですが、CMSのメンテナンスを担当する人(含む委託先)が脆弱性の危険性を認識している必要があります。残念ながら、そのような認識が行き届いていないケースがあるようです。このパターンのWebサイトについては、CMSの使用有無や使用CMS製品を明確化し、開発元の公表するバージョンアップや脆弱性情報を定期的にチェックするとともにタイムリーにアップデート等の対応を行う体制を確立する必要があります。

②-bは、サービス事業者が提供する環境を使ってコンテンツを作成するやり方のため、CMSを使っている自覚を持つことは難しいかもしれません。さらに脆弱性への対応はサービス事業者側の責任であるため、サービス事業者が適切に対応を行っていることを祈るしかありません。このパターンのWebサイトについては、サービス事業者のセキュリティ対策を確認し、不満があれば改善を要求する、もしくは他のサービス事業者に移るなどの対応が必要です。

CMSは非常に便利なもので、特別な技術がなくとも見映えのいいWebサイトを作成することができます。ただし、そのメリットを享受しつつ安心・安全なWebサイトを運営していくには為には、セキュリティに対する意識や対策が必要です。この記事が皆さまのWebサイトの安心・安全な運営に少しでも貢献できれば幸いです。

 

 

<参考URL>
Movable TypeのXMLRPC APIの脆弱性に関する注意喚起(出典:JPCERTコーディネーションセンター)
https://www.jpcert.or.jp/at/2022/at220022.html

Movable TypeのXMLRPC APIにおける脆弱性(CVE-2021-20837)に関する注意喚起
(出典:JPCERTコーディネーションセンター)
https://www.jpcert.or.jp/at/2021/at210047.html

WordPress 6.0.2 で FIX した脆弱性:数百万の既存サイトに影響をおよぼす可能性
https://iototsecnews.jp/2022/08/31/wordpress-6-0-2-patches-vulnerability-that-could-impact-millions-of-legacy-sites/

WordPress 5.8.3 がリリース:SQL injection/XSS などの脆弱性に対応
https://iototsecnews.jp/2022/01/10/wordpress-5-8-3-security-update-fixes-sql-injection-xss-flaws/

Drupal Core に複数の脆弱性:任意の PHP コード実行 CVE-2022-25277 などが FIX
https://iototsecnews.jp/2022/07/25/drupal-developers-fixed-a-code-execution-flaw-in-the-popular-cms/

Drupal Core/API のアクセス・バイパスなどの脆弱性が FIX
https://iototsecnews.jp/2022/04/20/access-bypass-data-overwrite-vulnerabilities-patched-in-drupal/

Drupal の脆弱性 (CVE-2019-6340) に関する注意喚起(出典:JPCERTコーディネーションセンター)
https://www.jpcert.or.jp/at/2019/at190010.html


コンサルタント、フリーライター。
三菱UFJ銀行で12年間サイバーセキュリティに従事し、その後、Transmit Security 日本支社共同代表を経て独立。現在はサイバーセキュリティに関するコンサルティングやアドバイザー業務を行うとともに、国土交通省最高セキュリティアドバイザーや日本シーサート協議会専門委員、⾦融ISAC個⼈賛助会員として活動している。