ユーザー企業における脆弱性対応の課題とSSVCの活用

2023-03-02

企業における脆弱性対応の判断方法(これまでの企業の脆弱性対応の在り方)

先に説明したとおり、脆弱性対応においてCVSSのスコアを活用している企業は数多く存在しますが、CVSSには意思決定に関わるガイドがありません。そのため、企業はCVSSを活用する際、独自の判断基準を設ける必要があります。CVSSは技術的な観点でのスコアリングのみが行われているため、企業は自社への影響を何らかの軸で整理し、CVSSと掛け合わせて評価しているケースがほとんどでしょう。影響を図るための軸としてのCVSSv3には環境評価基準がありますが、環境評価基準の評価は難易度が高いという実情があります。そのため、実際の企業の現場では影響を図る軸として、図表1に例示したように、脆弱性を保有するデバイスがインターネットへの通信が可能かどうかといったシステム環境や、脆弱性が保有するデバイスが万が一侵害された際に影響を受ける情報の重要性などが利用されています。もちろん、上記の事例に限らず、IPAが配信する緊急度レベルを利用したり、CVSSを利用せずに脆弱性診断ツールの結果に基づいて脆弱性対応を行ったりするなど、企業によってさまざまな特色が見られます。

注:図表1に示した脆弱性判断の軸や対応期日は1つの考え方の例であり、これらを推奨するものではありません。

企業における脆弱性判断に関わる課題

CVSSを脆弱性の対応判断に利用する上で理解しておきたい注意点としては、下記のような点があります。

  • CVSSのスコアがベースとなっているため、依然として脆弱性そのものの技術的なスコアリングが判定結果に大きな影響を与える

  • 脆弱性の悪用状況は基本評価基準ではカバーされていない

  • スコアリングは±0.5の誤差が許容される

例えば、攻撃コードが公開され、かつ実際に被害が確認されている脆弱性の対応優先度が「高」と判定される一方で、攻撃コードが確認されていない脆弱性であっても対応優先度が「高」と判定されるケースも想定されます。いずれも対応優先度は「高」ではあるものの、実際の現場では、被害が確認されている脆弱性を優先的に対応するでしょう。このように、実際の影響とCVSSのスコアはリンクしていないケースがあり、しばしば担当者を悩ませます。そのため、対応判断を行う意思決定としてのガイドを定めていたとしても、スクリーニングを行うのみで、実際の現場では担当者間の協議を通じ、優先度が「高」であるものの中から、さらに優先的に対応するものを決めるといったことが起きています。

このように、CVSSを利用している企業では意思決定ガイドを定めていても、最終的には人の意思が介在し、迅速に判断できないというケースが散見されます。

SSVCの活用による意思決定

上記に挙げたCVSSの課題は、SSVCを活用することで解消できる可能性があります。SSVCは、米カーネギーメロン大学ソフトウェア工学研究所が2019年12月に公表した脆弱性評価の手法であり、脆弱性対応の判断を導出することができるフレームワークです。SSVCは決定木を用いることで、人の意思を介在させることなく、迅速な意思決定を実現することができます(SSVCの詳細については、「SSVC(Stakeholder-Specific Vulnerability Categorization)を活用した脆弱性管理」をご参照ください)。

CVSSとSSVCの異なる点をまとめると以下のようになります。

CVSSはアウトプットとしてスコアやレベルを出すのに対し、SSVCでは対応方針まで導くことができます。これにより、これまでの脆弱性評価手法に比べてより迅速かつ明瞭に意思決定につなげられる可能性があります。

後編では、SSVCで利用する決定木のうち、一般的な企業のCSIRTが利用するであろうデプロイヤーツリーについて、そして決定木を構成する各パラメータについて解説します。

執筆者

村上 純一

パートナー, PwCコンサルティング合同会社

Email

松原 翔太

シニアマネージャー, PwCコンサルティング合同会社

Email

{{filterContent.facetedTitle}}

{{contentList.dataService.numberHits}} {{contentList.dataService.numberHits == 1 ? 'result' : 'results'}}
{{contentList.loadingText}}

{{filterContent.facetedTitle}}

{{contentList.dataService.numberHits}} {{contentList.dataService.numberHits == 1 ? 'result' : 'results'}}
{{contentList.loadingText}}