1.CMS とは

CMS は Contents Management System の略称です。
Webサイトのコンテンツを視覚的に管理できるため,Webサイトの知識が乏しい方でも(HTML 等の技術的な仕組みを理解していなくても)Webサイトの構築が可能になる便利なシステムです。

CMSの機能

CMS は,アプリケーション本体(CMSコア部)と設定ファイルやアップロードファイル,拡張機能などが,Webサーバおよびデータベースサーバ上に構成されています。これらの機能を利用するためには,サーバやCMS管理画面で様々な設定を適切に行う必要があります。

CMS の内部構造イメージ(IPA)
  • 管理画面

CMS には,コンテンツを統合的に管理するための管理画面が用意されています。管理画面では,コンテンツ管理,ユーザ管理,拡張機能管理,アップロードファイル管理などの機能が用意されています。CMS では,管理画面上でWebページを一元管理でき,利用者が HTML を記載しなくても,文章作成ソフトで文書を作成する感覚でWebページを作成することが可能です。

管理画面の例(IPA)
CMS管理画面でWebページを作成するイメージ(IPA)
  • ユーザ管理と権限

CMS では予め複数利用者による利用が想定されており,権限を制限したユーザグループ(権限グループ)が用意されている場合があります。ユーザグループの設計を行い,適切に権限管理を行うことがCMS の利用における第一歩です。

WordPressにおけるユーザ権限のサンプル(IPA)
  • 拡張機能

CMS には初期設定でWebサイトの構築や運用が可能な最低限の機能が備わっていますが,拡張機能であるプラグイン(機能)とテーマ(テンプレート)と呼ばれる部品を追加することで,機能やデザイン等の追加が可能になります。しかし,便利になる一方で,追加した機能等の運用管理やセキュリティ上のリスクも増加するため,拡張機能の追加は熟慮した上で実施する必要があります。


拡張機能導入のイメージ (IPA)

2.CMSで構築されたウェブサイトを狙う攻撃と対策 

CMS は使う側にとっては非常に便利な反面,CMSを動作させるためにはサーバ上で様々なアプリケーションを稼働させる必要があり,CMS 自体の内部構造も非常に複雑なため,Webサイトを適切に運用管理するためには(特にサーバサイドの目に見えない運用管理部分には)豊富な知識と確かな技術力,そして膨大な労力を必要とします。

一方で,CMS が稼働してしまえば,技術や知識が乏しい状態でもWebサイトの構築や見た目上の運用(サイトの更新等)はできてしまうため,そもそも正しく運用管理自体できていないことに自覚症状がない状態でサイトの運用している(「見た目の更新=運用管理」と勘違いをしている)者が多くいるため,Webサイト関連のサイバー犯罪で最も被害が多いものがこの CMS に関する事案となっています。

ソフトウェア(CMSや拡張機能を含む)の脆弱性 

一般的なWebサイトと比べると,CMS を稼働させるためにはサーバに多くのプログラムやソフトウェアを導入する必要があります。
プログラムやソフトウェアには脆弱性(バグ)がつきものであり,拡張機能にも脆弱性が発見される場合があります。
導入するプログラムやソフトウェアの数が多くなればなるほど,脆弱性の発生確率が高くなるため,必然的にサイバー攻撃に遭う確率も高くなります。

特に,CMSに関するサイバー犯罪の集計結果では,被害原因のほとんどが「拡張機能の脆弱性」という結果が示されています。
拡張機能の運用管理には改めてご留意願います。

CMS の脆弱性を狙った攻撃イメージ(IPA)

