漏洞严重性级别
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab 漏洞分析器会尽可能返回漏洞严重性级别值。以下是可用的 GitLab 漏洞严重性级别列表,按严重程度从高到低排列:
CriticalHighMediumLowInfoUnknown
GitLab 分析器努力匹配以下严重性描述,但不一定总是正确。第三方供应商提供的分析器和扫描器可能遵循不同的分类标准。
Critical 严重性
被识别为 Critical 严重性的漏洞应立即进行调查。此级别的漏洞假设利用该漏洞可能导致整个系统或数据被完全攻破。Critical 严重性漏洞的例子包括命令/代码注入和 SQL 注入。通常这些漏洞的 CVSS 3.1 评分在 9.0-10.0 之间。
High 严重性
High 严重性漏洞可以被描述为可能导致攻击者访问应用程序资源或意外数据泄露的缺陷。High 严重性漏洞的例子包括外部 XML 实体注入(XXE)、服务器端请求伪造(SSRF)、本地文件包含/路径遍历以及某些形式的跨站脚本攻击(XSS)。通常这些漏洞的 CVSS 3.1 评分在 7.0-8.9 之间。
Medium 严重性
Medium 严重性漏洞通常源于系统配置错误或缺少安全控制。利用这些漏洞可能导致访问受限数据,或者与其他漏洞结合使用以获得对系统或资源的未授权访问。Medium 严重性漏洞的例子包括反射型 XSS、不正确的 HTTP 会话处理以及缺少安全控制。通常这些漏洞的 CVSS 3.1 评分在 4.0-6.9 之间。
Low 严重性
Low 严重性漏洞包含可能无法直接利用但会给应用程序或系统带来不必要弱点的缺陷。这些缺陷通常是由于缺少安全控制,或者不必要地暴露了应用程序环境信息。Low 严重性漏洞的例子包括缺少 cookie 安全指令、详细的错误或异常消息。通常这些漏洞的 CVSS 3.1 评分在 0.1-3.9 之间。
Info 严重性
Info 级别严重性漏洞包含可能有价值的信息,但不一定与特定的缺陷或弱点相关。通常这些问题没有 CVSS 评分。
Unknown 严重性
在此级别识别的问题没有足够的上下文来明确展示其严重性。
GitLab 漏洞分析器包含流行的开源扫描工具。每个开源扫描工具都提供其自身的原生漏洞严重性级别值。这些值可能是以下之一:
| 原生漏洞严重性级别类型 | 示例 |
|---|---|
| String | WARNING, ERROR, Critical, Negligible |
| Integer | 1, 2, 5 |
| CVSS v2.0 Rating | (AV:N/AC:L/Au:S/C:P/I:P/A:N) |
| CVSS v3.1 Qualitative Severity Rating | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
为了提供一致的漏洞严重性级别值,GitLab 漏洞分析器将从前面的值转换为标准化的 GitLab 漏洞严重性级别,如下表所示:
容器扫描
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
container-scanning |
Yes | String | Unknown, Low, Medium, High, Critical |
当可用时,供应商严重性级别优先并被分析器使用。如果不可用,则回退到 CVSS v3.1 评分。如果也不可用,则使用 CVSS v2.0 评分。此实现的详细信息可在 trivy 的问题中找到。
DAST
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
Browser-based DAST |
Yes | String | HIGH, MEDIUM, LOW, INFO |
API 安全测试
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
API security testing |
Yes | String | HIGH, MEDIUM, LOW |
依赖扫描
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
gemnasium |
Yes | CVSS v2.0 Rating and CVSS v3.1 Qualitative Severity Rating 1 | (AV:N/AC:L/Au:S/C:P/I:P/A:N), CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
使用 CVSS v3.1 评分来计算严重性级别。如果不可用,则使用 CVSS v2.0 评分。
模糊测试
所有模糊测试结果都报告为 Unknown。应手动审查和分类这些结果,以发现可利用的故障并确定修复的优先级。
SAST
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
kubesec |
Yes | String | CriticalSeverity, InfoSeverity |
pmd-apex |
Yes | Integer | 1, 2, 3, 4, 5 |
semgrep |
Yes | String | error, warning, note, none |
sobelow |
Yes | Not applicable | 将所有严重性级别硬编码为 Unknown |
SpotBugs |
Yes | Integer | 1, 2, 3, 11, 12, 18 |
IaC 扫描
| GitLab 分析器 | 输出严重性级别? | 原生严重性级别类型 | 原生严重性级别示例 |
|---|---|---|---|
kics |
Yes | String | error, warning, note, none(在 analyzer version 3.7.0 and later 中映射为 info) |
KICS 严重性映射
KICS 分析器将其输出映射到 SARIF 严重性,进而映射到 GitLab 严重性。使用下表查看 GitLab 漏洞报告中的相应严重性。
| KICS 严重性 | KICS SARIF 严重性 | GitLab 严重性 |
|---|---|---|
| CRITICAL | error | Critical |
| HIGH | error | Critical |
| MEDIUM | warning | Medium |
| LOW | note | Info |
| INFO | none | Info |
| invalid | none | Info |
虽然 KICS 和 GitLab 都定义了 High 严重性,但 SARIF 没有,这意味着 KICS 中的 HIGH 漏洞在 GitLab 中映射为 Critical。这是预期的。
密钥检测
GitLab secrets 分析器将所有严重性级别硬编码为 Critical。
Epic 10320 建议采用更细粒度的严重性评级。