Dyno

ウェブサイトの CMS アップデート方針パターン

近年ビジネスでウェブサイトを構築・運用する場合に最も一般的な手段といえば CMS (コンテンツマネジメントシステム)です。 そして、 CMS のシェアの 70 - 80% ほどを占めるのが、 WordPress (ワードプレス)や Joomla! (ジュームラ)、 Magento (マジェント)等に代表される「オープンソースの CMS 」です。

オープンソースの CMS を利用するときには必ず 更新対応をどうするか の問題を考えておく必要が本来はあるのですが、世間一般には必ずしも十分には考慮・検討されていません。

今回はそんな、(オープンソースの) CMS を利用する際の アップデート方針のパターン についてかんたんにまとめたので、これから CMS を導入しようとされている方は参考にしてみてください。

アップデートを行うかどうか

まず、 CMS のアップデート方針として最も大きな選択肢は アップデートを実施するかどうか です。

  • A) アップデート対応する
  • B) アップデート対応しない

アップデート対応する場合には当然ながら初期とランニングの作業コストが発生します。 逆に、アップデート対応しない場合にはコストはかかりません。 しかし、原則 CMS をアップデート対応せずに使い続けるという選択肢はありえません

というのは、 CMS のバージョンアップにはさまざまな変更が含まれるのですが、中には( OS のアップデートのように)新たに見つかった深刻なセキュリティホールに対応するための変更もあります。 そのようなバージョンアップに対応しないでおくと、悪意のある利用者(実際には自動プログラム)によって機密情報の窃取やサイトの乗っ取りを行われる可能性が高まります。

かぎられた範囲で公開される特殊なサイトを除けばウェブサイトには一般に世界中から不特定多数の人がアクセスすることができます。 その中の誰に悪意があるのか、どこから攻撃が来るのかを事前に知れればよいのですが、そういうことは実際には不可能なので、サイトは「悪意のある利用者が日々アクセスしてくる」という前提で公開しなくてはなりません。

ときどき、家と同じような感覚で「うちには盗られて困るものなんて入ってないから大丈夫」と言う方がいますが、その考えはウェブには通用しません。 経済的価値のある情報が一切含まれないサイトやアクセスが一切無いサイトであっても、侵入して乗っ取ってしまえばさまざまなことに利用することができます。 代表的なのは他のサイトへの攻撃、最近であれば仮想通貨のマイニング等に利用されることもあるようです。

そのため、ウェブサイトに CMS を利用する場合は原則 「アップデート対応しない」という選択肢は無い という考えを持っておく必要があります。

「アップデート対応しない」という選択肢は原則ナシなので、以下では「アップデート対応する」という前提で選択肢を見てみましょう。

タイミングによる分類

ひとつの分類軸はアップデートを行うタイミングです。

  • A) 貪欲パターン
  • b) 非貪欲パターン

仮に 貪欲パターン と名前をつけましたが、これは CMS に新たなバージョンが公開されたら積極的にアップデート対応を行っていくパターンです。 最も極端なパターンは「あらゆるアップデートを内容のチェックなしに最速で適用していく」形です。

このパターンのメリットは、セキュリティアップデートの際に公開された脆弱性情報をもとにクラッカーが攻撃方法を考案し攻撃を始めるいわゆる「ゼロデイ攻撃」の被害リスクが最小化できることです。

逆のデメリットとして、新しいバージョンの未知のバグの影響を受けるリスクが高まる、アップデートリリースの時間帯が深夜や週末等になる場合には担当者の負荷が大きい、等があります。 メジャーな CMS の多くは欧米の人々が中心に作っていることもあり、日本の深夜に深刻なセキュリティホールの情報が公開されることが少なくありません。

非貪欲パターン は貪欲パターンの逆です。 CMS のバージョンアップに必ずしもすぐに対応するのではなく、独自のタイミングで定期・不定期にアップデート対応を行っていくパターンです。 例えば、定期的なパターンには「 1 ヶ月毎」「 3 ヶ月毎」、不定期パターンには「業務に空きがでたときに都度」等があります。 非貪欲パターンで最も極端なのは「必要最小限のアップデートだけに対応する」というやり方です。

