漏洞详情

  • Tier: 旗舰版
  • Offering: JihuLab.com, 私有化部署

每个项目中的漏洞都有一个漏洞页面,其中包含漏洞的详细信息,包括:

  • 描述
  • 检测时间
  • 当前状态
  • 可用操作
  • 已链接的议题
  • 操作日志
  • 漏洞的文件名和行号(如果可用)
  • 严重性

对于 常见漏洞和暴露(CVE) 目录中的漏洞,这些详细信息还包括:

有关这些附加数据的更多详细信息,请参见 漏洞风险评估数据

如果扫描器确定漏洞为误报,则在漏洞页面顶部会包含一个警报消息。

支持的漏洞解决#

为了确保建议的解决方案质量高,漏洞解决功能仅适用于特定的漏洞集。系统根据漏洞的常见弱点枚举(CWE)标识符决定是否提供漏洞解决功能。

我们根据自动化系统和安全专家的测试选择当前的漏洞集。我们正在积极努力扩大覆盖范围,以涵盖更多类型的漏洞。

  • CWE-23: 相对路径遍历
  • CWE-73: 外部控制文件名或路径
  • CWE-80: 在网页中不正确地中和与脚本相关的 HTML 标签(基本 XSS)
  • CWE-116: 不正确地编码或转义输出
  • CWE-118: 错误访问可索引资源(“范围错误”)
  • CWE-119: 未正确限制内存缓冲区内的操作
  • CWE-120: 未检查输入大小的缓冲区拷贝(“经典缓冲区溢出”)
  • CWE-126: 缓冲区过读
  • CWE-190: 整数溢出或环绕
  • CWE-200: 向未授权行为者暴露敏感信息
  • CWE-208: 可观察的时间差异
  • CWE-209: 生成包含敏感信息的错误消息
  • CWE-272: 最低权限违规
  • CWE-287: 认证不当
  • CWE-295: 证书验证不当
  • CWE-297: 主机不匹配的证书验证不当
  • CWE-305: 通过主要弱点绕过认证
  • CWE-310: 加密问题
  • CWE-311: 未加密敏感数据
  • CWE-323: 在加密中重用 Nonce、密钥对
  • CWE-327: 使用损坏或风险的加密算法
  • CWE-328: 使用弱哈希
  • CWE-330: 使用不充分随机值
  • CWE-338: 使用加密弱的伪随机数生成器(PRNG)
  • CWE-345: 数据真实性验证不足
  • CWE-346: 来源验证错误
  • CWE-352: 跨站请求伪造
  • CWE-362: 使用共享资源的不当同步的并发执行(“竞争条件”)
  • CWE-369: 除以零
  • CWE-377: 不安全的临时文件
  • CWE-378: 用不安全权限创建临时文件
  • CWE-400: 无控制的资源消耗
  • CWE-489: 活动调试代码
  • CWE-521: 弱密码要求
  • CWE-539: 使用包含敏感信息的持久性 Cookie
  • CWE-599: 缺少验证 OpenSSL 证书
  • CWE-611: 不正确地限制 XML 外部实体引用
  • CWE-676: 使用潜在危险函数
  • CWE-704: 错误类型转换或强制
  • CWE-754: 未正确检查异常或特殊情况
  • CWE-770: 无限制或节流的资源分配
  • CWE-1004: 没有 'HttpOnly' 标记的敏感 Cookie
  • CWE-1275: 不正确 SameSite 属性的敏感 Cookie

故障排除#

漏洞解决功能有时无法生成建议的修复。常见原因包括:

  • 误报检测:在提出修复建议之前,AI 模型会评估漏洞是否有效。它可能判断漏洞不是真实漏洞,或者不值得修复。
    • 如果漏洞出现在测试代码中,可能会发生这种情况。您的组织可能仍会选择修复漏洞,即使它们发生在测试代码中,但模型有时会评估这些为误报。
    • 如果您同意漏洞是误报或不值得修复,您应该 忽略漏洞选择匹配原因
      • 要自定义 SAST 配置或报告极狐GitLab SAST 规则的问题,请参见 SAST 规则
  • 临时或意外错误:错误消息可能指出 "发生了意外错误","上游 AI 提供商请求超时","出现问题",或类似原因。
    • 这些错误可能是由 AI 提供商或极狐GitLab Duo 的临时问题引起的。
    • 新请求可能成功,因此您可以尝试再次解决漏洞。
    • 如果您持续看到这些错误,请联系极狐GitLab获取帮助。

