QbookジャーナルQBOOK JOURNAL

システム障害やセキュリティ事故を防ぐパッチ管理の重要性

執筆者:Qbook編集部

システム障害やセキュリティ事故を防ぐパッチ管理の重要性

サーバーの脆弱性を利用した攻撃は、システム障害やセキュリティ事故につながる要因の一つです。これらの攻撃からシステムやデータを守るためには、ソフトウェア製品の開発側から提供されるセキュリティパッチを適用する必要があります。しかし、複数のソフトウェアに対して常に万全のセキュリティ対策をとることは手間も時間もかかるため、脆弱性を残したままシステムを運用しているケースも少なくありません。
今回の記事では、セキュリティパッチの役割や管理が必要な理由、パッチ管理を簡単にする方法などをご紹介します。

「セキュリティパッチ」とは?

セキュリティパッチとは、ソフトウェア製品に脆弱性が発見された際に、問題を修正するためのプログラムのことです。既存のプログラムに対して、後付けすることによって、セキュリティの脆弱性に対策を施します。

セキュリティパッチという名称は、洋服に空いた穴へ当てる布切れ(patch、パッチ)に由来するもので「プログラムにパッチを当てる」という表現をすることもあります。

セキュリティパッチは開発側のWebサイトを通じて無償でダウンロード配布されることが一般的であり、セキュリティパッチの数が多くなる場合は、1つにまとめて提供されることもあります。別名として、「ホットフィックス」と呼ばれることもあります。

人間がつくるプログラムにも完璧はありません。WindowsやMacのように非常によく使われているOSであっても、プログラムの脆弱性が見つかればそれを修正するセキュリティパッチがリリースされていることからも分かるように、リリース済の製品に何らかの問題が発見されることは珍しくありません。

そのような場合、ソフトウェア製品の開発側はセキュリティパッチを作成し、配布します。ユーザーはプログラムに対してセキュリティパッチを当てることで、脆弱性を狙った攻撃による危険を回避することができます。

セキュリティパッチを管理すべき理由

8607-00043-2

セキュリティパッチは、ダウンロードして該当製品に適用すればそれで良い、というわけではありません。
セキュリティパッチを適用する側のセキュリティリテラシーに大きく左右されるからです。

セキュリティに対しての意識が高く経験値の高いエンジニアであれば、パッチを適用しないことの危険性や適用に伴う不具合の発生リスクは認識済みと考えられます。
しかし、経験値の浅いエンジニアの場合、パッチを適用する必要性は分かっていても、パッチの適用順や適用履歴の管理まで意識がまわらない場合もあります。

Windowsサーバーの場合、セキュリティパッチを適用することで不具合が起きるケースが多かったため、なるべくパッチをあてずに運用でカバーしようとするエンジニアはまだまだ少なくありません。しかし、脆弱性を解決するセキュリティパッチを適用していないサーバーが標的となる攻撃は、いまだに多く存在しています。
何らかの事情でセキュリティパッチを適用できないとして、使用しているソフトウェア製品にどのような脆弱性があり、どのようなパッチが配布されているかはチェックしておく必要があるでしょう。

セキュリティパッチ管理の運用サイクルと課題

サーバーのOSにはさまざまなソフトウェア製品のセキュリティパッチが存在し、脆弱性が発見され次第リリースされるため、リリース時期もバラバラです。
しかも、適用するセキュリティパッチの順番やバージョンに関する情報を得ておかないと、適用後、システムに不具合が発生する場合があります。
そのため、セキュリティパッチを詳細に管理する必要があり、同時にサーバー管理者への負担が増大します。

セキュリティパッチを適用する際、各ベンダーから公開される情報をもとに、セキュリティパッチを反映するための計画を立てるのがおすすめです。以下のような運用サイクルで考えてみてはいかがでしょうか。

(1)脆弱性情報の確認

インターネット上に公開されている、該当するソフトウェア製品の脆弱性に関する情報を確認します。ベンダーからはセキュリティパッチが配布される際に、そのソフトウェアが抱えている脆弱性についての詳細情報が公開されます。最新情報は常にチェックするようにしておくとよいでしょう。

