2024年7月8日に開催された「ジョーシストーーク 脆弱性祭り~脆弱性の全体像と付き合い方~」のセッション「SSVC DeepDive」の内容です。
パッチの適用順序は、CVSSの高い脆弱性から。これでは実際の運用は回せません。SSVCは、攻撃者目線を取り入れた脆弱性評価フレームワークで、米国政府でも採用されています。本セッションでは、SSVCを活用することで、どのように脆弱性管理が改善されるのかを徹底解説します。CVSSだけでは不十分な方に必見の内容です。
Xでのジョーシスな誰かのつぶやき(抜粋)
ランサムウェアのニュースで騒がれている中、X(旧Twitter)にてこんな発言を目にしました。今回参加されているジョーシスの皆さんもお内情な悩みを抱えていると思いご紹介します。
Xでのジョーシスな誰かのつぶやき
まとめると、こんな内容になると思います。 (会場の情シスの方、頷く方多数)
公開される脆弱性は年々増加
さて、大量の脆弱性が公開され、その数は年々増えています。 2024年は年間で4万件を超えるペースです。
攻撃経路と組織の対応力
では大量公開される既知の脆弱性を放置するとどうなるでしょうか。攻撃者が最初に使用する攻撃経路の32%は既知の脆弱性の悪用であるというデータが公開されています。一方で組織の脆弱性に対する対応力は十分とは言えません。米国の平均的な組織は脆弱性の10%しかパッチを当てられないというデータが公開されています。米国でも10%です。日本の企業はもっと低いかもしれません。
脆弱性管理のプロセス
では日々の脆弱性管理のプロセスについて見ていきましょう。脆弱性管理の「情報収集」と「影響調査」は「Vuls」等のツールにより自動化されていますので、この部分の課題はすでに解決されています。まだ手動でやっている方はツールを使いましょう。
現在の脆弱性管理の課題は、検知後の「判断」のリスク評価と優先順位付けによる、対応可能な数までの絞り込みです。
CVSSスコアとは
ご存じの通り、脆弱性にはCVEというIDがつけられます。CVEはCVSSと呼ばれる脆弱性の深刻度を「0-10」で計算した値がセットで公開されます。Log4Shell(CVE-2021-44228)のスコアは最大の「10」がつけられています。
CVSSスコアでの絞り込みについて
優先度付けのためにはCVSSスコアでフィルタすれば良いと考えるかもしれませんが、公開されている全てのCVEのスコアの半数は「HIGH」がつけられます。脆弱性の半分が「重要度HIGH」です。CVSSスコアだけでは絞り込めないのなら、CVSS Vectorも使って絞るのはどうでしょう。CVSSスコアが「9以上かつ、インターネット越しに、権限なしで攻撃可能」なものを絞り込んだところ「1.4万件」もヒットしてしまいます。
このように詳細情報でフィルタしても対応可能な数まで絞り込めないのが実情です。
CVSSスコアと武器化の関係
また、CVSSスコアが高いものだけが実際の攻撃に使われているわけではありません。CVSSスコアが低いものにも攻撃コードがあり、安全とは言えません。以下のデータを見ると、CVSSスコアが「4.0-6.0」な「Medium」な脆弱性にも悪用されているものがあります。
実際に攻撃に使われる脆弱性とは
それでは、実際に攻撃に使われている脆弱性はどれくらいあるのでしょうか。以下のデータを見ると、実際に攻撃に使われている脆弱性は「2-4%未満程度」だそうです。実際に攻撃に使われているものは最優先に対応する必要があります。CVSSスコアは攻撃に使われる脆弱性を予測したり判断することはできません。
リスクを考慮した脆弱性管理とは
「リスク」についてもう一度おさらいしましょう。リスクの要素は「脆弱性」「脅威」「影響」です。脆弱性管理では組織の対応力が限られるため、高リスクな脆弱性から順番に対応する必要があります。つまり重大な脆弱性、かつ実際に悪用されている、かつビジネスに影響の大きいものから優先的に対応していくのが理想です。この高リスクな脆弱性を具体的にどうやって絞り込めば良いでしょうか。なにか良い方法があるでしょうか。
SSVC - Stakeholder-Specific Vulnerability Categorization
YouTubeのSSVC編(11:00〜)
SSVCならリスクを考慮した脆弱性管理が可能です。
SSVC (Stakeholder-Specific Vulnerability Categorization)は、カーネギーメロン大学によって考案され、米国のCISA(Cybersecurity and Infrastructure Security Agency)でも利用されているリスクベースの優先度判断フレームワークです。参考: CISAのサイト
SSVCは『リスク = 脆弱性 x 脅威 x 影響』に相当する情報を元に、決定木を用いて脆弱性の対応優先度を4段階に決定できるフレームワークです。
2024年7月現在、以下の役割ごとに異なる決定木が用意されており、利用者の立場に応じて利用する決定木を使い分けます。
- CERTや企業のリサーチャー向けの「Coordinator Tree」
- システム運用者向けの「Deployer Tree」
- パッチ提供者向けの「Supplier Tree」
3つの決定木については「SSVC-calc」で詳細を確認できます。この決定木を「あみだくじ」のように辿っていけば、検知した脆弱性の対応優先度が4段階で決定できるイメージです。
SSVC-calcの実際の使い方は動画がわかりやすいです(13:00〜)
スライドの図はDeployer Treeです。今回はシステム運用者を想定しているので、このあとの発表では「Deployer Tree」について紹介します。
スライド内のリンク:
Deployer Treeの概要
システム運用者向けの決定木である「デプロイヤー」では、以下の4つを用いてリスク(脅威 ✕ 脆弱性 ✕ 資産重要度)を計算し、対応優先度を4段階に判別します。
リスクの種類 | Decision Point | 説明 |
---|---|---|
脅威 | Exploitation | 既知のエクスプロイトの存在や攻撃のアクティブさで判断されます。 |
脆弱性 | Utility | 対象システムが保持する価値や、攻撃をツールなどにより自動化可能かで判断されます。 |
資産重要度 | Human Impact | 脆弱性が人命やビジネスに与える影響を評価します。 |
環境 | Exposure | 脆弱性の存在する資産がどの程度インターネットに露出しているかを評価します。 |
Human Impact
の考え方はFutureVuls Blog > SSVCにおける Human Impact 決定方法例を参照してくださいExposure
の考え方や自動調査方法はFutureVuls Blog > インターネット露出サーバの自動特定とSSVC Exposure設定ガイドを参照してください
SSVCの各DecisionPointの説明
SSVCの各DecisionPointはリスクの3要素をカバーしており、リスクを総合的に判断可能です。
スライド内のリンク:
デモ
YouTubeのSSVC デモ編(18:50〜)
SSVCの決定木のデモサイト上で人気の脆弱性の優先順位付けを試してみましょう。
スライド内のリンク:
脅威レベルに応じた優先度判断
たとえば、CVSSスコアが10のような重大な脆弱性でも攻撃の事例がない場合は脅威のレベルは下がりますので対応優先度は下がります。
インターネット露出度、ビジネス影響を考慮した優先度判断
攻撃がActiveな場合は、「インターネット露出度」「対象システムのビジネスへの影響度」などを考慮して判断されます。インターネットに公開されているシステムの場合は「即時対応」、社内システムの場合は「なる早対応」と判断されます。CISAのKEV-catalogに掲載された場合でも全てが即時対応必須であるという判断にはなりません。
SSVCの人手での対応判断の課題
検知した脆弱性に対してSSVCの項目を判断するにはセキュリティ担当と運用者の両方の知識と情報が必要です。SSVCの判断を人手でやると人的コストがかかるので、自動化が理想です。
FutureVulsの紹介 - 国産の脆弱性管理SaaS
YouTubeのFutureVuls編(27:10〜)
FutureVuls は日々の継続的な脆弱性管理を効率化し、専門家でなくてもリスクを判断できるクラウドサービスです。新規の脆弱性にすぐに気づいて、高リスクな脆弱性に先手を打って対応可能です。スキャナから Web の UI まで我々が開発しております。脆弱性管理と資産管理に必要な機能は大体サポートしており、管理対象も企業システムで使われるものはサポートしています。
FutureVulsのSSVC機能はトリアージとその後の追跡まで自動化
次に FutureVuls の目玉機能である SSVC による自動トリアージ機能について説明します。SSVC を使うと検知した脆弱性のリスクを考慮して4段階の対応レベルに自動的に分類できます。
具体的には、
- 脆弱性の悪用状況
- 有用性
- インターネット露出度
- システムのビジネス影響度
を変数にして、決定木を通すと4段階の優先度に分類されます。
例えば、
- CISA の KEV カタログに掲載されている、実際に悪用状況が確認されている脆弱性であり、
- RCE のようなネットワーク越しに外部からコードを実行できて乗っ取れるような脆弱性であり
- 対象システムがインターネットに露出しており、
- ビジネスへの影響が高いシステムの場合は
Immediate
に分類されます。
同じ脆弱性でも、対象システムがクローズな環境にある場合は、Out-of-cycle
や Scheduled
に分類されるといったように、現状や環境やビジネスインパクトによって決定木が上手に決定してくれます。
FutureVuls はこの SSVC の自動トリアージ機能を実装しておりますので、この判断の部分を自動化可能です。
FutureVulsのSSVC機能の初期設定は2ステップで簡単
システム単位で「インターネット露出度」と「資産重要性」を設定します。次に、SSVCの結果ごとに、タスク優先度や期限等を自動設定するルールを定義すれば設定は完了です。
FutureVulsのSSVC機能を用いたDev/Ops目線の運用
次に、開発、運用者目線の日々の運用についてご紹介します。運用者は Immediate
な脆弱性が検知されたことをメールや Slack、Teams で通知を受け取ります。
クリックして FutureVuls の画面を開くと、画面上には、
- どのサーバで
- 何の脆弱性が検知されており、
- 該当するプログラムやライブラリはどれで
- その脆弱性のあるプロセスが実行中であり、
- ポートをリスンしているか
といった情報を確認できます。
さらに、下のほうには、Immediate
と判断された理由が表示されますので、明確な判断根拠を確認できます。たとえば、「CVSS スコアが 9 なので緊急対応が必要」といったようなよくわからない対応指示ではなく、
- インターネット上で実際に悪用されており、
- ネットワーク越しに乗っ取り可能なRCEの脆弱性であり、
- インターネットに露出しているシステムであり、
- ビジネス的にインパクトが大きいシステム
なので Immediate
ですよ、といったように明確に判断の理由を確認できます。
また、脆弱性の詳細や CERT 系の注意喚起、Exploit 情報、EPSS スコアも確認できます。
FutureVulsのSSVC機能を用いたCSIRT目線の管理
CSIRTなどのセキュリティ担当者は、全社横断で SSVC が Immediate
や Out-of-cycle
と判断した脆弱性を確認できます。例えば、Immediate
かつ放置状態なタスクをフィルタし、対応期限切れのタスクの担当者に対して一括で対応を催促するといったように、とても楽に追跡できるため、普段の管理工数を削減できます。
SSVCの効果
5つの環境を想定して、「4,716件」の脆弱性をSSVCで分類してみました。インターネットに公開された重要システムを見ると、緊急対応「Immediate」となる早対応「Out-of-cycle」が「1.4%」まで絞り込めました。また、インターネットに公開されていない社内システムはさらに絞れます。「緊急」「重大」な脆弱性に対して必要以上に即時対応をする事態は解消され、現実的に対応できる数に絞り込めています。
まとめ
FutureVulsのSSVC機能は、リスクの判断から運用者への指示、そしてCSIRTの対応状況の追跡まで、日々の脆弱性管理を徹底的に自動化します。詳細は、チュートリアル > 自動トリアージも参照ください。
お気軽にお問い合わせください
無償PoC、詳細なデモ、脆弱性管理のお悩み相談などは、Vulsのランディングページよりお気軽にお問い合わせください。