2.5K Views
November 05, 24
スライド概要
CSS 2024 ( Computer Security Symposium 2024 ) https://www.iwsec.org/ows/2024/
OSSセキュリティ技術ワークショップ(OWS) 2024 https://www.iwsec.org/ows/2024/
OWS企画セッション (2) / 招待講演 脆弱性管理と課題の講演資料です。
概要:本セッションでは、はじめに、OSS脆弱性スキャナVulsの開発を通して理解した、脆弱性スキャナや提供される脆弱性情報などが抱える課題について共有します。また、脆弱性スキャナの普及により、セキュリティ担当者は脆弱性スキャナが検知した膨大な脆弱性と向き合う必要があります。そこで、脆弱性スキャナが検知した脆弱性からノイズを削除する手法を紹介します。最後に、影響がある脆弱性のリスクをどう判断するか、SSVCやKEV・EPSSなどを利用して考えます。
#vuls クラウド版 / 脆弱性管理を徹底的に自動化 脆弱性管理クラウド「FutureVuls」の公式アカウント。 SSVC/オンプレ/クラウド/閉域網/Windows/Linux/コンテナ/ライブラリ/ミドルウェア/NW機器/商用製品/WordPress / LP: http://vuls.biz
脆弱性管理と課題 ~OSSの視点から~ 神戸康多 中岡典弘 篠原俊一 フューチャー株式会社 Copyright © 2024 by Future Corporation -1-
目次 1. 脆弱性管理とOSS - OSS ツールについての概論 OSS 脆弱性スキャナ Vuls による検知デモ 2. 脆弱性検知における課題 - 脆弱性情報 検知ロジック 3. 膨大な脆弱性と向き合うために - リスクをどう判断するか 検知結果からのノイズ除去 Copyright © 2024 by Future Corporation -2-
自己紹介 篠原 俊一 (しのはら しゅんいち) @itawasa (X/Twitter) @shino (GitHub) フューチャー株式会社 OSS脆弱性スキャナ Vuls 開発 以前は RAIDUS サーバー、オブジェクトストレージの開発などをやっていました Copyright © 2024 by Future Corporation -3-
1. 脆弱性管理とOSS Copyright © 2024 by Future Corporation -4-
1. 振り返り - Vuls は 2016 年生まれ Trivy, Snyk, Clair, OpenSSF などなど 脆弱性検知の自動化へ データソースの充実化 - NVD OS 公式 GHSA KEV (CISA, VulnCheck) - OSSツール誕生 OSパッケージ コンテナ対応 言語ライブラリの検知 設定ミスの検知 検知範囲の拡大 さらなる拡大 - CI/CD との統合 IDE との連携 IaC(Infrastructure as Code)対応 クラスター、クラウド環境への対応 Copyright © 2024 by Future Corporation -5-
1. OSS ツール (一部) - Vuls - - OpenSSF - - https://github.com/OpenSCAP/openscap OWASP Dependency Check - - https://github.com/anchore/anchore-engine OpenSCAP - - https://github.com/quay/clair Anchore Engine (Syft と Grype に移行済み) - - https://github.com/aquasecurity/trivy Clair - - https://github.com/ossf Trivy - - https://github.com/future-architect/vuls https://github.com/jeremylong/DependencyCheck Snyk - https://github.com/snyk/snyk Copyright © 2024 by Future Corporation -6-
1. Vuls 検知手順デモ 脆弱性 データソース スキャン対象 スキャン処理 (情報取得) スキャン結果 検知処理 取得、整形 データベース Copyright © 2024 by Future Corporation -7-
1. 現状の課題とこれから データソースの課題 - フォーマット、入っている情報が様々 表記揺れ、誤ったデータ、曖昧なデータ 膨大な脆弱性への対応 - - リスクをどう判断するか - 「脆弱性」「脅威」「影響」をすべて考慮した評価 - SSVC / KEV / EPSS 検知結果からのノイズ除去 (reachability) - 例: ある依存パッケージは実際には呼ばれない - VEX: Vulnerability-Exploitability eXchange - 自社システムやアプリケーションにおける reachability の具現化 Copyright © 2024 by Future Corporation -8-
2. 脆弱性検知における課題 Copyright © 2024 by Future Corporation -9-
自己紹介 Norihiro Nakaoka / @MaineK00n Future Corporation, Cyber Security Innovation Group OSS Vulnerability Scanner: Vuls1 Committer 2022: BlackHat MEA Arsenal、CODE BLUE OpenTalks 2023: JANOG 52, OpenSSF Day Japan [1] https://github.com/future-architect/vuls Copyright © 2024 by Future Corporation - 10 -
脆弱性検知の性能限界 スキャナの性能が良くても脆弱性情報以上に検知できない ⇔ 脆弱性情報レベルまではスキャナの性能を良くすべき Copyright © 2024 by Future Corporation - 11 -
脆弱性検知の難しさ: データ提供編 APIサーバのご機嫌を伺わなければならない 実行時間がすごくばらつく 3h頑張っても、途中で切られる Copyright © 2024 by Future Corporation - 12 -
脆弱性検知の難しさ: データ提供編 解析待ちが詰まってて、提供が遅い…… Copyright © 2024 by Future Corporation - 13 -
脆弱性検知の難しさ: データ提供編 全アドバイザリのリストがなく,網羅するのが大変 2020年以前のアドバイザリが見たいときには??? Copyright © 2024 by Future Corporation - 14 -
脆弱性検知の難しさ: データ提供編 HTMLやPDFでの提供は機械的に可読しにくい! Copyright © 2024 by Future Corporation - 15 -
脆弱性検知の難しさ: データ編 期待するCPEが書いてあると思ってはいけない Juniper Advisory: JSA79108 NVD Copyright © 2024 by Future Corporation - 16 -
脆弱性検知の難しさ: データ編 バージョンが機械的に読めない(LLMでどうにかなったりする? Copyright © 2024 by Future Corporation - 17 -
脆弱性検知の難しさ: データ編 ベンダ提供のデータソース毎に違うことが書いてある Copyright © 2024 by Future Corporation - 18 -
脆弱性検知の難しさ: データ更新編 1次データの更新がNVDやJVNに反映されていない! Copyright © 2024 by Future Corporation - 19 -
脆弱性検知の難しさ: データ更新編 更新日時が適切に管理されていない Copyright © 2024 by Future Corporation - 20 -
脆弱性検知の難しさ: 比較編 製品名が正規化されず、別プロダクトのように扱われたりする Copyright © 2024 by Future Corporation - 21 -
脆弱性検知の難しさ: 比較編 バージョンをどうやって比較すれば いいか分からない! 16.12.3 → Semantic Versionか? 実際は、12.1(1)aa vs 16.12.3 という 比較をしなければならない レンジを使わない → 6261個のCPEとのマッチング Copyright © 2024 by Future Corporation - 22 -
価値ある脆弱性検知を提供するために 脆弱性検知にとって、脆弱性情報の量・質が検知精度を左右します 脆弱性情報の量・質のために ■ 機械的に取得・処理しやすい形で提供しよう フォーマット: OVAL、CVRF/CSAF、OSV、オリジナル、… プロダクト: CPE、PURL、SWID、… 提供場所: 自社サイト、GitHub、… ■ 脆弱性情報をリッチにしてみよう 脆弱性情報を解析して、脆弱性が何に起因しているか ■ もし,脆弱性情報に誤りがあるかも?と思った場合は報告ください! Copyright © 2024 by Future Corporation - 23 -
DEMO Copyright © 2024 by Future Corporation - 24 -
3. 膨大な脆弱性と向き合うために Copyright © 2024 by Future Corporation - 25 -
自己紹介 神戸康多(かんべこうた) フューチャー株式会社 OSS脆弱性スキャナ「Vuls」作者 脆弱性管理クラウド「FutureVuls」の運営 実績 ■ ■ ■ 情報処理学会ソフトウェアジャパン2020 アワード BlackHat Asia Arsenal, HITCONなど海外カンファレンス講演 Google OSS Peer Bonus Winners of 2022 Copyright © 2024 by Future Corporation - 26 -
Xで見たけた誰かの心の声(抜粋) セキュリティ脆弱性に対するサイバー犯罪については、もう心情的に白旗を上げてしまってます。 技術的には対策が打てたとしても、運用が追いつかない… 一部上場企業グループの情報システム部とかになると、大きなシステムが数十以上、サーバー(VM)も数百以上、基 管理する資産が多すぎる 幹ネットワーク機器も3桁以上、余裕であるわけですよ。 そして、あらゆる方面から「緊急」「重大」とかラベル付いてるクリティカルな脆弱性情報が飛んでくるわけですよ。金曜 「緊急」「重大」とされる脆弱性が多すぎる 日の夕方にそんな情報が展開されても「は?」なんですよ。緊急でパッチ当てろとか言われても無理なんですよ。土日 だってシステム動いてるから気軽に止められないんですよ。 そもそも、どの機器が対象かを洗い出すのに骨が折れるし、サービス停止や再起動が必要なのかどうか分からんの 影響調査・対応が大変。 ですよパッチのせいでシステムが動かなくなるなんてことも余裕であるんですよ。なので、どこまでテストやる?とか悩 サーバ環境はサービス停止したら困るので気軽にパッチ当てられない。絞り込みが必要。 ましいんですよ 金曜日の午後に、重大なセキュリティ脆弱性の報告受けて、そこから管理職集めて対策会議とかも厳しいんですよ。 そりゃ、ゴジラが攻めてくるみたいな時は対策会議やるんだけどさ。そういうレベルではない頻度で、Micorosoftがカ 本当に「緊急・重大」なのかのリスク判断が難しすぎる 内容 ジュアル重大なセキュリティ脆弱性のアナウンスしてくるんよ。 Copyright © 2024 by Future Corporation - 27 -
公開される脆弱性は年々増加 2024年は年間4万件を超えそうな勢い(前年比 +40%up) Copyright © 2024 by Future Corporation - 28 -
攻撃経路と組織の対応力 攻撃者が最初に使用する攻撃経路の32 %は既知の脆弱性の悪用であるが、米国の平均的な組織は 脆弱性の10 %しかパッチを当てられない。脆弱性は時間とともに溜まり増え続ける。 <攻撃者が最初に使用する攻撃経路> <月ごとのOpen/Closeできた脆弱性数の分布(100組織を調査)> 場合 た き 応で e) 対 os 数に n=Cl 性 e p 脆弱 (O ての 数 すべ 性 弱 た脆 き で 応 に対 実 出所:Mandiant M-Trends 2023 By The Numbers Infographic 際 出所:Cyentia Institute The Hidden Complexity of Vulnerability Remediation: Bridging the Gap between Data and Common Advice Copyright © 2024 by Future Corporation - 29 -
2024年時点の脆弱性管理の課題 「情報収集」と「影響調査」は「Vuls」「Trivy」等のSCAツールにより自動化された。 「リスク評価と対応優先順位付け」「誤検知を減らす(Reachability)」が現在の課題である。 情報収集 • 年間2万件以上のCVEが新規公開 • NVDやJVN、SNSを定期的にウォッチ • 深刻な脆弱性は全社メールで周知 影響調査 • 資産と構成要素の把握(SBOM) • 脆弱性情報とバージョン比較 ツール で自動化 進化 判断 • リスク評価と対応優先順位付け • 誤検知を減らす(Reachability) 判断 対応 • テストしパッチ適用などで対応 • 対応状況を管理 対応 Copyright © 2024 by Future Corporation - 30 -
1. リスク評価して対応優先順位付け(SSVC) 2. 誤検知・ノイズを減らす(Reachability) 2.1 ベンダ/OSSが提供するVEXを利用する 2.2 ユーザ側でReachabilityを検証する Copyright © 2024 by Future Corporation - 31 -
基本:CVSSスコアとは CVSS基本値は脆弱性の深刻度を「0-10」で計算した値である。 例)Log4Shell(CVE-2021-44228)のスコアは最大の「10」 Copyright © 2024 by Future Corporation - 32 -
CVSSスコアでの絞り込みについて スコアの半数が「HIGH」。詳細情報でフィルタしても対応可能な数まで 絞り込めない。 <CVSSスコアごとの件数> ネットワークから権限なしで攻撃可能でフィルタ 約1.4万件 半分以上がHIGH ※NVDのうちCVSS v3.0のスコアがついている138,873件の脆弱性を集計 課 題 半分以上が重要度「 HIGH」 課 題 詳細情報でさらにフィルタしても限界がある Copyright © 2024 by Future Corporation - 33 -
CVSSスコアと武器化の関係 低スコアでも武器化されているものがある。低スコアだからといって安全とは言えない。 低スコアでも 武器化されている 出所: The Risk Remediation Taxonomy and Decision Tree are part of a conference presentation by Yahoo Chris Madden: https://www.bsidesdub.ie/ May 27 2023. Copyright © 2024 by Future Corporation - 34 -
リスクとは リスクの3要素は「脆弱性」「脅威」「影響」である。 脆弱性 脅威 影響 Copyright © 2024 by Future Corporation - 35 -
脅威情報 公開されている脆弱性情報は実際の悪用の状況は考慮されていない。重大な脆弱性の中から、 実際 に悪用されている脆弱性 をフィルタしたい。 脆弱性 脅威 影響 では悪用されている脆弱性はどれくらいある? Copyright © 2024 by Future Corporation - 36 -
実際に攻撃に使われる脆弱性の割合 実際に攻撃に使われている脆弱性は2%-5 %未満。最優先に対応する必要がある。 CVSSスコアでは攻撃に使われる脆弱性を予測したり判断はできない。 <攻撃に利用される脆弱性> <BOD 22-01: 既知の脆弱性の重大なリスクの軽減> 2.24% 約4,615件 公開されている CVE の総数のうち 4% 未満しか悪用されていません。 出所: Qualys Part 1: An In-Depth Look at the Latest Vulnerability Threat Landscape Copyright © 2024 by Future Corporation - 37 -
実際に攻撃に使われる脆弱性の割合 攻撃に利用される脆弱性は5%だが信頼できる網羅的な情報源は存在しない。 未知の脆弱性を含む すべての脆弱性 CVEがついていない 既知の脆弱性もある CVEがついた脆弱性は 全部で約20万件 全CVEの5%(1万件) が悪 用されている だが、信頼できる 網羅的 な情報源は存在しない metasploit(約3,000件) nuclei(2,000件) CVEの50%に既知の エクスプロイト/PoCが存在 CISA-KEV 約1,000件 https://riskbasedprioritization.github.io/risk/Data_Sources/ では実際に攻撃に使われている脆弱性をどうやって絞り込む? Copyright © 2024 by Future Corporation - 38 -
無料で公開されている脅威情報の例 ソース 事実/予測 CISA KEV 事実 CISAが公開している、実際に悪用が確認された脆弱性 を掲載したカタログ Vulncheck KEV 事実 Vulncheck社が公開しているKEVカタログ。(2024/2公開開始) EPSS 予測 FIRSTが公開している、今後 30 日以内に脆弱性が悪用される確率 正確さ 概要 Vul CI KEV CISA (1150 CVE) Vulncheck KEV (2827 CVE) EPSS (全CVE) 早さ Copyright © 2024 by Future Corporation - 39 -
リスクを考慮した脆弱性管理とは リスクの3要素は「脆弱性」「脅威」「影響」である。重大な脆弱性、かつ実際に悪用されている、かつ自 社ビジネスに影響の大きいものから優先的に対応していくのが理想。 脆弱性 脅威 影響 リスクが高い(赤い)部分を特定する良い方法はある? Copyright © 2024 by Future Corporation - 40 -
SSVC - Stakeholder-Specific Vulnerability Categorization SSVCとは『リスク = 脆弱性 x 脅威 x 影響』 に相当する情報を元に決定木を用いて脆弱性の対応優 先度を4段階に決定できるフレームワークである。 <Depoyerツリー(運用者向け)> Depoyerツリー(運用者向け) <DeployerTree (システム運用者向け)> SSVC Stakeholder-Specific Vulnerability Categorization 背景 カーネギーメロン大学が提案 CISAがトリアージ手法として推奨 脅威 概要 用途毎の決定木が用意されている - CERT向け「coordinator tree」 - 運用者向け「deployer tree」 - PSIRT向け「supplier tree」 - SSVCのドキュメント - 決定木のデモサイト - GitHub>CERTCC/SSVC - 仕様をオープンに議論している 脆弱性 影響 Copyright © 2024 by Future Corporation - 41 -
SSVC Deployer Treeの詳細 リスクの3要素をカバーしており、リスクを総合的に判断可能。 Decision Point リスク要素 脅威 poc未公開 Exploit-DB やMetasploit 等にpocが公開されている CISA-KEV, Vulncheck-KEV , Vulnrichment , EPSS, ベンダ情報 small controlled open インターネットから隔離された環境 インターネット非公開の社内システムなど インターネットから到達できる 脆弱性 no yes キルチェーンの1-4が自動化可能かどうか(RCEはyes)。 Vulnrichment にも情報あり。 影響 low medium high very high ビジネス活動に特に影響低 影響は限定的な場合 ある一つ・少数の基幹業務に影響あり 会社全体のビジネス活動に影響あり Exposure Human Impact 判断基準・情報ソース no poc active Exploitation Automatable 値 Copyright © 2024 by Future Corporation - 42 -
デモ SSVCの決定木のデモサイト上で人気の脆弱性の優先順位付けを試してみる。 https://certcc.github.io/SSVC/ssvc-calc/ CVE 資産 製品 EPSS(%) サーバ OpenSSH 4.5 CVE-2023-27997 NW機器 Fortigate 13.47 CISA-KEV: 掲載されているのでExploitationはActive Automatable: - yesだろう(AV:N, AC:L, PR:N) - IP, Portでチェックできるtool CVE-2021-44228 (Log4Shell) ライブラリ Log4j 97.56 CISA-KEV: 掲載されているのでExploitationはActive Automatable: yes CVE-2024-6387 (regreSSHion) 判断基準・情報ソース Vulnrichment: Exploitation: poc, Automatable: no Copyright © 2024 by Future Corporation - 43 -
脅威レベルに応じた優先度判断 どんなに重大な脆弱性でも攻撃の事例がない場合は対応優先度は下がる。 PoCが無い場合は基本「次回の定期メ ンテナンス時」でOK PoCが公開されているが攻撃の事例な しの場合は、一部重要システムのみ「な る早対応」 攻撃がActiveな場合は 「即時対応」「なる早対応」 Copyright © 2024 by Future Corporation - 44 -
インターネット露出度、ビジネス影響を考慮した優先度判断 攻撃がActiveな場合はでも、「インターネット露出度」「対象システムのビジネスへの影響度」などを考 慮し「即時対応」「なる早対応」を判断できる。 インターネットサービスの場合の決定木 攻撃がActive 社内システムの場合の決定木 攻撃がActive なる早対応でOK 即時対応が必要 インターネットに 公開 社内システム Copyright © 2024 by Future Corporation - 45 -
SSVC Deployer Treeで実際に優先順位付けの実験 5つの環境を想定して「4,716件」の脆弱性をDeployer Tree2.0で優先順位付けした。 immediate と out-of-cycle を見ると、現実的に対応できる数に絞り込めている。 immediate out-of-cycle immediate/out-of -cycleの割合 インターネット公開の「超」重要システム 16 2100 44.8% 2600 0 インターネット公開の重要システム 16 50 1.4% 4650 0 社内NWの基幹システム(販売管理など) 0 16 0.33% 4700 0 業務影響が小さい社内システム (勤怠管理など ) 0 0 0% 4716 0 閉域網の「超」重要な基幹系システム 0 16 0.33% 4700 0 scheduled defer 同じ脆弱性でも「インターネット露出度」「業務影響」に応じて異なる優先度に分類される Copyright © 2024 by Future Corporation - 46 -
SSVCのまとめ SCAツールで検知された脆弱性を決定木を用いて『リスク = 脆弱性 x 脅威 x 影響』の考え方で評価。 実際に対応可能な数までしぼり込める。脅威情報は日々変化する。変化のたびに再評価が必要。工 数がかかるので人手では難しく自動化が理想。 SSVCでリスク評価 脆弱性情報 スキャナで検 知した脆弱 性 高リスク Copyright © 2024 by Future Corporation - 47 -
1. リスク評価して対応優先順位付け(SSVC) 2. 誤検知・ノイズを減らす(Reachability) 2.1 ベンダ/OSSが提供するVEXを利用する 2.2 ユーザ側でReachabilityを検証する Copyright © 2024 by Future Corporation - 48 -
誤検知・ノイズを減らす(Reachability) SCAツールが検知に用いる脆弱性データベースには「パッケージ/ライブラリ名」と「バージョンのレン ジ」しか記載されていないため、誤検知(過検知/FP)が発生する。 ベンダ提供のVEXや、ユーザ側でReachabilityを解析して誤検知を減らす仕組みが必要。 Software [email protected] Code [email protected] Code Code Copyright © 2024 by Future Corporation - 49 -
誤検知・ノイズを減らす(Reachability) SCAツールが検知した脆弱性のうち、「実際に影響を受ける脆弱性」のみにフィルタすればリスク評価 の対象となる脆弱性を減らすことができる。 脆弱性 脅威 影響 脆弱性 脅威 影響 Copyright © 2024 by Future Corporation - 50 -
ツールが検知した脆弱性の誤検知率 SCAツールで検知した脆弱性は、実際には影響が無いケースが多いと言われている。 - 今日の欠陥のうち実際に攻撃者が到達可能なのはわずか 3% 程度(らしい)(※1) - 脆弱な Log4J 依存関係の 96% は攻撃不可能(らしい)(※1) - コンテナ内の80%-90%のパッケージ/OSSはメモリに読まれない(らしい)(※2) - ベンダ提供のVEX - ユーザ側でReachabilityの解析 脆弱性情報 スキャナで検 知した 脆弱性 SSVCでリスク評価 Reachable 高リスク 出所: ※1 2022AppSec Shift Left Progress Report ※2 VulnCon2023 From SBOM to VEX - Discovering What's in the Box and How Badly it Can Hurt You Copyright © 2024 by Future Corporation - 51 -
1. リスク評価して対応優先順位付け(SSVC) 2. 誤検知・ノイズを減らす(Reachability) 2.1 ベンダ/OSSが提供するVEXを利用する 2.2 ユーザ側でReachabilityを検証する Copyright © 2024 by Future Corporation - 52 -
Vulnerability Exploitability eXchange(VEX)
VEXとはNTIAが策定した特定の脆弱性による製品への影響を表現するフォーマットのこと。
影響を受けない ことを示せる。機械可読なため、ツールへの統合が可能。
{
"vulnerability": { "name": "CVE-2023-12345" }
Software
"products": [
[email protected]
{
Code
"@id": "pkg:apk/[email protected]",
"subcomponents": {"@id": "pkg:apk/[email protected]"},
}
[email protected]
],
Code
Code
"status": "not_affected",
"justification": "vulnerable_code_not_in_execute_path",
}
Copyright © 2024 by Future Corporation
- 53 -
VEXによりReachableな脆弱性のみにフィルタ可能 今後数年間でベンダー/OSS等からVEXが公開されるだろう。VEXにはReachabilityの情報が書かれて おり、SCAツールが読み込むことで誤検知が減る。VEXの流通については今後数年間で整備されるだ ろう。 SBOM 脆弱性DB SBOM VEX 脆弱性DB Copyright © 2024 by Future Corporation - 54 -
1. リスク評価して対応優先順位付け(SSVC) 2. 誤検知・ノイズを減らす(Reachability) 2.1 ベンダ/OSSが提供するVEXを利用する 2.2 ユーザ側でReachabilityを検証する Copyright © 2024 by Future Corporation - 55 -
ユーザ側でReachabilityを検証する ベンダ/OSSから公開されるVEXのReachability情報を気長に待っていられない。すでにいくつか Reachabilityを検証しSCAツールの誤検知をフィルタする研究やツールが存在する。 今後様々な研究やツールが生み出されると予想する。 金井 遵, 上原 龍也, 小池 竜一, 鬼頭 利之 (東芝), 神戸 康多, 木戸 俊輔, 篠原 俊一, 中岡 典弘, 林 優二郎 (フューチャー) 「PSIRT向け脆弱性スクリーニング技術と環境毎リスク評価技術」CSS2024 <govulncheck> <Kubescape> Copyright © 2024 by Future Corporation - 56 -
まとめ これまで大きな課題であった脆弱性管理は、今後数年間で劇的に進化すると期待している。 - ベンダーから提供されるSBOM/VEXの普及とツールのReachabilityを考慮した検知 ユーザのランタイム側でもReachability検証の自動化 SSVCなどでリスク評価して対応優先順位付けの自動化 - ベンダ提供のVEX - ユーザ側でReachabilityの解析 脆弱性情報 スキャナで検 知した 脆弱性 SSVCでリスク評価 Reachable 高リスク Copyright © 2024 by Future Corporation - 57 -