修正プログラムよりサービス パックが優れている理由

システムを安全な状態に保つ方法を検討する場合、多くの人はサービス パックではなくセキュリティ修正プログラムを使おうと考えます。実際、セキュリティの保守を行うときに犯しがちなミスとして、修正プログラムに頼りすぎ、サービス パックをあまり使用しないということが挙げられます。両者に大きな違いがあること、および大規模な作業には修正プログラムではなくサービス パックを使うべきであるということについて、知らない方もいるかもしれません。ここでは、修正プログラムとサービス パックの違い、およびこの両者を最も効率的に使用する方法について説明します。

ソフトウェアの分類

動植物を科、属、種に分類するのと同じように、マイクロソフトのソフトウェアも簡単に分類して、その内容と目的を示すことができます。分類の大きい順から、よく使われる用語を紹介します。

  • "製品ファミリ" は、関連する目的をもつ製品の集まりです。たとえば、Windows(R) 製品ファミリには、Windows 3.11、Windows 95、Windows 2000 などすべての Windows オペレーティング システムが含まれます。
  • "製品" は製品ファミリの中の 1 つです。たとえば、Windows NT は Windows ファミリの中の 1 製品です。
  • "バージョン" は製品のインスタンスです。たとえば、Windows NT 3.5、Windows NT 4.0、および Windows 2000 は Windows NT 製品の各バージョンです。
  • "Service Pack" は、製品の 1 つのバージョンでの問題を修正する定期的なアップデートです。たとえば、Windows NT 4.0 には 6 つのサービス パックがあります。マイクロソフト製品の中には、サービス パックではなく "サービス リリース" という用語を使うものもありますが、意味は同じです。
  • "修正プログラム" は 1 つのサービス パックがリリースされてから次が出るまでの間に発生するアップデートです。"ホットフィックス" と呼ばれることもあります。ほとんどの修正プログラムはセキュリティの脆弱性を修正するために開発されますが、安定性やパフォーマンスに関する重要な問題を修正するために作成されるものもあります。ただし、ここではセキュリティ修正プログラムについてのみ説明します。

以上のように、サービス パックとセキュリティ修正プログラムは密接に関連しています。どちらも、マイクロソフトが製品のバグを修正するための手段です。ただし、似ているのはそこまでです。修正プログラムとサービス パックの目的は完全に異なります。また、両者の違いについて理解すると、それぞれを効率的に使用することができます。

サービス パックは計画的に配信される

サービス パックと修正プログラムの最も重要な違いは、サービス パックが計画的に配信されるものであるのに対し、修正プログラムは問題解決に重点を置いたものであるという点にあります。つまり、サービス パックは慎重にプランニングおよび管理されたものであり、その目的は、お客様のシステムでの使用に適した、十分にテスト済みの総括的な修正セットを配信することにあります。それに対し修正プログラムは、お客様のセキュリティに直ちに脅威を与える特定の問題に対処するために、必要に応じて開発されるものです。

サービス パックについて覚えておくべき重要な点は、サービス パックが "計画的に" リリースされるものであるという点です。サービス パックについては、その数、リリース頻度、顧客への配信方法も含め、すべてが計画されています。マイクロソフトが綿密に計画を練る理由は、サービス パックのリリース直後に、すべての顧客にサービス パックを適用してほしいと考えていることにあります。

サービス パックの内容は慎重に選択されており、ある間隔で配信されますが、この間隔の選択は非常に慎重に行われています。仮に小規模のサービス パックを頻繁にリリースするとすれば、管理者はわざわざ時間と手間をかけて数百から数千のコンピュータに適用するほどの価値はないと判断してしまう可能性があります。一方、非常に大きな規模のサービス パックを長い間隔を空けてリリースしたとしても、管理者は大幅なコード変更に対してインストールをためらってしまうかもしれません。そのため、マイクロソフトでは管理者がすぐにインストールしてくれるようなサイズと頻度で、サービス パックをリリースするように心がけています。

修正プログラムはその反対です。サービス パックの内容や頻度は簡単には変更できないため、サービス パックの間に発生したセキュリティ問題に対処するための暫定措置として、修正プログラムが作られます。修正プログラムはその性質上、計画的に作成されるものではなく、できる限り作成しないで済むことが望ましいものです。しかしソフトウェア開発は予測がつかないものであり、常にバグが存在しています。そのバグの中には、セキュリティに影響を及ぼすものもあります。その結果、常に修正プログラムが必要となるのです。しかし、修正プログラムはサービス パックに代わるものではありません。サービス パックには、修正プログラムにはない 2 つの大きな利点があります。

サービス パックは各種のバグに対処している

