CSIRTプランの高度な自動トリアージ機能の紹介

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

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

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

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

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

  • CVSS基本値は脆弱性そのものをスコア化したもので実際の攻撃状況を反映していない
  • システム環境や攻撃状況に対する評価が適切に行われていない
  • 意思決定をするためのガイドラインは用意されていない
  • CVSS基本値が「7以上」は全体の半数となり、現実的に対応可能な数まで絞り込めない

上記のような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

SSVC機能の設定方法

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

  • 該当システムのインターネット露出度(Exposure)を選択
  • 該当システムの価値密度(Utility Density)を選択
    • サーバ環境は「Concentrated」を指定する
  • 該当システムの攻撃された際の業務影響(Human Impact)を選択

image

このようにシステムごとに異なる3つの特徴を設定するだけで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 を指定すれば決定木の詳細を確認できます。

SSVCの導出結果を確認する

FutureVulsの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週の水曜日 といった設定もできます。具体的な設定方法は「マニュアル」を参照してください。

image.png

運用者目線の日々のSSVC運用フロー

SSVC機能を活用すると、開発者、運用者の日常の運用はどのように変わるでしょうか。

運用者目線の日々の運用フロー

開発者、運用者は Immediate な脆弱性が検知されたことをメールや Slack、Teams で通知を受け取ります。

通知に記載されたリンクをクリックして FutureVuls の画面を開くと、画面には以下の情報が集約されて表示されます。

  • どのサーバで
  • 何の脆弱性が検知されており、
  • 該当するプログラムやライブラリはどれで
  • その脆弱性なプロセスが実行中であり、
  • ポートをリスンしているか

さらに、ページの下のほうには、Immediate と判断された理由が表示されており、判断の根拠が明確にわかります。

従来のCVSSベースのトリアージの場合は、「CVSSスコアが 9 なので緊急対応が必要」のようなよくわからない対応指示となり、「では 8.9 は大丈夫なのか?」という反応になりがちですが、SSVCの場合は以下のように明確に判断理由を確認できますので混乱しません。

  • インターネット上で実際に悪用されており
  • ネットワーク越しに乗っ取り可能なRCEの脆弱性であり
  • インターネットに露出しているシステムであり
  • 会社のビジネスに与えるインパクトが大きいシステムで検知されている
  • Immediate と判断された

脆弱性の詳細や CERT 系の注意喚起、Exploit 情報、EPSS スコアも1つの画面上で確認できます。

もちろん通知からだけではなく画面上からも、未対応の Immediate 等の対処すべきタスクを確認できます。

image

ImmediateOut-of-Cycle と評価されたタスクは、「脆弱性タブ>重要な未対応」として分類されます。このカテゴリに分類された脆弱性を日々チェックすることで、高リスクな脆弱性に対して継続的に対応可能です。

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

次に、全社横断的な脆弱性管理の責務を持つCSIRTの立場から、SSVCベースの運用を考えてみましょう。

運用者目線の日々の運用フロー

CSIRTなどのセキュリティ担当者は、全社横断で ImmediateOut-of-Cycle と判断した脆弱性を確認できます。 例えば、Immediate かつ放置状態なタスクをフィルタし、対応期限切れのタスクの担当者に対して一括で対応を催促するといったように、とても楽に追跡できるため、普段の管理工数を削減できます。

具体的に見ていきましょう。

FutureVulsのSSVC機能は、検知した脆弱性を「脆弱性」x「脅威」x「資産価値」のリスクベースに応じて自動的に4段階に分類します。検知された脆弱性の該当タスクの「ステータス」「優先度」「対応期限」は、SSVCの優先度ごとに事前定義したルールにより「自動的に設定」されるため、対応優先度判断と運用者への対応指示は自動化されます。

CSIRTは、継続的に組織内に存在する高リスクの脆弱性(Immediate または Out-of-Cycle に分類されるタスク)の対応状況を追跡し、対応期限が切れて放置状態の脆弱性に対しては運用者に対応を催す必要があります。

