前回までの検討の結果,このパッチを直ちにすべてのWebサーバーに対して適用する必要があるという結論に至った。次に我々が行った作業は,パッチ適用後のシステムの検証作業である。現在のシステムにパッチを適用した場合,何か不具合が起きないかどうかを確認する。

 当然,システムが動いている本番の環境に,いきなりパッチを適用するわけにはいかない。検証用または開発用の環境にまずパッチを適用し,動作をチェックしていくのである。この動作をチェックする環境は,本番の環境と全く同一であることが望ましいが,様々な制約によって難しい場合が多いと思う。現実的には,制約の範囲内で可能な限りハードウエア,ソフトウエア構成を合わせた環境を用意することになるだろう。

 以前は我々も,複数の環境のサーバーが稼働している(例えばwindows 2000 Serverがインストールされたサーバーと,windows Server 2003がインストールされたサーバーが混在しているなど)場合には,少なくともOSの種類ごとに検証用のサーバーを用意して,本番との環境を合わせるようにしていた。現在では仮想PCを使うことで,種類が異なるOSの環境であっても,1台のサーバー上で検証が行えるようにしている。

パッチ適用時の動作チェックリストを用意しておこう

 パッチ適用後の動作検証については,システムを構築した際に実施した,ソフトウエアテストのすべての項目を検証できれば理想的だが,緊急性の高いセキュリティ・パッチの適用までに何週間もかけているわけにはいかない。

 そこで我々は,ソフトウエアテストよりも項目数を絞った,パッチ適用のための動作検証チェックリストを用意している。OSや,ミドルウエアといったプラットフォームにパッチを適用することで,それらプラットフォームが提供する機能に何らかの不具合が発生する場合,その機能を利用している複数のプログラムは,一律に影響を受けるものと考えられる。

 例えば,パッチを適用することでミドルウエアが提供するメール送信の機能に不具合が発生する場合,そのミドルウエア上で稼働するシステムのメール送信の機能に対して,一律に影響を受ける可能性が高いと考えられる。そこで,検証項目を絞る際には,プラットフォームが提供する機能ごとに,代表する検証項目をシステム全体から選び出し,それらに対して検証することで時間の短縮を図っている(図2)。

図2●チェックリストの例
図2●チェックリストの例