サービス パックでは、修正プログラムよりも極めて多彩な内容に対応しています。このことは、次の 3 つの点から評価できます。

  • サービス パックはさまざまな種類のバグに対処しています。サービス パックが対処するのはセキュリティ バグだけではありません。安定性、パフォーマンス、製品の機能などのさまざまな領域のバグにも対処しています。それに対し、修正プログラムは完全にある領域の 1 つの問題にのみ焦点を当てています。
  • サービス パックは大きなバグと共に、小さなバグも解決します。一方、顧客側には修正プログラムのインストールよりも大切な仕事があるということは承知しているので、時間を割いてでも対処する必要のある問題に対してのみ、修正プログラムを開発するようにしています。
  • サービス パックはこれまでの変更分を含んでいます。サービス パックには、その製品に対する過去のサービス パックがすべて含まれます。たとえば、Windows NT 4.0サービス パック6a にはサービス パック1 から 5 のすべての変更内容が含まれます。また、リリースされたすべての修正プログラムについて、次のサービス パックには必ず修正プログラムが含まれるようにしています。

これまでに説明した内容をすべてまとめると、サービス パックはシステムを最高の状態に保つための最善の方法であるということになります。もちろん修正プログラムも重要な役割を果たしますが、マイクロソフトがリリースした修正プログラムをすべてインストールするよりも、単に最新のサービス パックをインストールする方が、より多くのバグを解決できます。

サービス パックは十分にテストされている

サービス パックは計画的にリリースされているため、品質に重点が置かれています。つまり、製品自体と同じ品質が得られるまで、サービス パックはリリースされないということです。サービス パックは、開発時に絶えずテストされます。その後、数週間かけて厳密な最終テストが行われます。これには、数百や数千のサードパーティ製品と併せたテストも含まれます。このテストによって、必要な品質基準を満たさなくなるようなバグが見つかった場合は、サービス パックのリリースを遅らせます。

それに対し、セキュリティ修正プログラムを開発する場合には、迅速さが最優先事項になります。セキュリティ修正プログラムは、顧客への明確な危険に対応するために作成されるものだからです。その結果、テストを徹底的に行うことと、修正プログラムをできるだけ早く配信することとのバランスをとらなければならなくなります。テストをどの程度行うかは、次のような複数の要因から決定されます。

  • その問題は一般的なものであるか。一般的なものである場合、問題に極めて迅速に対処する必要があるため、修正プログラムをテストする時間は短くなります。セキュリティの脆弱性が見つかったときに、セキュリティの専門担当者がベンダと共に作業することがありますが、これは修正プログラムの品質を改善するためです。
  • 修正プログラムによってどの機能が影響を受けるか。脆弱性に対処する修正プログラムがオペレーティング システムのコア機能に影響を与える場合は、システムの独立した 1 か所にのみ影響を与える修正プログラムに比べ、より慎重にテストする必要があります。
  • 修正プログラムによってどのサードパーティ製品が影響を受けるか。サードパーティ製品と マイクロソフト製品の連携方法を変更するような修正プログラムでは、より多くのテストが必要になります。

修正プログラムは、与えられた時間的制約の中で、できる限り徹底的にテストするようにしています。しかし、結局のところ修正プログラムにエラーが含まれる可能性は、サービス パックの場合よりも高いということになります。

両者を効率よく利用する方法

ここまでの説明から想像が付くかもしれませんが、システムを安全に保つ最善の方法は、最新のサービス パックをインストールし、次のサービス パックがリリースされるまでの間は、システムの保護に必要となる修正プログラムに限って使用することです。そのためには、具体的に何をすればよいのでしょうか。

まず、サービス パックの適用を計画する必要があります。古いサービス パックを実行してから、そこに修正プログラムを 1 つずつ適用していくのは、システムを最新の状態にするための効率的方法とは言えません (古いサービス パックを実行するだけで、修正プログラムはインストールしないという方法よりはずっとましですが)。サービス パックを事前に評価するためのテスト期間を設け、迅速にサービス パックを配布するための計画とポリシーを作成することを検討してください。サービス パックを事前に評価する手段として、サービス パックベータ プログラムに参加してもよいでしょう。

次に、インストールする修正プログラムは慎重に選んでください。マイクロソフトが各セキュリティ情報に必ず FAQ を付ける理由の 1 つは、脆弱性によって発生するリスク、影響を受ける可能性のある内容、影響を主に受けるコンピュータについて、顧客に正確に理解してもらうことにあります。自分の環境には当てはまらない脆弱性については、修正プログラムを適用する必要はありません。また、脆弱性によるリスクに従って修正プログラムを分類することを検討してください。脆弱性によってシステムに重大なリスクが発生する場合は、修正プログラムをすぐに適用してください。一方、それほど重要ではない脆弱性については、定期的なアップデート プロセスを設けて、複数の修正プログラムを 1 度にインストールするようにしてください。これにより、管理者とユーザー両方の負担が軽くなります。

このような指針に従うことで、管理者は時間を節約でき、ユーザーの満足を得られ、そしてなによりも、セキュリティを改善することができます。各ツールを最大限に活用してください。

マイクロソフトSecurity Response Center (MSRC) セキュリティ プログラム マネージャ。MSRC との連絡方法についてはhttps://www.microsoft.com/technet/security/contact.mspxを参照してください。