多数のグループを切り替えながら対応状況をチェックするのは大変です。FutureVuls CSIRTプランの[グループセット機能]((/manual/csirt_option/groupset/)を使い、全部ループを所属させた「allグループセット」を作成し、全社の脆弱性を1つの画面ですべて表示できるようにします。

次に、最近検知された脆弱性のうち 緊急対応が必要な Immediate と判断された脆弱性 を全社横断でフィルタするためには、下記の列を使います。

image.png

新規に検知され Immediate に分類された脆弱性 は、「allグループセット>脆弱性」の「初回検知日時列」を使用します。 過去に検知されたが状況が変化して Immediate になった脆弱性 は、「allグループセット>脆弱性」の「SSVC最新更新日時列」でフィルタできます。

CSIRTは、これらの 新たにImmediateになった脆弱性 に対して、FutureVulsの画面上から簡単に注意喚起を行えます。

image.png

「allグループセット>脆弱性>トピック」にその脆弱性の注意喚起を登録することで、その脆弱性が検知されているグループのメンバー全員にメール送信できます。また、「allグループセット>脆弱性>タスク×サーバ」を参照することで、各タスクの「グループ」、「サーバ」、およびタスクの詳細情報を確認できます。タスクの詳細情報を更新したり、タスクコメントを使用して運用担当者に対応を促すことも可能です。

また、「未対応のまま対応期限が超過したタスク」や、「対応予定日がセットされていないタスク」は「allグループセット>タスク」から全社の対応が放置されているタスクをフィルタできます。 image.png

さらにこれらの対応を催促すべきタスクに対して、複数選択して一括で運用担当者に連絡します。 image.png

これまで長らく組織のCSIRTにとっては、リアルな「リスク」に基づいたトリアージは難易度、リソース、コストの面で大きな課題でした。 FutureVulsのSSVC機能を用いるとCSIRTの脆弱性管理業務が自動化され、日々の業務が大幅に効率化されます。

実際に対応可能な数までリスクが高い脆弱性を絞り込みできるSSVC機能

これまでの説明で、FutureVulsのSSVC機能を用いると日々の脆弱性管理が自動化され、運用者やCSIRTそれぞれの工数を削減できることがイメージできました。

冒頭で CVSS基本値が「7以上」は全体の半数となり、現実的に対応可能な数まで絞り込めない と記載しましたが、SSVCの絞り込み性能はどれくらい優れているでしょうか。

脆弱性管理の運用を回すためには、「対応すべき高リスクな脆弱性」を「実際に運用を回せる数まで絞り込む」能力がとても重要な要素です。

下記の5パターンのシステムを想定し、SSVCで実際に対応優先度を分類してみました。

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

image

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

  • 「パターン2. インターネット公開された重要Webサービス」で実際に分類したところ Immediate は「16件」、Out-of-Cycle は「50件」にまで絞り込める
  • 「CVSS基本値 ≧ 7」でフィルタすると「2,863件」も該当してしまう
  • 「CVSS基本値 ≧ 8」でフィルタすると「990件」も該当する

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

SSVC機能の参考情報

SSVCの詳細やFutureVulsの自動トリアージについては下記を参照ください。

EPSSとの組み合わせでSSVCを補完

FutureVuls の新機能:今後悪用される可能性が高い脆弱性をEPSSでフィルタ可能に

EPSS は「今後 30 日以内に脆弱性が悪用される可能性」を数値化する仕組みです。 FutureVuls は EPSS のデータを取り込んでおります。

  • Immediate の中のさらなる優先順位付け
  • SSVC の判断から漏れたものを補完する
    • scheduleddefer に分類されたものからEPSSが高いものは対応するなど

とのような使い方が可能です。FutureVulsのEPSS機能の詳細は以下を参照してください。

2. ルールベースの優先度変更

トリアージ設定」を用いると、ルールに合致した脆弱性やタスクの優先度を自動で変更できます。 例えば、SSVCの結果現状は Immediate にならないが、念のためCVSSスコアが10のものを組織内に注意喚起するといったようにSSVCを補完する機能として使えます。

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

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