漏洞风险评估数据
使用漏洞风险数据来帮助评估对您环境的潜在影响。
-
严重性:每个漏洞都被分配了一个标准化的 GitLab 严重性值。
-
对于 通用漏洞和暴露 (CVE) 目录中的漏洞,以下数据可以通过 漏洞详情 页面或使用 GraphQL 查询获取:
- 利用可能性:利用预测评分系统 (EPSS) 分数。
- 已知漏洞的存在性:已知被利用漏洞 (KEV) 状态。
使用这些数据来帮助优先处理修复和缓解措施。例如,一个具有中等严重性且高 EPSS 分数的漏洞,可能比一个具有高严重性且低 EPSS 分数的漏洞需要更早进行缓解。
EPSS
EPSS 分数提供了对 CVE 目录中漏洞在未来 30 天内被利用可能性的估计。EPSS 为每个 CVE 分配一个 0 到 1 之间的分数(相当于 0% 到 100%)。
KEV
KEV 目录列出了已知已被利用的漏洞。您应该优先处理 KEV 目录中的漏洞,而不是其他漏洞。使用这些漏洞的攻击已经发生,并且利用方法可能已被攻击者知晓。
可达性
可达性显示易受攻击的软件包是否在您的应用程序中被积极使用。与代码直接交互的软件包中的漏洞比未使用的依赖项中的漏洞风险更高。优先修复可达的漏洞,因为它们代表了攻击者可能利用的实际暴露点。
查询风险评估数据
使用 GraphQL API 查询项目中漏洞的严重性、EPSS 和 KEV 值。
GraphQL API 中的 Vulnerability 类型有一个 cveEnrichment 字段,当 identifiers 字段包含 CVE 标识符时会填充该字段。cveEnrichment 字段包含漏洞的 CVE ID、EPSS 分数和 KEV 状态。EPSS 分数四舍五入到小数点后第二位。
例如,以下 GraphQL API 查询返回给定项目中的所有漏洞及其 CVE ID、EPSS 分数和 KEV 状态(isKnownExploit)。在 GraphQL 探索器 或任何其他 GraphQL 客户端中运行查询。
{
project(fullPath: "<full/path/to/project>") {
vulnerabilities {
nodes {
severity
identifiers {
externalId
externalType
}
cveEnrichment {
epssScore
isKnownExploit
cve
}
reachability
}
}
}
}示例输出:
{
"data": {
"project": {
"vulnerabilities": {
"nodes": [
{
"severity": "CRITICAL",
"identifiers": [
{
"externalId": "CVE-2019-3859",
"externalType": "cve"
}
],
"cveEnrichment": {
"epssScore": 0.2,
"isKnownExploit": false,
"cve": "CVE-2019-3859"
}
"reachability": "UNKNOWN"
},
{
"severity": "CRITICAL",
"identifiers": [
{
"externalId": "CVE-2016-8735",
"externalType": "cve"
}
],
"cveEnrichment": {
"epssScore": 0.94,
"isKnownExploit": true,
"cve": "CVE-2016-8735"
}
"reachability": "IN_USE"
},
]
}
}
},
"correlationId": "..."
}漏洞优先级排序器
- 状态:实验性
使用 漏洞优先级排序器 CI/CD 组件 来帮助优先处理项目的漏洞(即 CVE)。该组件在 vulnerability-prioritizer 作业的输出中输出优先级排序报告。
漏洞按以下顺序列出:
- 已知被利用的漏洞(KEV)为最高优先级。
- EPSS 分数越高(越接近 1)优先级越高。
- 严重性从
Critical到Low排序。
仅包含 依赖扫描 和 容器扫描 检测到的漏洞,因为漏洞优先级排序器 CI/CD 组件只需要通用漏洞和暴露(CVE)记录中可用的数据。此外,仅显示 检测到(需要分类)和确认的 漏洞。
要将漏洞优先级排序器 CI/CD 组件添加到您项目的 CI/CD 管道中,请参阅 漏洞优先级排序器文档。