[CSIRT]自動トリアージ

FutureVulsの自動トリアージ機能は3つのサブ機能から構成されており、これらを組み合わせて利用することが推奨されます。

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

特に「SSVC決定木による自動トリアージ機能」は強く推奨されます。この機能を用いることで、リスクに応じた対応の優先順位を自動的に判断し、運用者へのタスク設定も自動化できます。これにより、日々の脆弱性管理を効率的かつ賢く行うことが可能となります。

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 現時点では対応しない

CVSSの課題とSSVCの概要についてはこちらのパンフレットも参照してください。

image.png image.png

上記パンフレットのPDFは「こちらから」ダウンロードできます。

SSVC機能の設定方法

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

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

image

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

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

SSVCの導出結果を確認する

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

image

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

image.png

また、「脆弱性タブ > 重要な未対応の条件」にSSVCの結果を指定すると、ImmediateOut Of Cycle を「重要な未対応」に振り分けることもできます。

image.png

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トリガー&アクション機能を利用すれば、期限、ステータス、優先度を自動で設定し、運用者に自動的に指示を出すことができます。

さらに、「scheduled」「defer」と評価されたタスクについては、SSVCトリガー&アクション機能を活用して、タスクステータスを「defer」や「risk_accepted」に自動設定することで、「保留中」や「対応済」として自動トリアージする設定が可能です。

SSVC機能の導入により、以下のような運用の効率化が期待できます:

  • リスクベースでの対応優先度の自動判断
  • 優先度に基づくタスクステータスの自動設定(自動トリアージ、運用者への指示)
  • 「重要な未対応」カテゴリのタスクの差分対応

これにより、日々の運用において専門知識が必要であり、コストがかかる部分である「優先度の判断 -> タスクの操作 -> 運用者への指示」の一連の業務を自動化できます。

CSIRT目線での日々の運用フロー

CSIRTとして、全社の脆弱性を横断的に管理する責務を持っている立場から、日常の具体的な運用を考えてみましょう。

  • SSVCは、検知した脆弱性を「脆弱性」x「脅威」x「資産価値」の基準に従い、自動的に4段階に分類します。
  • タスクの「ステータス」「優先度」「対応期限」などは、SSVCの優先度に基づいて「自動的に設定」されるため、運用社への指示の自動化が実現します。
  • CSIRTとして、定期的に高リスクの脆弱性(Immediate または Out of Cycle に分類されるタスク)の対応状況を監視し対応を催促します。
    • 全部門を網羅する「allグループセット」を作成すると、全社を横断して管理できます。
    • 「allグループセット>脆弱性」の「初回検知日時列」を使用して、新たに検出された高リスクの脆弱性をフィルタリングします。
    • 「allグループセット>脆弱性」の「SSVC最新更新日時列」には、SSVCの評価が更新された日時が表示されるため、例えば新しく Immediate に分類された脆弱性をフィルタリングできます。
      • image.png
    • 「allグループセット>脆弱性>トピック」を設定することで、Immediate に分類された脆弱性を「Danger」状態に設定できます。該当する脆弱性が検出されたグループのメンバー全員に警告メールを送信できます。
      • image.png
    • 「allグループセット>脆弱性>タスクxサーバ」を参照することで、各タスクの「グループ」、「サーバ」、およびタスクの詳細情報を確認できます。CSIRTとして、タスクの詳細情報を更新したり、タスクコメントを使用して運用担当者に対応を促すことも可能です。
  • また、「未対応のまま対応期限が超過」したタスクや、「対応予定日がセットされていない」タスクは「allグループセット>タスク」から全社のタスクをフィルタできます。 image.png
    • さらにこれらの対応を催促すべきタスクに対して、複数選択して一括で運用担当者に連絡します。 image.png

これまで長らく組織のCSIRTにとっては、リアルな「リスク」に基づいたトリアージは難易度、リソース、コストの面で大きな課題でした。 FutureVulsのSSVC機能を用いるとCSIRTの脆弱性管理業務が自動化され、FutureVulsの画面上からのチェック、注意喚起、と対応の追跡となり圧倒的に効率化されます。

※なお、SSVCでは不十分な場合は「ルールベースの自動注意喚起機能」を組み合わせて運用できます。

SSVCの詳細はVuls祭りのYoutube

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

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

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

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. ルールベースの自動非表示機能

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