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安装