Webアプリケーションのセキュリティを考えるうえで,まずOSやミドルウエアといった基盤ソフトウエアをセキュアな状態にすることが重要であることは,前回述べた。新たな不具合が見付かっても,開発したアプリケーションを利用している期間はベンダーのサポートを受けられるようでなければ,セキュアな状態を維持できなくなってしまう。
ただ,ベンダーによってはサポート期間を明らかにしていないケースがある。インターネット向けサービスではオープンソース・ソフトウエア(OSS)がよく使われるが,このOSSも「保証なし」が原則である。そこで今回は,OSSを利用する場合の注意点を考えてみる。サポート・ライフサイクル・ポリシーが明示されていない製品を使う場合も,考え方はほぼ同じだ。
最新版の「寿命」見積もりが不可欠
OSSを採用する場合,基盤ソフトウエアのセキュアな状態を長期にわたって維持するには,以下の選択肢を検討することになる。
- 有償の商用サポート・サービスを契約する
- 基盤ソフトウエアの次バージョンへの移行を保守計画に含める
- 自力でなんとかする(回避策を立てる,あるいは独自にパッチを開発する)
いずれの場合も保守計画立案に当たって,候補となるOSSの最新バージョンがどの程度「寿命」があるのかを見積もる必要がある。ここでは代表的なOSSとしてPHPとTomcatを題材に,OSSのライフサイクルの検討方法について説明する。
■ケーススタディ(1) -- PHPの場合
PHPの最新リリースは5.2.8だが,インターネット上では一つ前のPHP4で稼働するサイトが半分以上を占め,セキュリティ・アップデートを受けられない危険な状態といえる(表1)。
バージョン | 公開日 | サポート終了日 |
---|---|---|
PHP3 | 1998/6/6 | 2000/10/21 |
PHP4 | 2000/5/22 | 2007/12/31 |
PHP5 | 2004/7/13 | サポート継続中 |
表を見ると分かるように,PHP4は7年半にわたってサポートが継続していた。これだけを見ると商用製品に大きく引けを取るわけではない。ただ,後継バージョンであるPHP5が公開された時期がPHP4の4年遅れだったため,PHP5の公開直前にPHP4で開発されたアプリケーションは3年半でセキュリティ・アップデート終了ということになった(図1)。

加えてPHP5の初期バージョンが不安定であったこと,PHP4に対する互換性が不十分だったことなどから,PHP5への移行はなかなか進まなかった。結果として,PHP4で開発したあと1~2年でPHP4のサポート終了を迎えたサイトも多いようだ。
現行のPHP5系統についても,PHP5の最初のリリースから既に4年以上が経過していることから,今後何年程度サポートが継続されるかは不明確である。今後PHPを使用してWebアプリケーションを開発する場合は,アプリケーションの保守期間中にPHP5.Xがサポート終了になることを想定をしておくべきだろう。対策としては以下のような方法がある。
- PHP6への移行をサポート計画に含める
PHP6は開発が遅れているため確実なリリース時期は不明だが,この1~2年のうちにはリリースされると見られる。したがって,長期間利用するWebアプリケーションであれば,保守期間内にPHP6に移行する可能性を検討しておいた方が良い。 - 商用サポートを契約する
PHP4に対する保守サービスをSRA OSS,Inc.日本支社が提供している 。PHP5についても同様のサポート・サービスを提供する企業が出てくる可能性がある。
どちらにしても,将来確実な情報はない。PHPによる開発には,そのようなリスクがあることを認識したうえで,そのリスクを上回るメリットがある場合にPHPを選択するべきだと考える。
また,現行のPHP5.2系の次期バージョンであるPHP5.3のアルファ版が12月4日に公開された。PHPでアプリケーションを開発する場合には,以下の理由により,このPHP5.3の動向にも注目すべきである。
- PHP5.3には元々PHP6に導入予定だった機能(名前空間など)が先行して導入されており,PHP6への橋渡し的な性格がある
- 上記の理由により,PHP5.3では文法が一部変更されており,PHP5.2からPHP5.3に移行の際にトラブルが発生する可能性がある
- PHP5.3の正式リリース後もPHP5.2系のメンテナンスはしばらく継続するらしいが,いつまでメンテナンスされるか保証はないため,できるだけ速やかにPHP5.3系に移行した方が良い
このように,PHPを使う場合は常にPHPのバージョンアップを受け入れていく体制が必要になる。