CMSについて勉強する

Blog

はじめまして、今年の2月に入社しましたinoueです。
案件でも携わるようになったCMSについて勉強してみました。

CMSをなぜ使うのか

Webページを更新するにあたり意外にやらなければいけないことがあったりもします。
例えば、
ニュース記事の更新をしたい場合更新しなければいけないページは少なくとも下記になります。

  • ニュース一覧ページ
  • ニュース詳細ページ

また、公開までのフローとしてはざっくり言うと下記のようになります。

  1. 原稿を作る
  2. HTMLでニュース一覧ページを更新
  3. HTMLでニュース詳細ページを更新
  4. HTMLファイルをFTPツールを使用しサーバにあげることで公開
  5. 正しく公開されているか確認

しかしCMSを導入することによりHTMLでの更新の工程、サーバにあげる工程を下記手順のように削ることができます。
そして、ニュース記事を公開すれば設定方法にもよりますが自動で更新すべきページが更新されるのでどのページを更新しなければいけないかを考えずに済み公開ミスが減るというメリットがあります。

  1. 原稿を作る
  2. CMSで文章を入力し公開ボタンを押す
  3. 正しく公開されているか確認

もちろん、CMS以外でも自動化する方法はありますが比較的簡単に導入でき容易にページ更新できるのがCMSの大きな魅力の一つなのではないでしょうか。

CMSの種類

さて、そんな便利なCMSですが開発方法や、ページの生成方法で色々と種類分けされており、セキュリティや、ページの表示スピード等の特色が出てくるようです。

開発方法による種類分け

開発方法による種類はオープンソース型か独自開発型があります。違いとしては、下記のような違いがあります。

開発者

オープンソース型はプロアマ問わず世界中のみんなで作る
独自開発型は企業等のプロ集団で作る

プラグインの種類

オープンソース型はプロアマ問わずみんなで作るから分母が多いのでプラグインの数も多い
独自開発型は少数精鋭だからプラグインの数も少ない

セキュリティ

オープンソース型はプロアマ問わずみんなで作るからセキュリティにも差が出てくる
独自開発型はプロ集団で作るから一定水準のセキュリティが保証されている

ページの生成方法による種類分け

ページの生成方法による種類は静的CMSと動的CMSがあります。そして、静的CMSと動的CMSの違いで下記のような違いがあります。

生成タイミング

あらかじめ生成するのが静的CMS
都度生成するのが動的CMS

ページ表示スピード

静的CMSはあらかじめ準備するからすぐ表示できる
動的CMSは都度対応するから表示に時間がかかる

セキュリティ

静的CMSはあらかじめ生成してあるからサイバー攻撃の余地が減る
動的CMSは都度生成するからセキュリティの隙が多い

詳しく言うと
動的CMSは都度「このユーザのリクエストにはこれを表示する」という処理をしています。なのでプログラミングを書き換えて違う表示を命令する等の攻撃をされてしまうリスクがあります。

セキュリティ

最後にCMSを導入する上でしっかりと考えなければいけないセキュリティ問題について触れたいと思います。
なぜならCMSは便利な反面、種類によってはサイバー攻撃の標的になりやすいと言われているからです。

CMSがなぜ狙われやすいのか?

まず、ネットに繋がっている以上CMSでなくてもサイバー攻撃を受けるリスクは常にあります。ですがよくネットの記事などで「CMSはセキュリティが」というのを目にします。
先に書いたようにCMSには様々な種類があり、セキュリティに比較的強いタイプもあるのになぜそのような記事が多くあるのでしょうか。

セキュリティ上よく問題を指摘されるのはオープンソース型のCMSです。
このタイプは、オープンソースであるので設計図が公開されているます。もちろんその設計図は攻撃者も見ることができセキュリティホールを見つけやすい状態になります。

二つ目は、多種多様なプラグインが公開されているからです。
プラグインも多くの開発者によって支えられておりプラグインの開発者のレベルには差がありセキュリティの知識に乏しい開発者もいます。
また脆弱性が発見されても一般の方が開発している場合もありますのでパッチ開発に時間がかかる場合もあります。

以上がCMSは狙われやすいと言われる理由になります。

サイバー攻撃の目的

そもそもなぜ攻撃をしてくるのかその目的を理解する上で情報処理推進機構が毎年発表している各年の社会的影響が大きかった情報セキュリティの脅威が助けになるのではないでしょうか。

情報処理推進機構という組織は主に情報セキュリティ対策、施策を実施している2004年に設立された独立行政法人です。
「情報セキュリティ10大脅威 2020」の組織のランキングを見るとサイバー攻撃の主たる目的は下記の二つになると考えられます。

  • 金銭の要求
  • 個人情報取得

サイバー攻撃の種類

下記よくあるサイバー攻撃を種類ごとにリスト化しました。
こういった方法で情報を盗んだり金銭要求をしてくるようです。
これ以外にも方法があり新しい方法は年々報告されていますが大きく分けて侵入型と高負荷型に分けられそうです。
そして、侵入型はユーザが何かしら入力できるページで注意が必要なようです。

高負荷をかける攻撃

  • DoS攻撃/ DDoS攻撃
  • F5アタック

脆弱性を狙った攻撃

  • ゼロデイ攻撃
  • SQLインジェクション
  • OSコマンド・インジェクション
  • クロスサイトスクリプティング
  • バッファオーバーフロー攻撃
  • API攻撃

パスワードを狙った攻撃

  • ブルートフォースアタック
  • パスワードリスト攻撃

すぐにでもできる対策

上記のような目的、方法でサイバー攻撃を仕掛けてくることがわかりました。
対策方法としては様々な方法がありまた、どこまで対応するかどこまで費用を出すかで方針が変わってくると思います。
しかし、最低限下記のような手法はすぐにでも対応でき効果も認められているようですのでまだやっていない場合はセキュリティ対策の第一歩としてやってみてはいかがでしょうか?

  • CMS、プラグインのバーションは最新バージョンにアップデートする
  • ログイン画面にベーシック認証を掛ける
  • セキュリティ系のプラグインを入れる

おわりに

以上、ざっくりですがCMSの導入理由からセキュリティまで調べてみました。
なんとなくでもCMSの概要と注意点が理解できればいざ導入する時にこういうタイプが良いとかこんな対策が必要だとかの選択ができると思います。
この記事が少しでもそういう手助けになれば幸いです。

参考サイト