(2)脆弱性有無の状況を把握

ソフトウェア製品に脆弱性があるかどうかの把握を行います。ソフトウェアのバージョンによって、脆弱性がある場合とない場合があります。一般的には古いバージョンの方が脆弱性は高いとされています。しかし、バージョンアップしたことで、古いバージョンには存在しなかったセキュリティホールが発見されることもあるため、こちらも最新情報は常にチェックする必要があります。

(3)最新セキュリティパッチの入手

セキュリティパッチの適用が必要と判断したら、次は最新のセキュリティパッチを入手します。インターネット上からダウンロードし、セキュリティパッチを適用することが通常の適用方法です。この際、1つのソフトウェア製品に対して複数のパッチ適用が必要な場合、適用順の情報も提供されていることがあります。

(4)セキュリティパッチ適用のスケジュールを作成

セキュリティパッチを適用するソフトウェア製品のピックアップ、パッチの種類やバージョン、適用順序などを踏まえてスケジュールを作成します。
稼働中のシステムに対してパッチの適用を行う場合、システムを停止して行う方が安全と言えるでしょう。適用するパッチの数や内容によって時間が変わるだけでなく、システムに問題がないか動作確認する時間も必要です。
さらに稼働中のシステムとは別に開発用のシステムをお持ちの場合は、まずは開発用で(5)~(6)を実施し、問題ないことを確認してから稼働中のシステムに適応するといったスケジュールを作成するとよいでしょう。

(5)セキュリティパッチ適用の実施

作成したスケジュールにしたがい、セキュリティパッチの通知と適用を実施します。実施状況は常時確認するようにしましょう。実施しっぱなしで放置してしまうと、適用途中で不具合が発生した際に膨大なログを調査するなどの手間がかかります。

(6)適用後の確認

セキュリティパッチ適用後に新たな不具合が発生していないかを確認します。セキュリティパッチを適用したことが原因で、システムに不具合が発生することもあるからです。パッチ適用のスケジュール作成の際、稼働システムの確認項目や確認方法などについても決めておくことをおすすめします。

(1)~(6)は運用サイクルの一例です。このような考え方でセキュリティパッチの運用サイクルを定めておけば、パッチを適用するスケジュール管理もしやすくなります。

セキュリティパッチ管理を簡単にする方法

8607-00043-3

セキュリティパッチの管理は必要ですが、頻繁にパッチがリリースされる場合、管理が複雑になってしまいます。

そのため、できればマンパワーによる管理を簡単にすることで工数を削減したいものです。

パッチ管理ツールの利用

パッチ管理ツールは管理するシステムの規模によって、ツールの選定基準が異なると考えられます。大規模なシステムの場合、サーバー1台毎に手動でセキュリティパッチを適用することは現実的ではありません。ネットワーク上に接続しているサーバーの脆弱性を自動的に検出して、必要なパッチをリストアップしてくれるツールが望ましいでしょう。

「アプリケーション仮想化」技術

このほか、「アプリケーション仮想化」技術によって、セキュリティパッチ管理の管理工数を軽減することも可能です。

「デスクトップ仮想化」は、クラウド上にある仮想OSに接続し、デスクトップ画面を表示させますが、アプリケーション仮想化技術は、デスクトップ画面の代わりにアプリケーション画面のみをパソコン上に表示させます。
企業で社員が使用するPCに対してセキュリティパッチを適用する際、サーバー上のアプリケーションをアップデートして新しく公開することで、サーバーに接続する全てのパソコンは脆弱性が解決されたアプリケーションを使うことができます。

このアプリケーション仮想化技術を活用することによって、一台一台のパソコンのパッチを管理することなく、管理工数を削減することができます。

おわりに

今回の記事では、セキュリティパッチとは何か?をご紹介した上で、パッチ管理の必要性、そしてパッチ管理を簡単にする方法をご紹介しました。

セキュリティパッチは適用すればよいという単純な話ではなく、しっかりとした管理も重要です。
アプリケーション仮想化を導入することによって、セキュリティパッチ管理を楽に行うこともできますので、導入を検討してもよいでしょう。

資料ダウンロード

ライター:Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。