cisagov/vulnrichment

GitHub: cisagov/vulnrichment

CISA 通过该仓库对公开 CVE 记录进行 SSVC 评分、CWE 标识、CVSS 分数及 KEV 标记等漏洞元数据的自动化和人工富化,为漏洞管理提供更完整的决策数据。

Stars: 826 | Forks: 106

# CISA Vulnrichment CISA Vulnrichment 项目是 CISA 通过其 ADP (Authorized Data Publisher) 容器对公开 CVE 记录进行数据富化(enrichment)的公开代码库。在项目的当前阶段,CISA 正在对新增及近期的 CVE 进行评估,并添加关键的 [SSVC](https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc) 决策点。完成评分后,如果条件允许,部分高风险 CVE 还将进一步获得 [CWE](https://cwe.mitre.org/) 和/或 [CVSS](https://www.first.org/cvss/) 数据点的富化。 此类 CVE 数据的生产者和消费者应当已经熟悉当前的 [CVE 记录格式](https://www.cve.org/AllResources/CveServices#CveRecordFormat),并可以通过常规方式访问这些数据,包括 [GitHub API](https://docs.github.com/en/rest/quickstart) 和 [CVE Services API](https://cveawg-test.mitre.org/api-docs/)。请注意,Vulnrichment 的处理结果正通过近期(2024 年)启动的 [ADP 计划](https://www.cve.org/Media/News/item/blog/2024/06/04/CISA-Added-as-CVE-Authorized-Data-Publisher) 推送回 CVE 语料库中。如果下游消费者已经在使用实时的 CVE 数据,则无需 fork 并持续追踪此 GitHub 代码库。 本项目正处于积极开发中,请随时关注此 [README.md](https://github.com/cisagov/vulnrichment/blob/develop/README.md) 以获取更新。 ## 工作原理 首先,CISA 会对每个 CVE 进行 SSVC 评分流程。 接下来,对于被评为“完全技术影响 (Total Technical Impact)”、“可自动化 (Automatable)”,或者其“利用 (Exploitation)”值为“概念验证 (Proof of Concept)”或“活跃利用 (Active Exploitation)”的 CVE,将进行进一步的分析。CISA 将评估是否有足够的信息来确定具体的 CWE 标识符和/或 CVSS 分数。在某些情况下,即使漏洞在上述任何决策点上的风险评估并不高,CISA 也会提供这些指标。 对于原始 CNA 尚未填充这些字段的 CVE,只要有足够的支持性证据,CISA 就会在关联的 ADP 容器中填充这些值。CISA 绝不会在 CVE 记录的原始 CNA 容器中覆盖原始 CNA 的数据。 这些[流程图](flowcharts.md)说明了 Vulnrichment 的处理过程。请注意,随着 Vulnrichment 流程的不断优化,流程图中的细节可能会有所变化。 ### 部分 CVE 示例 让我们花点时间查看一些 CVE 记录,了解您可以从 CISA ADP 获得的每一种 Vulnrichment 类型。 下面作为示例选取的所有 CVE,都是从符合演示标准的 CVE 中随机挑选的。 #### SSVC 决策点 CISA ADP 分析的每个 CVE 都会列出三个 SSVC 决策点。在这些示例中,我们将查看 CVE-2024-34974、CVE-2024-25522 和 CVE-2024-35057。我们还将查看 CVE-2024-33666,这是一个 SSVC 评分为低风险的 CVE。 CVE-2024-25522 的 Exploit 值为“poc”(见[第 47 行](2024/25xxx/CVE-2024-25522.json#L47)),这表明在进行分析时已经存在公开的概念验证: ``` "options": [ { "Exploitation": "poc" }, { "Automatable": "yes" }, { "Technical Impact": "total" } ] ``` CVE-2024-34974 的“Automatable”值为“yes”(见[第 50 行](2024/34xxx/CVE-2024-34974.json#L50)),这表明攻击者通常可以随意利用此漏洞,而无需担心侦察、武器化、传递或漏洞利用防护技术。 ``` "options": [ { "Exploitation": "none" }, { "Automatable": "yes" }, { "Technical Impact": "partial" } ] ``` CVE-2024-35057 的“Technical Impact”值为“total”(见[第 59 行](2024/35xxx/CVE-2024-35057.json#L59)),这表明利用此漏洞通常会让攻击者完全控制受影响的软件。 ``` "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ] ``` #### KEV 标记 对于被列入 [KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) 的 CVE,CISA ADP 将添加一个 [KEV 块](assets/kev_metrics_schema-1.0.json)。对于未被列入的 CVE,则不会进行任何更新。 CVE-2024-4947 就是这样一个 CVE,它包含了从[第 153 行](2024/4xxx/CVE-2024-4947.json#L153)开始的 KEV 块: ``` "other": { "type": "kev", "content": { "dateAdded": "2024-05-20", "reference": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2024-4947" } } ``` #### CWE 标识符 CVE-2024-3477 是一个示例 CVE,其原始 CNA 没有提供 CWE,而 CISA 的分析人员能够根据可用的漏洞信息上下文确定一个 CWE。该指标从 `problemTypes` 节点下的[第 49 行](2024/3xxx/CVE-2024-3477.json#L49-L60)开始: ``` "problemTypes": [ { "descriptions": [ { "lang": "en", "type": "CWE", "cweId": "CWE-352", "description": "CWE-352 Cross-Site Request Forgery (CSRF)" } ] } ] ``` #### CVSS 分数 CVE-2024-0043 是一个示例 CVE,CISA 为其添加了 CVSS 计算,从[第 30 行](2024/0xxx/CVE-2024-0043.json#L30-L44)开始。同样,这也是基于分析时可用的漏洞信息上下文得出的。 ``` "cvssV3_1": { "scope": "UNCHANGED", "version": "3.1", "baseScore": 7.8, "attackVector": "LOCAL", "baseSeverity": "HIGH", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "integrityImpact": "HIGH", "userInteraction": "REQUIRED", "attackComplexity": "LOW", "availabilityImpact": "HIGH", "privilegesRequired": "NONE", "confidentialityImpact": "HIGH" } ``` #### CPE 字符串 请注意,自 2024 年 12 月 10 日起,CISA 将不再向富化数据集中添加 CPE 字符串。此前已富化的数据可能仍包含 CPE 信息。此处关于 CPE 字符串的说明仅供历史参考。 CVE-2024-1347 是一个示例 CVE,CISA 为其添加了 CPE 字符串,从[第 61 行](2024/1xxx/CVE-2024-1347.json#L61-L63)开始。 ``` "cpes": [ "cpe:2.3:a:gitlab:gitlab:*:*:*:*:*:*:*:*" ] ``` #### 无额外更新 CVE-2024-2905 是一个示例 CVE,当 CISA 执行 SSVC 分类步骤时,它已经包含了 CWE、CVSS 和 CPE 指标(见[此处](2024/2xxx/CVE-2024-2905.json),并且它不在 KEV 列表中,因此无需再添加任何内容。干得漂亮,Red Hat CNA! ### 关于已更新 CVE 条目的说明 由于 CISA ADP 致力于鼓励各 CNA 做正确的事情,主动提供其自身的 CWE、CVSS 和 CPE 数据,如果某个 CVE 条目在 CISA ADP 完成评估后被更新并包含了这些数据,CISA ADP 将从该 CVE 条目中撤回其自身的评估结果。这种方法将减少 CVE 记录中的重复(及冲突)数据。在极少数情况下,如果原始 CNA *和* CISA ADP 同时提供了 CWE、CVSS 或 CPE 数据,应将其视为 CISA ADP 容器中的错误,并以原始 CNA 的数据为准。 ### 关于 SSVC 数据的说明 SSVC 数据的编码方式与生成该数据的决策树所使用的 SSVC 版本的 schema 保持一致。目前,CISA 正在使用 [CISA Coordinator](https://github.com/CERTCC/SSVC/blob/main/docs/ssvc-calc/CISA-Coordinator.json) 决策树。 SSVC 数据中的 version 字段遵循 major.minor.patch(主版本号.次版本号.修订号)约定,其中 major.minor 表示 SSVC 版本,patch 表示决策树版本。对于当前的 CISA 决策树,其版本号为 2.0.3:即 SSVC 版本 2.0,CISA Coordinator 决策树版本 3。 为了与 SSVC 的更新保持一致而进行的决策树更新,将导致此版本字符串发生变化。强烈建议使用此数据的用户在解码 SSVC 分数时留意版本号,以确定如何验证和处理 JSON 数据。 ## Issues 和 Pull requests
标签:Homebrew安装