サーバーの脆弱性を利用した攻撃は、システム障害やセキュリティ事故につながる要因の一つです。これらの攻撃からシステムやデータを守るためには、ソフトウェア製品の開発側から提供されるセキュリティパッチを適用する必要があります。しかし、複数のソフトウェアに対して常に万全のセキュリティ対策をとることは手間も時間もかかるため、脆弱性を残したままシステムを運用しているケースも少なくありません。
今回の記事では、セキュリティパッチとは何か、役割や管理が必要な理由、パッチ管理を簡単にする方法などをご紹介します。
- もくじ
1.「セキュリティパッチ」とは?
1-1 セキュリティパッチとは
セキュリティパッチとは、ソフトウェア製品に脆弱性が発見された際に、問題を修正するためのプログラムのことです。既存のプログラムに対して、後付けすることによって、セキュリティの脆弱性に対策を施します
セキュリティパッチという名称は、洋服に空いた穴へ当てる布切れ(patch、パッチ)に由来するもので「プログラムにパッチを当てる」という表現をすることもあります。
セキュリティパッチは開発側のWebサイトを通じて無償でダウンロード配布されることが一般的であり、セキュリティパッチの数が多くなる場合は、1つにまとめて提供されることもあります。別名として、「ホットフィックス」と呼ばれることもあります。
人間がつくるプログラムにも完璧はありません。WindowsやMacのように非常によく使われているOSであっても、プログラムの脆弱性が見つかればそれを修正するセキュリティパッチがリリースされていることからも分かるように、リリース済の製品に何らかの問題が発見されることは珍しくありません。
そのような場合、ソフトウェア製品の開発側はセキュリティパッチを作成し、配布します。ユーザーはプログラムに対してセキュリティパッチを当てることで、脆弱性を狙った攻撃による危険を回避することができます。
1-2 セキュリティパッチの必要性
セキュリティパッチは脆弱性の問題の修正や、セキュリティ対策の強化のために必要です。ソフトウェア製品は、セキュリティの脆弱性や欠陥を抱えることがあります。こういった脆弱性があると、サイバー攻撃を受けやすくなり、機密情報を盗み出したり、悪意のあるプログラムを実行されたりなどのリスクが高まります。
セキュリティパッチによって、不正アクセスによる攻撃を防止することで、結果的にマルウェアの感染防止につながり、システムの安全性を向上させることができます。
さらには、新たなセキュリティの脅威や攻撃手法に対応することも重要です。定期的なセキュリティアップデートにより、新たな攻撃からシステムを保護し、最新のセキュリティ機能や防御策を取り入れることができます。
2.セキュリティパッチは管理も重要
セキュリティパッチは、ただダウンロードして該当製品に適用すればそれで良い、というわけではありません。しっかりとした管理も必要になります。
セキュリティに対しての意識や経験値が高いエンジニアであれば、パッチを適用しないことの危険性や適用に伴う不具合の発生リスクは認識しているでしょう。
しかし、経験値の浅いエンジニアの場合、パッチを適用する必要性は分かっていても、パッチの適用順や適用履歴の管理まで意識がまわらないケースもあります。
また、Windowsサーバーの場合、セキュリティパッチを適用することで不具合が起きるケースが多かったため、なるべくパッチをあてずに運用でカバーしようとするエンジニアもいます。しかし、脆弱性を解決するセキュリティパッチを適用していないサーバーは、攻撃の標的になりやすいです。
何らかの事情でセキュリティパッチを適用できないとして、使用しているソフトウェア製品にどのような脆弱性があり、どのようなパッチが配布されているかはチェックしておく必要があるでしょう。
3.セキュリティパッチ管理の「課題を解消する」運用サイクル
サーバーのOSにはさまざまなソフトウェア製品のセキュリティパッチが存在し、脆弱性が発見されてから公開されるため、リリース時期もバラバラです。加えて、適用するセキュリティパッチの順番やバージョンに関する情報を得ておかないと、適用後、システムに不具合が発生する場合があります。
そのため、セキュリティパッチを詳細に管理する必要があり、同時にサーバー管理者への負担が増大します。
セキュリティパッチを適用する際、各ベンダーから公開される情報をもとに、セキュリティパッチを反映するための計画を立てるのがおすすめです。以下のような運用サイクルで考えてみてはいかがでしょうか。
3-1 脆弱性情報の確認
インターネット上に公開されている、該当するソフトウェア製品の脆弱性に関する情報を確認します。ベンダーからはセキュリティパッチが配布される際に、そのソフトウェアが抱えている脆弱性についての詳細情報が公開されます。最新情報は常にチェックするようにしておくとよいでしょう。
3-2 脆弱性有無の状況を把握
ソフトウェア製品に脆弱性があるかどうかの把握を行います。ソフトウェアのバージョンによって、脆弱性がある場合とない場合があります。一般的には古いバージョンの方が脆弱性は高いとされています。しかし、バージョンアップしたことで、古いバージョンには存在しなかったセキュリティホールが発見されることもあるため、こちらも最新情報は常にチェックする必要があります。
3-3 最新セキュリティパッチの入手
セキュリティパッチの適用が必要と判断したら、次は最新のセキュリティパッチを入手します。インターネット上からダウンロードし、セキュリティパッチを適用することが通常の適用方法です。この際、1つのソフトウェア製品に対して複数のパッチ適用が必要な場合、適用順の情報も提供されていることがあります。
3-4 セキュリティパッチ適用のスケジュールを作成
セキュリティパッチを適用するソフトウェア製品のピックアップ、パッチの種類やバージョン、適用順序などを踏まえてスケジュールを作成します。
稼働中のシステムに対してパッチの適用を行う場合、システムを停止して行う方が安全と言えるでしょう。適用するパッチの数や内容によって時間が変わるだけでなく、システムに問題がないか動作確認する時間も必要です。
さらに稼働中のシステムとは別に開発用のシステムをお持ちの場合は、まずは開発用で(5)~(6)を実施し、問題ないことを確認してから稼働中のシステムに適応するといったスケジュールを作成するとよいでしょう。
3-5 セキュリティパッチ適用の実施
作成したスケジュールにしたがい、セキュリティパッチの通知と適用を実施します。実施状況は常時確認するようにしましょう。実施しっぱなしで放置してしまうと、適用途中で不具合が発生した際に膨大なログを調査するなどの手間がかかります。
3-6 適用後の確認
セキュリティパッチ適用後に新たな不具合が発生していないかを確認します。セキュリティパッチを適用したことが原因で、システムに不具合が発生することもあるからです。パッチ適用のスケジュール作成の際、稼働システムの確認項目や確認方法などについても決めておくことをおすすめします。
(1)~(6)は運用サイクルの一例です。このような考え方でセキュリティパッチの運用サイクルを定めておけば、パッチを適用するスケジュール管理もしやすくなります。
4.セキュリティパッチ管理を簡単にする方法
セキュリティパッチの管理は必要ですが、頻繁にパッチがリリースされる場合、管理が複雑になってしまいます。
そのため、できればマンパワーによる管理を簡単にすることで工数を削減したいものです。
パッチ管理ツールを利用する
パッチ管理ツールは管理するシステムの規模によって、ツールの選定基準が異なると考えられます。大規模なシステムの場合、サーバー1台毎に手動でセキュリティパッチを適用することは現実的ではありません。ネットワーク上に接続しているサーバーの脆弱性を自動的に検出して、必要なパッチをリストアップしてくれるツールが望ましいでしょう。
アプリケーション仮想化技術を活用する
「アプリケーション仮想化」技術によって、セキュリティパッチ管理の管理工数を軽減することも可能です。「アプリケーション仮想化」とは、アプリケーションをサーバ上で保管するシステムのことです。
通常、アプリケーションのアップデートはユーザーで管理しなければならず、アップデートをしていない人がいると、そこから攻撃を受けてしまうこともあります。そこで、アプリケーションを仮想化することによって、サーバ上での管理ができ、サーバに接続する全てのパソコンは脆弱性が解決されたアプリケーションを使うことが可能になります。
このアプリケーション仮想化技術を活用することで、一台一台のパソコンのセキュリティパッチを管理することなく、管理工数を削減することができます。
まとめ
今回の記事では、セキュリティパッチとは何か?をご紹介した上で、パッチ管理の必要性、そしてパッチ管理を簡単にする方法をご紹介しました。
セキュリティパッチとは、ソフトウェア製品に脆弱性が発見された際に、問題を修正するためのプログラムのことです。セキュリティパッチは適用すればよいという単純な話ではなく、しっかりとした管理も重要です。今回ご紹介した運用サイクルを試してみてください。
また、ツール利用やアプリケーション仮想化を導入することによって、セキュリティパッチ管理を楽に行うこともできますので、検討してもよいでしょう。