与第三方 AI API 共享的漏洞解决数据#

以下数据与第三方 AI API 共享:

  • 漏洞名称
  • 漏洞描述
  • 标识符(CWE、OWASP)
  • 包含易受攻击代码行的整个文件
  • 易受攻击的代码行(行号)

漏洞代码流#

  • Tier: 旗舰版
  • Offering: JihuLab.com, 私有化部署

对于特定类型的漏洞,极狐GitLab高级 SAST 提供 代码流 信息。漏洞的代码流是数据从用户输入(源)到易受攻击代码行(汇)的路径,经过所有赋值、操作和净化。

有关如何查看漏洞代码流的详细信息,请参见 漏洞代码流

跨两个文件的 Python 应用程序代码流

漏洞状态值#

漏洞的状态可以是:

  • 需要筛选:新发现漏洞的默认状态。
  • 已确认:用户已查看该漏洞并确认其准确性。
  • 已忽略:用户已评估该漏洞并 忽略了它。如果在后续扫描中检测到,已忽略的漏洞将被忽略。
  • 已解决:漏洞已被修复或不再存在。如果已解决的漏洞被重新引入并再次检测到,其记录将被恢复并将状态设置为 需要筛选

漏洞通常经历以下生命周期:

Rendering chart...

漏洞不再检测到#

History
    • 对于已解决漏洞的提交链接引入于极狐GitLab 17.9,并在私有化部署上 GA。功能标志 vulnerability_representation_information 已删除。

由于故意进行的更改以缓解漏洞或其他更改的副作用,漏洞可能不再检测到。当安全扫描运行并且在默认分支中不再检测到漏洞时,扫描器会将 不再检测到 添加到记录的活动日志,但记录的状态不会改变。相反,您应该检查并确认漏洞已解决,如果是,请 手动将其状态更改为 已解决。您还可以使用 漏洞管理策略 自动将符合特定标准的漏洞状态更改为 已解决

您可以在漏洞页面的顶部或底部找到解决漏洞的提交链接。

漏洞忽略原因#

History
    • 引入于极狐GitLab 15.11,使用名为 dismissal_reason功能标志
    • 在极狐GitLab 16.0 中,在私有化部署上启用。
    • 在极狐GitLab 16.2 中 GA。功能标志 dismissal_reason 被移除。

当您忽略漏洞时,您必须选择以下原因之一:

  • 可接受的风险:漏洞已知,并未得到修复或缓解,但被认为是可接受的业务风险。
  • 误报:报告错误,其中测试结果错误地指示系统中存在漏洞,而漏洞不存在。
  • 缓解控制:漏洞的风险通过组织使用的管理、操作或技术控制(即,保障措施或对策)得到缓解,提供信息系统的等效或可比较的保护。
  • 用于测试:发现不是漏洞,因为它是测试的一部分或是测试数据。
  • 不适用:漏洞已知,并未得到修复或缓解,但被认为在不会更新的应用程序部分。

更改漏洞的状态#

History
    • 允许具有 Developer 角色的用户修改漏洞状态(admin_vulnerability)的能力在极狐GitLab 16.4 中被弃用,并在极狐GitLab 17.0 中被删除。
    • 在漏洞页面上添加 评论 文本框是在极狐GitLab 17.9 中添加的。

先决条件:

  • 您必须至少拥有项目的维护者角色,或具有 admin_vulnerability 权限的自定义角色。

要从漏洞页面更改漏洞的状态:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 安全 > 漏洞报告
  3. 选择漏洞的描述。
  4. 选择 更改状态
  5. 状态 下拉列表中选择一个状态或 忽略原因,当您想将漏洞的状态更改为 已忽略 时。
  6. 评论 文本框中提供有关忽略原因的更多详细信息的评论。当您应用 已忽略 状态时,必须提供评论。

