パッチを巡るパラドックス

 IT部門にとってパッチの自動適用は便利だ。しかし、パッチが自動化されたためにソフトウェアの基本的な欠陥を探し出して修正するよりもパッチを発行する方が手っ取り早いという状況が生じ、欠陥が開発段階ではなく利用現場で発見されることが多くなった。ソフトウェアの品質に関するこの予期せざる副作用は軽ければ迷惑程度で済むが、最悪の場合は破滅的だ。

 今日のソフトウェア・メーカーは他社と高機能化を競いつつ、一方では利用者から低廉化を求められている。しかも、自社ソフトウェアが動作し既存業務の中で問題なく使えることを示すために試用の機会を提供する必要がある。このため、ソフトウェアは使用に耐える状態になる前にリリースされる傾向があり、実運用中にメーカーがテストしていない状況になったり使い方がされたりして初めてソフトウェア品質に関わる根本的な問題が発覚するということが少なくない。しかも厄介なことに、そうした未テストの状況や使用法にはセキュリティー上の脆弱性が潜在していることが多く、ハッカーにとっては豊饒の地なのだ。

 IT部門にとって、脆弱性の解消はビジネス上の要請だが、攻撃される前に対処するのはきわめて困難な仕事である。そこで、メーカーはIT部門が行うパッチの適用作業を自動化した。しかし、これは両刃の剣だった。確かにパッチの自動適用によってソフトウェア問題は速やかに解消され品質は向上する。しかし、その一方で、潜在する問題が軽視される傾向を生み、品質向上が開発段階から販売後にずれ込むことになったのだ。

 利用者は、往々にして、丸め誤差や競合やバッファーオーバーフローなどといった未テストの状況を作り出し、そこにバグがあれば速やかな改修を願う。一方では、メーカー自身を含め、誰もが「メーカーは製品を熟知している」と思いたがるが、事実は、自社製品についての多くを利用者から得ている。にもかかわらず、メーカーは最新パッチの適用を万能薬として推奨することをやめようとしない。その万能薬が意図しない重大な結果を引き起こすことがある。パッチの適用は問題を解決するかもしれないが、新たな問題の原因を作ることもあるし、時間や労力の無駄となることもあるのだ。したがって、パッチを無条件に適用するのは企業にとって適切な対策ではないのである。

推奨策

 企業の中には、パッチの適用を単独の作業と見なし、それに関わる時間と労力を削減する手段として自動化を捉えているところがある。しかし、パッチの適用は一連の手順から成る業務であり単発の作業ではない。しかも、単純には自動化し得ない処理を含んでいるものなのだ。通常、パッチを適用する業務は次のように進行する。

  • 現状把握:この手順は、通常、ソフトウェアとパッチレベルの調査から始まる。資産情報の収集作業を自動化するのはきわめて簡単だ。セキュア・シェル(SSH)、ウィンドウ・メッセージング・インタフェース(WMI)、システム管理フレームワークなど、利用できる技術が多数存在するからだ。しかし、そのデータを意味あるものにするには、人手により、業務の根幹に関わる情報と関係づける必要がある。たとえば、ノードのオーナーと役割、変更する場合それを許可する権限のある者などだ。パッチの適用は、この情報に基づいて決定する。これを怠れば、現行業務に応じた形でパッチを適用することはできない。
  • 分析:この手順では、認知した問題の改修をメーカーに求める。パッチが手に入ったら、安全性の十分な配慮の下でメーカーが示した情報を検討し、改修する必要性と優先度を評価する。
  • 改修:この手順では、欠陥を改修する対策を実際に施す。パッチを自動的にターゲット・ノードに送ってインストールし、その進捗を監視して問題があれば報告する。この手順には人手を要する作業も多々含まれる。まず、人がパッチの適用順序を決定する。実運用システムに適用する前に重要性の低いサーバーに適用するなどして、パッチの適用がほかのソフトウェアに影響しないことを確かめるためだ。そして、適用の時期を決定し、完全なバックアップを作り、変更作業手順に準拠してパッチを適用し、その実施を監視する。

 パッチを適用する時期は、常に、常識によって判断すること。同種の機能を持つマシンのパッチレベル、各種設定、ハードウェア構成、負荷レベルを可能な限り揃えること。所定の機能に対する標準構成を定めること。こうしておけば問題の把握と対処に役立つばかりでなく、複雑になりがちなインフラストラクチャーが見通しのよいものになる。

 パッチを自動化することによって、作業時間を大幅に短縮し人間にとって退屈な作業を大幅に削減することができる。IT管理者であれば、その重要性は理解しているだろう。しかし、パッチを速やかに提供すると強調するメーカーに対しては、品質に対する姿勢を疑ってみるべきだ。

Dave Nocera 熟練のコンピューター科学者。23年間の会社勤務を通じて、ハイエンドコンピューティングのあらゆる側面に携わる。運用の簡略化に関する特許を多数保有。技術報告書を多数執筆。技術革新に関し多くの賞や称号を授与された。全社的なITコンプライアンス・ソリューションを開発している企業VerifichiのCEOおよびCTO、Innovativ Systems DesignのCTO、AT&T Customer Care Technologiesでは1万名を超えるコールセンター職員を支える技術基盤を担当する最高インフラストラクチャー・アーキテクトを歴任。

ITManagersJournal.com 原文