ソフトウェアの脆弱性への対策

  • CMSおよび拡張機能を最新版にアップデートする。
  • CMSの拡張機能は洗い出しを行い,定期的に見直しを行うなどの運用マニュアルを整備する。
  • サポート体勢が充実している有償の機能を利用する。(できる限り
  • 最終更新日から1年以上経過している拡張機能については,別の拡張機能の利用を検討する。
    (定期的に更新が行われている拡張機能を選定し,利用する。)

サーバの脆弱性 

CMS の管理画面から管理できるのは,CMSや拡張機能のみです。サーバ側にも脆弱性が存在する点にも留意してください。
サーバの運用管理(アップデート作業等)には,専門の知識や技術が必要になるため,然るべき運用管理体勢を検討してください。

なお,「業者へサーバの管理委託をする=適切な運用管理ができている」ではありません。
誰が,どこまで,何を,運用/管理/作業するのかを事前に検討し,仕様書に明記した上で(本学と業者の責任分界点を明確化した上で)業務委託をすることが重要です。

サーバの脆弱性を狙った攻撃イメージ(IPA)

サーバの脆弱性への対策

  • 脆弱性情報を定期的に入手する。
  • OSやプログラグム言語,サーバソフトウェア等を定期的にアップデートする。
  • 運用管理体制を整備し,必要に応じて適切な業務委託を行う。

運用上の不備 

  • ファイルの不適切な公開 

特に多い事案として

  • CMS の初期セットアップ用のファイル等の残存
    (初期セットアップ時以外は利用しないファイルの消し忘れ)
  • 大型アップデート等により不要になったファイル等の残存
  • 不適切な権限でのフォルダ/ファイル公開

などが挙げられます。

Webサイトのコンテンツが CMS によって容易に管理できるようになった一方で,ファイルのアップロードなど,従来は手作業で行っていた(無意識的に目視で行っていた)操作が不要になったため,本来インターネット上に公開するべきではないファイルが公開されてしまっていることに気づかない等の事案が派生しています。

また,CMSや拡張機能等の大型アップデート(メジャーバージョンアップ)により,ファイルの構成が大幅に修正される場合があります。
ファイルの更新はプログラムにより自動化されていますが,ファイルの削除は手動での作業が必要な場合があります。不要になったファイルが削除されずに放置されると,時間経過とともに脆弱性が発見されても気づかない場合があるため注意が必要です。特に無償の拡張機能などは,有償のものと比べると開発/サポート対応が劣るため,上記の発生確率が高くなる傾向があります。フォルダやファイル更新日付などを定期的に確認することで,このような状況を防ぐことができます。

CMSの導入によって便利になるのは「作業効率」であって,手間のかかる確認作業などの「運用管理」は今までどおり人の目が必要である点を忘れてはいけません。


不適切に公開されているファイルを狙った攻撃イメージ 

ファイルの不適切な公開への対策

  • フォルダ/ファイルに適切なアクセス権を設定した上で公開する。
  • セットアップ用ファイルや不必要なファイルは,削除もしくは強固なアクセス権を設定する。 
  • 定期的に目視でサーバ上のファイルを確認し,更新日付が古いファイルの確認を行う等の運用マニュアルを整備する。

  • 不適切な権限付与 

CMS にユーザーグループや権限管理の機能が備わっていても,管理者が適切に権限の設定をしなければ意味がありません。
誤った権限付与により,本来の業務権限以上の作業が可能になり,不必要な情報まで公開してしまう情報漏洩事案も発生しています。

ユーザ管理は煩雑になりますが,信頼するユーザーにしか権限を付与しないようにしたり,アップロードできるファイルの拡張子を指定するなどの細かい措置を講じることで,運用上の不備が発生する確率を軽減できます。また,CMS の仕様にもよりますが,ファイルをアップロードするフォルダには実行権を持たせない設定にしておくことでより強固なセキュリティを担保できます。

不適切な権限付与への対策

  • ユーザ毎の業務遂行に必要な(最適な)権限を分析・設計し,適切に付与する。
  • ユーザの権限によってはアップロード可能なファイルの拡張子を指定するなどの制限を設定する

認証の突破 

  • CMSの管理画面への攻撃 

管理画面へのアクセスパス(URLやファイル構成)は,多少の知識があれば誰でも推測できてしまいます。
管理画面にアクセスされると,その権限の範囲で攻撃者は任意にウェブサイトを操作できるだけでなくプログラムの実行も可能になるため,改ざんだけでなく他サーバへのサイバー攻撃も可能になります。

管理画面は「非公開設定が原則」であり,加えて,アクセス可能なIPアドレスに制限を設ける(ホワイトリスト)など二重三重の厳重な対策を講じる必要があります。

CMS認証画面攻撃への対策

  • 認証画面をインターネット上に公開しない 。
  • 認証画面には多要素認証を設定する。
  • 強固なパスワードを設定する。
  • ログイン試行回数を制限する
  • 認証画面を守るプラグインなどを導入する。
  • 認証画面へアクセス可能なIPアドレスに制限を設ける(ホワイトリスト)。

3.最後に

CMSはWebサーバで稼働する一つのアプリケーションでしかありません。CMSを稼働させるためには目に見えないバックエンドにも様々な準備や配慮,設計等が必要です。しかし,CMSでWebサイトを更新することや便利な機能にのみ目がいってしまい,運用上の危険性や運用管理体制を疎かにしていることに気づけないまま(そもそも理解せずに)構築されるCMS(Webサーバ)が後を立ちません。

担当者にとっては自身の部局レベルの(自分達の範疇で運用している)WebサーバのCMSであっても,不測の事態がきた場合は,第三者から見れば大学組織全体の管理体制問題として捕らえられます。適切な体制を整えてた上で時間をかけてじっくり設計を行い,適切な構築を行うこと,そして適切な運用をし続けることが重要です。