状态更改的详细信息,包括谁进行了更改以及何时进行,更改记录在漏洞的操作日志中。

为漏洞创建极狐GitLab议题#

您可以创建极狐GitLab议题来跟踪为解决或缓解漏洞而采取的任何行动。要为漏洞创建极狐GitLab议题:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 安全 > 漏洞报告
  3. 选择漏洞的描述。
  4. 选择 创建议题

议题在极狐GitLab项目中创建,包含漏洞报告的信息。

要创建 Jira 议题,请参见 为漏洞创建 Jira 议题

将漏洞链接到极狐GitLab和 Jira 议题#

您可以将漏洞链接到一个或多个现有的 极狐GitLabJira 议题。一次只能使用一个链接功能。添加链接有助于跟踪解决或缓解漏洞的议题。

将漏洞链接到现有极狐GitLab议题#

先决条件:

要将漏洞链接到现有极狐GitLab议题:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 安全 > 漏洞报告
  3. 选择漏洞的描述。
  4. 已链接议题 部分,选择加号图标 ()。
  5. 对每个要链接的议题,执行以下操作之一:
    • 粘贴议题的链接。
    • 输入议题的 ID(以井号 # 前缀)。
  6. 选择 添加

选择的极狐GitLab议题会添加到 已链接项目 部分,并更新已链接议题计数器。

链接到漏洞的极狐GitLab议题显示在漏洞报告和漏洞页面中。

请注意漏洞和已链接极狐GitLab议题之间的以下条件:

  • 漏洞页面显示相关议题,但议题页面不显示其相关的漏洞。
  • 议题一次只能与一个漏洞相关。
  • 议题可以跨群组和项目链接。

将漏洞链接到现有 Jira 议题#

先决条件:

  • 确保 Jira 议题集成已 配置,并选择 为漏洞创建 Jira 议题 复选框。

要将漏洞链接到现有 Jira 议题,请在 Jira 议题的描述中添加以下行:

plaintext
/-/security/vulnerabilities/<id>

<id> 是任何 漏洞 ID。您可以在一个描述中添加几行不同的 ID。

具有适当描述的 Jira 议题会添加到 相关 Jira 议题 部分,并更新已链接议题计数器。

链接到漏洞的 Jira 议题仅在漏洞页面上显示。

请注意漏洞和已链接 Jira 议题之间的以下条件:

  • 漏洞页面和议题页面显示其相关的漏洞。
  • 一个议题可以同时与一个或多个漏洞相关。

解决漏洞#

对于某些漏洞,解决方案已知,但需要手动实施。漏洞页面中的 解决方案 字段由报告安全发现的安全扫描工具提供,或在 手动创建漏洞 时输入。极狐GitLab工具利用 极狐GitLab咨询数据库 的信息。

此外,一些工具可能包括应用建议解决方案的软件补丁。在这些情况下,漏洞页面包括 通过合并请求解决 选项。

以下扫描器受此功能支持:

要解决漏洞,您可以:

从漏洞创建合并请求

通过合并请求解决漏洞#

要通过合并请求解决漏洞:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 安全 > 漏洞报告
  3. 选择漏洞的描述。
  4. 通过合并请求解决 下拉列表中选择 通过合并请求解决

创建应用解决漏洞所需补丁的合并请求。根据您的标准工作流程处理合并请求。

手动解决漏洞#

要手动应用极狐GitLab为漏洞生成的补丁:

  1. 在左侧边栏,选择 搜索或转到 并找到您的项目。
  2. 选择 安全 > 漏洞报告
  3. 选择漏洞的描述。
  4. 通过合并请求解决 下拉列表中选择 下载补丁以解决
  5. 确保您的本地项目已签出生成补丁时使用的相同提交。
  6. 运行 git apply remediation.patch
  7. 验证并提交更改到您的分支。
  8. 创建合并请求以应用更改到您的主分支。
  9. 根据您的标准工作流程处理合并请求。