非貪欲パターンのメリット・デメリットは貪欲パターンの裏返しになります。 ゼロデイ攻撃の被害を受けるリスクが高まりますが、新たなバグの影響を受けるリスクは低く、担当者の負担も低くなります。

評価の有無による分類

バージョンアップの内容についての評価の有無でも分類が可能です。

  • A) 評価を行う
  • B) 評価を行わない

評価を行う というのは、新しいバージョンが出たらその中身を確認し評価を行うということです。 リリース文書や実際のコードをチェックして、新たに混入したバグが無いか、既存の機能に影響のある変更が無いかといった点を確認します。 また、セキュリティに関するバージョンアップの場合は、対象の脆弱性が自サイトに影響するものかどうかを評価します。

評価を行うパターンのメリットは、コストの高いアップデート反映作業のタイミングを柔軟に決められる点です。 セキュリティアップデートについては、自サイトに影響が無いと判断できた場合は「アップデート対応しない=次のアップデートまで待つ」という選択をすることも可能です。

デメリットには、判断のためのコストがかかる、深刻なセキュリティ脆弱性についての判断を誤るとサイトを危険にさらす、等があります。 また、適切な判断を行うには相応の技術力が必要ですが、それは「その CMS を使ってサイト制作ができる」というレベルよりもずっと高く、それができるウェブ制作会社は全体から見ると少数派です。

一方の 評価を行わない というのは、この逆のパターンです。 新しいバージョンについて中身のチェックは行わず、新しいバージョンがリリースされたら機械的にアップデートを行います。

作業方法による分類

アップデート作業の実施方法でも分類することができます。

  • A) 自動パターン
  • B) 手動パターン

自動パターン というのは、人の手を介さず自動的にアップデートの反映を行うものです。 WordPress のように CMS そのものに自動アップデート機能が備わっている場合はそれを使うことができます。 備わっていない場合はサイトを管理するためのソフトウェアまたはサービスを利用します。

自動パターンのメリットは、スピートとコストと正確性です。 あらかじめ設定さえしておけば人の手を介することなく自動的に処理が行われるので、都度のアップデートごとにかかるコストは無視できるレベルになります。 担当者の不在や確認モレ、引き継ぎの不備等による対応モレのリスクも抑えることができます。 逆のデメリットとしては、プラグイン開発者のアカウントが乗っ取られたりして悪意のあるコードがリリースされたときの防御が難しい点があります。 状況判断にもとづいた柔軟な対応ができない点やトラブル発生時の対応が複雑化する点もデメリットと言えるでしょう。

デメリットではありませんが、自動化の設定を間違いなく適切に行える一定の技術力が必要という制限もあります。

手動パターン は自動パターンの逆です。 CMS の自動アップデート機能等は使わずに手作業でアップデートを行います。

手動パターンのメリット・デメリットは自動パターンの裏返しです。 悪意のあるコードを自動で取り込んでしまって被害が発生するリスクはありません。 柔軟性や不確実な状況への対応力の高さの面でもメリットがあるでしょう。 しかし、スピード・コスト・正確性では自動パターンに劣ります。

ただし、自動か手動かというのは 0 か 1 の問題ではないので、自動化と手作業とを組み合わせるパターンが実態としては多いものと思います。

……

というわけで、 CMS を利用する際のアップデート方針にはさまざまなパターンがあり、それぞれにメリット・デメリット・制約があります。

理想形のひとつは「バージョンアップの内容をすばやく的確に見極め必要なものは速やかに反映する」「問題のあるバージョンアップは絶対に取り込まない」ですが、現実には人的リソースや技術力、コスト等の制約により 100% 理想形を実現できる場合ばかりとはかぎりません。

バージョンアップと一口に言っても

  • 対象が CMS の本体かプラグインか
  • 深刻なセキュリティ問題への対応が含まれるか
  • 既存の機能を壊しうる互換性の無い変更が含まれるか

といったポイントによってリスクは大きく変わってくるので、「どのアップデートにどのパターンを適用するのか」を価値とコストのバランスを見ながら決める、というのが CMS の保守設計で行うべきことです。

というわけで、サイトで利用する CMS のアップデート対応方針のパターンについてでした。