自動トリアージ

FutureVulsの自動トリアージ機能は3つの機能から構成されており、組み合わせて利用するのがおすすめです。

    1. SSVC決定木による自動トリアージ機能
    1. ルールベースの注意喚起機能
    1. ルールベースの自動非表示機能

1. SSVC決定木による自動トリアージ

CVSS基本値「のみ」を判断基準にした脆弱性管理は「実際のリスクベース」で判断できないという課題があります。またCVSS基本値ベースの運用は下記のような課題があるといわれています。

  • CVSS Base Scoreは脆弱性そのものをスコア化したもので実際の攻撃状況を反映していない
  • システム環境や攻撃状況に対する評価が適切に行われていない
  • 意思決定をするためのガイドラインは用意されていない

上記のようなCVSSの課題を解決するために考案された脆弱性管理の最新のフレームワークが、カーネギーメロン大学の論文「SSVC」(Stakeholder-Specific Vulnerability Categorization:直訳「利害関係者固有の脆弱性分類」) であり、FutureVulsでは最新のSSVCトリアージエンジンを実装、搭載しています。

SSVCは、脆弱性そのものの情報だけではなく以下の4つの情報をもとに決定木を用いて「実際のリスク」を導出して、対応を4段階で自動決定できます。

ssvc-tree

SSVC決定木への4つの入力情報(Decision Point)

  • システムのNW環境
  • システムの業務影響
  • 実際の攻撃状況
  • 攻撃者目線の利用価値

これら4つの情報と脆弱性情報を変数に決定木を辿ると、出力として下記の4つの対応レベル(SSVC Priority)が導出されます。

 SSVC Priority 内容
Immediate 全てのリソースを集中し必要に応じて組織の通常業務を停止して可能な限り迅速に対応する
Out-of-Cycle 通常よりも迅速に行動し、計画外の機会に緩和策または修復策を実施する
Scheduled 定期メンテナンス時に対応する
Defer 現時点では対応しない

SSVC機能の設定方法

FutureVulsでSSVCのトリアージエンジンの利用を開始するためには、グループ設定よりシステムごとに異なる2つの情報を設定します。

  • 該当システムのインターネット露出度(Exposure)を選択
  • 該当システムの攻撃された際の業務影響(Human Impact)を選択

image

このようにシステムごとに異なる2つの特徴を設定するだけでSSVCの自動トリアージエンジンが動作し、検知された脆弱性を4つのレベルに自動分類します。

設定の詳細は、manual>SSVC設定方法を参照してください。SSVC決定木のカスタマイズも可能です。

SSVCの導出結果を確認する

SSVC決定木から導出されたSSVC Priorityは「判断根拠が明確である」というメリットがあります。FutureVulsではSSVC決定木の導出過程が一目瞭然でわかるように表示されます。導出過程はタスク詳細画面に下図のように表示されます。

image

脆弱性タブやタスク系タブなどの一番画面にも「SSVC Priority」列が追加されていますので、たとえば「immediate」のみを表示する、といったようなフィルタ操作も一覧画面上で可能です。

SSVCの結果をトリガーにした高度な自動トリアージ

FutureVulsではSSVCが出力した4種類のSSVC PriorityをTriggerとしたアクションを設定できます。

image

たとえば、Immediateなタスクは優先度Highにしてタスク期限2週間後に設定したり、Scheduledなタスクはタスクステータスdeferに、優先度Lowに、タスク期限をCRON式で例えば次回メンテナンス日の12月2週の水曜日といった設定もできます。具体的な設定方法はマニュアルを参照してください。

SSVC機能を用いた日々の継続的な脆弱性管理

SSVC機能を用いると日々の運用がどのようになるでしょうか。

SSVCによってトリアージされたタスクを、日々継続的に差分で対応してタスク管理していくイメージです。

image

「immediate」や「out-of-cycle」と判断されたタスクは「脆弱性タブ>重要な未対応」に振り分けられます。ここに振り分けられた脆弱性を日々、差分チェックしていけば高リスクな脆弱性に継続的に対応できます。SSVCトリガー&アクション機能を設定すれば期限やステータス、優先度を自動設定することで運用者へ自動で指示できます。

また、「schedulced」「defer」と判断されたタスクは、SSVCトリガー&アクション機能を用いてタスクステータスを自動で「defer」や「risk_accepted」に設定することで「保留中」「対応済」に自動でトリアージするように設定可能です。

このように、SSVC機能を用いると

  • リスクベースで対応優先度を自動判断
  • 優先度に応じてタスクステータスを自動設定(自動トリアージ、運用者へ指示)
  • 「重要な未対応」に振り分けられたタスクを差分で対応

といったように日々の運用の中でも専門知識が必要でコストな部分である、優先度判断 -> タスク操作 -> 運用者への指示までの業務を自動化できます。

SSVCの詳細はVuls祭りのYoutube

このページで説明した内容は、「Vuls祭り#6」で発表した内容の簡略版です。SSVCの詳細や実際のシステムでの導出方法についてより詳細に知りたい場合は「Youtube:最新の脆弱性トリアージフレームワーク「SSVC」の概要とFutureVulsでの実装例 Vuls祭り#6」をご覧ください。

動画では下記の5パターンのシステムを例にSSVC決定木の導出過程を説明しています。(動画 27:00~)

    1. インターネット公開された「超」重要システム
    1. インターネット公開された重要Webサービス
    1. 社内NWにある基幹システム
    1. 業務影響が小さい社内システム
    1. 閉域網の「超」重要な基幹系システム

FutureVuls上で検知された脆弱性をSSVC決定木を用いて実際に自動分類した結果も紹介しています。(動画 31:10~)

image

上のスライドの通り、合計で4,716件の脆弱性に対して、

  • 「CVSS基本値 ≧ 7」でフィルタすると2,863件ヒットした
  • 「CVSS基本値 ≧ 8」でフィルタすると990件ヒットした
  • 「パターン2. インターネット公開された重要Webサービス」を想定してSSVCで実際に分類したところ「immedia」(即時対応)は16件、「out-of-cycle」(計画外対応)は50件にまで絞り込める

CVSS基本スコアベースでのトリアージと比較して、SSVCは圧倒的なフィルタ性能(システム環境によっては15倍以上絞り込み可能)であり、日々の脆弱性管理において現実的に運用可能な件数まで「実際のリスクベース」で絞りこめるという結果となりました。

SSVCの詳細やFutureVulsの自動トリアージについては下記ブログやマニュアルを参照してください。

2. ルールベースの自動注意喚起機能

Danger機能を用いると、他の運用者に注意喚起することが可能となります。 DangerされたCVEは赤くハイライトされます。 他グループの運用者は、注意喚起された脆弱性であることを認識し、トピックを表示することで注意喚起の詳細情報を知ることができます。たとえば、SSVCの結果現状は「Immediate」にならないが、念のためCVSSスコアが10のものを組織内に注意喚起するといったようにSSVCを補完する機能として使えます。

3. ルールベースの自動非表示機能

自動非表示機能は、「低リスクとみなす」ルールを事前に定義し、ルールに該当する低リスクなタスクを自動で非表示にする機能です(検知はされるが、タスクが自動で非表示ステータスになる)。