エクスプロイト&脆弱性
組織における脆弱性管理の課題とベストプラクティスを解説
脆弱性対応のためのパッチ適用作業は、情報システム部門やセキュリティチームにとっては悩ましい仕事です。これは、担当するチームにおいては日常業務のうちのごく一部にすぎないためです。
脆弱性対応のためのパッチ適用作業は、情報システム部門やセキュリティチームにとっては悩ましい仕事です。これは、担当するチームにおいては日常業務のうちのごく一部にすぎないためです。しかしながら、年間のソフトウェア脆弱性発見は大きく増加しており、適切に対応するための負担が増えています。ランサムウェア攻撃をはじめ脆弱性を悪用する攻撃が増加していることも考えると、これまで以上に組織は脆弱性対応の方法を工夫して対応していく必要があります。本記事では、パッチ管理を取り巻く現状を確認した上で、組織が抱える問題およびベストプラクティスについて紹介します。
[参考(英語):TrendMicro - Cybercrime and exploits: Attacks on unpatched systems]
図1:1年間にCVE番号が割り当てられたソフトウェアの脆弱性の数の推移
■パッチ管理の最新事情
一般的に、エンドポイントに対するパッチの適用は、過去と比べれば単純化・自動化され効率的になってきています。しかしながら、サーバ側のパッチ適用においてはまったく別の課題があります。サーバの場合、必要な対策をただちに実装するのを躊躇させる主な要因としてダウンタイムの影響があります。パッチを適用すると、サーバ上で常時稼働しているサービスなどの継続性が妨げられる可能性があります。また、パッチ自体にバグがあると、新たな脆弱性が生じるなどの問題を引き起こし、あらわになった問題を修復できなければ、事業の中断が発生しかねません。さらに、ベンダがパッチに追加した「その他」の修正が潜在的に安全でなかったり、システムの再起動を必要としたりする場合もあります。特に産業用制御システム(ICS)では、パッチ適用のために再起動を実施するのは、共用の組み込みシステムに影響を与えることになり問題があります。
パッチの簡素化という観点では、Microsoftに関しては、システム管理者や利用者が適用するパッチを個別に決めるという時代は過ぎ去りました。現在では、どのシステムでも、それがサーバであれエンドポイントであれ、累積的にパッチを適用します。しかし、この変化は、ITチームに別の懸念をもたらしました。
これまでは、ソフトウェアベンダ各社がMicrosoftの「パッチチューズデー」に合わせる形でパッチを展開してきました。そんな中で一部のベンダはパッチのリリースに遅れが生じることがあり、これは遅れた時間の分だけパッチが累積することになるため問題が大きくなります。脆弱性の発覚から攻撃の悪用までの期間が短くなっていることを踏まえると、パッチリリースの遅れは多くの企業にとって大きな問題の元になりかねません。
インフラやサービスの環境変化に注目すると、大きく普及したクラウドにはパッチ関連をはじめ多くの利点があります。また、クラウドサービスプロバイダ(CSP)が契約者にとって便利なサービスを提供するようになったため、パッチ適用に関する問題も少なくなっています。その一方で、クラウドの成長はサイバー犯罪者の関心も集めています。組織がオンプレミスでホストしているアプリケーションやサーバをクラウドのコンテナやプラットフォームに移行する際、構造の違いに合わせたセキュリティ対策の変更が必要となりますが、これを見落としてしまう場合があります。サイバー犯罪者は、設定ミスやコンテナの不具合など、隙を残したまま油断している企業をもっとも効率よく見つける方法を編み出しています。そうして見つけた隙をサイバー犯罪者は悪用し、コンテナの中に入り込み、ネットワークに侵入してもすぐには気付かれない方法を探そうとします。
以前から問題となっていたパッチの適用の問題を解決するために組織が使い始めた方法の1つとして、ベンダの提供する「サービスとしてのパッチ適用」(Patching-as-a-Service)があります。これは、サービスプロバイダが月例のパッチ更新を担当してくれるというサービスであり、サービスプロバイダに毎月のアップデート実施の責任を持たせるというものでした。クラウドベースのソリューションは、企業にもたらす柔軟性やスピード感など効率化も人気を集めています。
セキュリティやプライバシーに関する顧客の問い合わせ対応だけでなく、セキュリティリサーチャやハッカーによる脆弱性発見の通知や開示、さらにはベンダの脆弱性修正対応も絶え間なく改善されています。組織における効果的なパッチ管理ポリシー確立にはさまざまな課題がありますが、環境の変化に対応しながら継続的な見直しを図ることで、サイバーセキュリティ対策力全体をより強固なものにすることができます。
■課題とベストプラクティス
企業は以前より、サイバーセキュリティ体制の改善を意識するようになっています。これは、OSはパッチやアップデートが必要なものだと人々が認識するようになったことが大きく寄与しています。セキュリティやデータプライバシーに対する市場の要求を背景に、パッチの展開に向けた改善が求められており、これを受けてメーカーやベンダのパッチリリースのペースアップが促されています。実際に業界を見渡すと、企業や利用者のパッチ自動適用を支援するツールやアプリが増えていることがわかります。
パッチ管理を定期的に実施する際の課題に挙げられることの多い点は、次のとおりです。
●【パッチ管理リソースの問題】基本的に、すべてのベンダが「パッチチューズデー」と同日にパッチを展開しているわけではありません。そのため、システム管理者は、関連するシステムすべてについて、ばらばらになっているパッチリリースサイクルを全て追跡することは難しいという問題があります。
加えて、組織におけるスキルを持ったサイバーセキュリティ人材の不足が深刻化しています。この問題は現在も続いており、組織における適切なサイバーセキュリティ体制を維持する上での課題となっています。また、製造関連のICT技術発展に伴いシステムの数が増加したことで、パッチ管理がさらに難しくなっている可能性もあります。組織のセキュリティチームは、パッチの適用がサイバーセキュリティ対策の基礎だとは分かってはいますが、脆弱性を管理や識別、実装の能力などがリソースの観点から不足しています。
ベストプラクティス ― 実務担当者に対し、定期的なパッチの展開ができるかどうかを通知するような、確立された業界標準というものは未だ存在しません。すべてのベンダがリリースを自動化できるわけではありませんが、情報は各社のニュースサイトまたはブログサイトで提供されているケースが少なくありません。場合によっては、特定のメールボックスと連携可能なEメールリストやRSSフィードを作成するベンダもいます。
パッチと脆弱性の管理は、従来のITおよびセキュリティの運用業務と考えるのではなく、より広範な、特にDevOpsや運用のセキュリティに関わる戦略の一部と考えるべきです。資産管理においては、インベントリの整理が大切な手順の1つです。運用に関わるすべての資産を常時把握・監視することが重要になります。なお、監視から異常を検出するためには、トラフィックや挙動のパターン、OSのバージョン、ネットワークアドレス、認証情報の適切な確認や管理などが挙げられますが、これらはほんの一部にすぎません。
ほとんどのパッチは、一般に公開されてから数時間以内に利用可能になります。これを踏まえて即時に自動で適用すれば、リスクのある期間を大幅に狭めることができます。これは、仮想パッチ、恒久的なパッチ適用のいずれの場合も同じです。
●【ソリューションが断片化しているために起きる誤検出や誤った優先順位付け】1つの環境に特化したソリューション(例:メールセキュリティソリューション)が、別のソリューション(クラウドサーバソリューション)で既に対応している脆弱性に対して、誤って検出フラグを立てる、あるいはその逆が起きる可能性があります。これは単純な例ですが、このように互いに孤立したソリューションのせいで、セキュリティチームが誤検出を追跡するはめになったり、リスクの低い脆弱性に時間を取られたりすると、重大な脆弱性への対応が置き去りになってしまう恐れがあります。そうなると、未確認の脆弱性が溜まりパッチが適用されないままとなり、システムが悪用や侵入などさらなる高いリスクにさらされるかもしれません。
ベストプラクティス ― ソリューションによる検出を一元的に見ることができるようになると、潜在的な脅威の発端を探しやすくなります。SIEM(セキュリティ情報とイベント管理)や人工知能(AI)、脅威インテリジェンスなどを最大限活用することで、SOCや情報システム部門は異なる環境における検出の関係性を見て、より大きなコンテキストで調査と対応を行えます。この可視性を実現することで、脆弱な領域の検出も行うことが可能になり、誤検出を減らして総合的な対応を強化できます。
●【クラウドソリューションへの参入によって新たな隙や見落とされる隙が生じる】常に新しい機能を提供し続ける企業は、必然的に顧客が操作するアプリケーションの数が増えていきます。クラウド移行によってこの効率が一層高まった一方で、自社のセキュリティ対策状況の追跡ができなくなっています。クラウドに移行する場合、企業が絶対に考慮しなければならない点がいくつかあります。たとえば、アプリケーションは安全に設計されているか、APIは安全か、アプリの脆弱性は修正されているか、コンテナのカスタマイズや設定は適切か、認証や権限のトークンは正しく実装されているか、などです。
ベストプラクティス ― クラウドであれ、オンプレミスであれ、アプリケーションとクラウドコンテナを対象として、同様の厳格ないテストを実施することが最重要です。基本的なビルドを行う際は、コンテナとアプリケーションのガバナンスおよびポリシーに関するチェックリストを用意しておき、以後の開発におけるセキュリティを確実なものとすることが大切です。開発者は、ベースイメージに脆弱性がないことを確認し、全体をスキャンしてから、本番環境に導入するようにします。また、ベースイメージがビルドの基盤として使えることをしっかり確認し、パッケージやバイナリ、ライブラリの根本的な安全性を確保します。
さらに企業は、あるサービスやシステムを利用する際は、対象サービス契約前にリスク調査を行い、必要なアップデートや脆弱性対応ができていることを確認しておく必要があります。契約前の分析では、履歴データ、変更管理、導入済みパッチの適用範囲、問題管理・リスク管理を調査しておく必要があります。また、契約後の定期的なスキャンも同じく重要です。
●【テレワーク環境におけるシステムの脆弱性管理】 テレワークによってパッチ適用端末が各所に分散している場合、管理者はパッチ適用の際にさまざまな問題にぶつかる可能性があります。システムによっては、更新が必要なマシンを管理者が物理的に操作しなければならない場合もあります。また、日程や適用内容が確実でないと、組織にとってのリスクがさらに高まります。特に、レガシーな産業用システム(ICS)についてはリモートで修正作業を行うのは難しいと言えます。
ベストプラクティス ― ひとくちに脆弱性といっても、さまざまな脆弱性があります。図2に示すとおり、公開された脆弱性のうち、実際に悪用されたものは少なく、侵入に使われたものはさらに少数です。対応リソースが限られていることも踏まえると、ただちにパッチを適用しなければならない脆弱性への優先順位付けは、企業の管理者やユーザにとって非常に重要です。そのためには、脆弱性に関する有用な情報を提供してくれる情報源を確保する、システムおよびソフトウェアのインベントリを明確にする、脆弱性評価を行う、スキャン・検証ツールを利用する、パッチ展開の対策を用意しておく(エージェントベースの展開、エージェントレスの展開)ほか、リスク軽減のために継続的な改善計画を策定することなどが挙げられます。
パッチの適用にオンサイトでの物理的な操作が必要な場合は、修正する特定の環境で検出された脆弱性を特定しておけば、情報が開示されている多数の脆弱性の中から、どの対応を優先すればよいかを管理者が決定できます。これは、修正に使うのが恒久的パッチであっても、仮想パッチであっても同じです。特にICSについては、システム管理者やITチームがシステムのパッチ適用を検討している場合や、特定の手順やモデルを用意していない場合は、優先順位付けが欠かせません。
図2:2019年に公開されたCVEのうち、悪用されたものの内訳
図3:エンタープライズ環境で検出された脅威に対するパッチ適用の優先順位調整(出典:Gartner)
■仮想パッチの有効性
仮想パッチは、パッチ管理における重要な対応策のひとつです。脆弱性が明らかになると、ベンダやメーカーが必要なパッチを用意して展開するまでに時間がかかります。そこで、恒久的な解決策ができあがるまでのつなぎとなるのが、仮想パッチによる一時的な修正です。これにより、企業は各社のペースでパッチを適用することができ、不要なダウンタイムの回避にも役立ちます。特に、ゼロデイ脆弱性に対しては、仮想パッチが既知および未知の悪用からシステムおよびネットワークを保護する追加のセキュリティ層となります。
この例として、Microsoft Exchange Serverにおけるリモートコード実行の脆弱性「CVE-2020-0688」を取り上げます。この脆弱性は、トレンドマイクロの脆弱性発見コミュニティ「Zero Day Initiative(ZDI)」を通じて、2019年11月の最終週にマイクロソフトに報告され、2019年12月7日に仮想パッチが先行してリリースされました。ベンダであるマイクロソフトによるパッチは、仮想パッチのリリースから66日後に提供され、ベンダのパッチが展開されてから1か月後に活発な攻撃が観測されました。つまりこの事例では、その間となる3か月以上にわたり、仮想パッチが活用されました。
また、レガシーシステムを使用している企業や組織では、セキュリティサポートが終了した後に仮想パッチが代わりのセキュリティ保護にもなります。優れた仮想パッチソリューションは、物理環境、仮想環境、クラウド環境などのさまざまな環境に対応できるよう多層構造になっており、企業に不可欠な運用の持続性を確保します。
■まとめ
サイバー犯罪者は、組織を攻撃するために脆弱性を探し続けています。現在の技術開発はペースが速く、幅広い領域で生産性と利便性の向上に貢献していますが、悪意のある攻撃者もこのスピードの恩恵を受けており、より大きな不正利益を得られるような弱点を数多く見つけています。組織は、悪用によって不正な侵入や侵害につながる可能性のある内部要因や外部要因に気を配る必要があります。脆弱性管理やパッチ管理の方法などについても、プロアクティブとまではいかないにしても、市場やサービス、製品の提供、需要に合わせて、同時並行で迅速な進化が必要です。
大きな課題ではありますが、技術の変化と進歩によって利用者やベンダのセキュリティ意識も高まっています。発見および公開されている脆弱性の数がここまで増加の一途をたどっているのは、セキュリティ専門家の欠陥を見つける能力が高まっているからなのか、それとも脆弱なシステムがますます市場にあふれ出すようになり、攻撃と脅威が急増しているからなのかは検討する必要がありそうです。ただし、その理由が何であれ、発生した脆弱性は対処していかなければなりません。ユーザは自身のセキュリティ意識を高め、攻撃する隙をなるべく作らないように努める必要があります。ユーザが優れたセキュリティを求めれば、サプライヤは常にこれに応えるようになり、業界全体のセキュリティレベルはお互いを刺激しあいながら高まっていくといえます。
参考記事:
- 「The Nightmares of Patch Management: The Status Quo and Beyond」
by Trend Micro