FutureVulsの自動トリアージ機能は3つのサブ機能から構成されており、これらを組み合わせて利用することが推奨されます。
特に「SSVC決定木による自動トリアージ機能」は強く推奨されます。この機能を用いることで、リスクに応じた対応の優先順位を自動的に判断し、運用者へのタスク設定も自動化できます。これにより、日々の脆弱性管理を効率的かつ賢く行うことが可能となります。
CVSS基本値「のみ」を判断基準にした脆弱性管理は「実際のリスクベース」で判断できないという課題があります。 またCVSS基本値ベースの運用は下記のような課題があるといわれています。
CVSSベースのトリアージの課題詳細は以下を参照してください。
上記のようなCVSSの課題を解決するために考案された脆弱性管理の最新のフレームワークが、カーネギーメロン大学の論文「SSVC」(Stakeholder-Specific Vulnerability Categorization:直訳「利害関係者固有の脆弱性分類」) であり、FutureVulsでは最新のSSVCトリアージエンジンを実装、搭載しています。
SSVCは、脆弱性そのもの情報だけではなく以下の4つの情報をもとに決定木を用いて「実際のリスク」を導出して、対応を4段階で自動決定できます。
SSVC決定木への4つの入力情報(Decision Point)である、
これら4つの情報と脆弱性情報を変数に決定木を辿ると、出力として下記の4つの対応レベル(SSVC優先度)が導出されます。
SSVC 優先度 | 内容 |
---|---|
Immediate | すべてのリソースを集中し必要に応じて組織の通常業務を停止して可能な限り迅速に対応する |
Out-of-Cycle | 通常よりも迅速に行動し、計画外の機会に緩和策または修復策を実施する |
Scheduled | 定期メンテナンス時に対応する |
Defer | 現時点では対応しない(リスクを受容する) |
SSVCの詳細については、下記Blog記事でも動画付きで解説しています。
FutureVulsでSSVCのトリアージエンジンの利用を開始するためには、グループ設定よりシステムごとに異なる2つの情報を設定します。
このようにシステムごとに異なる2つの特徴を設定するだけでSSVCの自動トリアージエンジンが動作し、検知された脆弱性を4つのレベルに自動分類します。
設定方法は「manual>SSVC設定方法」を参照してください。 なお、Human Impactの設定の考え方は、FutureVulsブログの「SSVCにおける Human Impact 決定方法例」で詳しく解説しています。
まずはデフォルトの決定木をそのまま使うことをおすすめしますが、組織のトリアージ指針と合わせるために変更の必要がある場合はSSVC決定木をカスタマイズが可能です。
なお、FutureVulsのSSVCのデフォルト決定木は「certccのDeployer Tree」と同じものです。
Calculato > Mode: Graphic > SSVC Calc App: Deployer > Show Full Tree
を指定すれば決定木の詳細を確認できます。
FutureVulsのSSVC決定木から導出されたSSVC 優先度は「判断根拠が明確である」というメリットがあります。FutureVulsではSSVC決定木の導出過程が一目瞭然でわかるように表示されます。導出過程は「タスクタブ > タスク詳細 > SSVC」に下図のように表示されます。
脆弱性タブやタスク系タブなどの一番画面にも「SSVC 優先度」列が追加されていますので、たとえば Immediate
のみを表示する、といったようなフィルタ操作も一覧画面上で可能です。
また、「脆弱性タブ > 重要な未対応の条件」にSSVCの結果を指定すると、Immediate
や Out-of-Cycle
を「重要な未対応」に振り分けることもできます。
FutureVulsではSSVCが出力した4種類のSSVC 優先度をTriggerとしたアクションを設定できます。
たとえば、Immediate
なタスクは 優先度
を High
にして タスク期限
を 2週間後
に設定したり、Scheduled
なタスクは タスクステータス
を defer
に、優先度
を Low
に、タスク期限
をCRON式で例えば次回メンテナンス日の 12月2週の水曜日
といった設定もできます。具体的な設定方法は「マニュアル」を参照してください。
SSVC機能を活用すると、開発者、運用者の日常の運用はどのように変わるでしょうか。
開発者、運用者は Immediate な脆弱性が検知されたことをメールや Slack、Teams で通知を受け取ります。
通知に記載されたリンクをクリックして FutureVuls の画面を開くと、画面には以下の情報が集約されて表示されます。
さらに、ページの下のほうには、Immediate
と判断された理由が表示されており、判断の根拠が明確にわかります。
従来のCVSSベースのトリアージの場合は、「CVSSスコアが 9 なので緊急対応が必要」のようなよくわからない対応指示となり、「では 8.9 は大丈夫なのか?」という反応になりがちですが、SSVCの場合は以下のように明確に判断理由を確認できますので混乱しません。
脆弱性の詳細や CERT 系の注意喚起、Exploit 情報、EPSS スコアも1つの画面上で確認できます。
もちろん通知からだけではなく画面上からも、未対応の Immediate
等の対処すべきタスクを確認できます。
Immediate
や Out-of-Cycle
と評価されたタスクは、「脆弱性タブ>重要な未対応」として分類されます。このカテゴリに分類された脆弱性を日々チェックすることで、高リスクな脆弱性に対して継続的に対応可能です。
また、SSVCでScheduledに分類されたタスクのうち、EPSSの値が高い脆弱性を画面からソート・フィルタして抽出できます。EPSSは「今後30日以内に攻撃に利用される可能性」を示していますので、このEPSSが高いものを対応することで、脅威を「予測」して先手をうって対応できるでしょう。詳細は「EPSSとの組み合わせでSSVCを補完」を参照してください。
次に、全社横断的な脆弱性管理の責務を持つCSIRTの立場から、SSVCベースの運用を考えてみましょう。
CSIRTなどのセキュリティ担当者は、全社横断で Immediate
や Out-of-Cycle
と判断した脆弱性を確認できます。
例えば、Immediate
かつ放置状態なタスクをフィルタし、対応期限切れのタスクの担当者に対して一括で対応を催促するといったように、とても楽に追跡できるため、普段の管理工数を削減できます。
具体的に見ていきましょう。
FutureVulsのSSVC機能は、検知した脆弱性を「脆弱性」x「脅威」x「資産価値」のリスクベースに応じて自動的に4段階に分類します。検知された脆弱性の該当タスクの「ステータス」「優先度」「対応期限」は、SSVCの優先度ごとに事前定義したルールにより「自動的に設定」されるため、対応優先度判断と運用者への対応指示は自動化されます。
CSIRTは、継続的に組織内に存在する高リスクの脆弱性(Immediate
または Out-of-Cycle
に分類されるタスク)の対応状況を追跡し、対応期限が切れて放置状態の脆弱性に対しては運用者に対応を催す必要があります。
社内にたくさんのシステムがある場合は、FutureVuls上で多数のグループを切り替えながら対応状況をチェックするのは大変です。FutureVuls CSIRTプランのグループセット機能を使い、全部ループを所属させた「allグループセット」を作成し、全社の脆弱性を1つの画面ですべて表示できるようにします。
次に、最近検知された脆弱性のうち 緊急対応が必要な Immediate と判断された脆弱性
を全社横断でフィルタするためには、下記の列を使います。
新規に検知され Immediate に分類された脆弱性
は、「allグループセット>脆弱性」の「初回検知日時列」を使用します。
過去に検知されたが状況が変化して Immediate になった脆弱性
は、「allグループセット>脆弱性」の「SSVC最新更新日時列」でフィルタできます。
FutureVulsのトピック機能をつかえば脆弱性単位でコメントを登録し、さらにメールで通知が可能です。CSIRTは、これらの 新たにImmediateになった脆弱性
に対して、トピックを登録することで簡単に注意喚起を行えます。
また、「allグループセット>脆弱性>タスク×サーバ」を参照することで、各タスクの「グループ」、「サーバ」、およびタスクの詳細情報を確認できます。タスクの詳細情報を更新したり、タスクコメントを使用して運用担当者に対応を促すことも可能です。
また、「未対応のまま対応期限が超過したタスク」や、「対応予定日がセットされていないタスク」は「allグループセット>タスク」から全社の対応が放置されているタスクをフィルタできます。
さらにこれらの対応を催促すべきタスクに対して、複数選択して一括で運用担当者に連絡します。
これまで長らく組織のCSIRTにとっては、リアルな「リスク」に基づいたトリアージは難易度、リソース、コストの面で大きな課題でした。 FutureVulsのSSVC機能を用いるとCSIRTの脆弱性管理業務が自動化され、日々の業務が大幅に効率化されます。
これまでの説明で、FutureVulsのSSVC機能を用いると日々の脆弱性管理が自動化され、運用者やCSIRTそれぞれの工数を削減できることがイメージできました。
冒頭で CVSS基本値が「7以上」は全体の半数となり、現実的に対応可能な数まで絞り込めない
と記載しましたが、SSVCの絞り込み性能はどれくらい優れているでしょうか。
脆弱性管理の運用を回すためには、「対応すべき高リスクな脆弱性」を「実際に運用を回せる数まで絞り込む」能力がとても重要な要素です。
下記の5パターンのシステムを想定し、SSVCで実際に対応優先度を分類してみました。
上のスライドの通り、合計で4,716件の脆弱性に対して、
Immediate
は「16件」、Out-of-Cycle
は「50件」にまで絞り込めるつまり、CVSS基本スコアベースでのトリアージと比較して、SSVCは圧倒的なフィルタ性能(システム環境によっては15倍以上絞り込み可能)であり、日々の脆弱性管理において現実的に運用可能な件数まで「実際のリスクベース」で絞りこめるという結果となりました。
SSVCの詳細やFutureVulsの自動トリアージについては下記を参照ください。
EPSS は「今後 30 日以内に脆弱性が悪用される可能性」を数値化する仕組みです。 FutureVuls は EPSS のデータを取り込んでおります。
scheduled
や defer
に分類されたものからEPSSが高いものは対応するなどとのような使い方が可能です。FutureVulsのEPSS機能の詳細は以下を参照してください。
「トリアージ設定」を用いると、ルールに合致した脆弱性やタスクの優先度を自動で変更できます。
例えば、SSVCの結果現状は Immediate
にならないが、念のためCVSSスコアが10のものを組織内に注意喚起するといったようにSSVCを補完する機能として使えます。
「自動非表示機能」は、「低リスクとみなす」ルールを事前に定義し、ルールに該当する低リスクなタスクを自動で非表示にする機能です(検知はされるが、タスクが自動で非表示ステータスになる)。