启用漏洞扫描

本指南介绍了如何通过在 Secure Source Manager 中启用漏洞扫描功能来提升安全状况。

漏洞扫描功能会自动检测源代码依赖项中的已知漏洞,并扫描对拉取请求的每次新提交。 漏洞会同时显示在拉取请求视图和代码库范围内的安全标签页中。

启用漏洞扫描

确保为您的代码库启用了以下角色和设置。

所需的角色

如需获得启用漏洞扫描所需的权限,请让管理员向您授予 Secure Source Manager 代码库的 Secure Source Manager Repository Admin (roles/securesourcemanager.repoAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色包含启用漏洞扫描所需的 securesourcemanager.repositories.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制和向用户授予实例访问权限。

更新代码库设置

您可以通过 Secure Source Manager 界面为代码库启用漏洞扫描:

  1. 前往要启用漏洞扫描的仓库。
  2. 点击设置图标。
  3. 找到漏洞扫描切换开关。
  4. 点击切换开关,将其切换到开启位置。
  5. 点击 Update Settings 按钮。

使用漏洞扫描

启用漏洞扫描后,系统会自动执行以下扫描:

  • 预定扫描:所有分支的头提交,每天一次。
  • 拉取请求扫描:
    • 创建拉取请求时,新拉取请求的头提交。
    • 在推送时,将新提交推送到拉取请求。

系统只会检测代码依赖项中的漏洞。 漏洞扫描会检测公共数据库中列出的漏洞,包括但不限于美国国家漏洞数据库和 GitHub Advisory Database。检测到的漏洞包括指向漏洞公共数据库数据的外部链接,以及 CVE ID(如果可用)。

“安全性”标签页

启用漏洞扫描后,仓库的导航栏中会显示安全标签页,您可以使用该标签页搜索扫描到的漏洞,保留期限最长为 3 年。

“Security”(安全)标签页包含定期扫描和拉取请求扫描的结果。

默认情况下,“安全”标签页的发现于过滤条件将设置为最近浏览的分支(或代码库的默认分支)。如需查看其他漏洞,请调整或清除发现位置过滤条件。

安全标签页包含每个漏洞的以下数据:

  • 严重程度:漏洞的安全严重程度,由公共漏洞数据库来源评定。
  • ID:公开的 CVE ID(如果有),否则为其他标识符,例如 GHSA ID。此外,如果可用,还会提供指向该漏洞的公共数据库条目的外部链接。
  • 发现位置:扫描的 Git 提交 SHA,以及以此为最新提交的所有 Git 分支、Git 标记或拉取请求的列表。
  • 文件:包含易受攻击的依赖项的代码库源文件,以及行号(如果有)。
  • 软件包:包含漏洞的依赖软件包名称及其版本。如果已知,还会列出解决漏洞的软件包版本。
  • 说明:漏洞说明(如有)。
  • 检测到:检测到漏洞的扫描日期。

安全标签页中提供以下过滤条件:

  • 严重级别:仅显示具有指定严重级别(CRITICAL、HIGH、MEDIUM 或 LOW)的漏洞。
  • 发现于:仅显示在指定的 Git 分支、标记或提交 SHA 中检测到的漏洞。
  • 文件:仅显示在指定来源路径中检测到的漏洞。接受子字符串;例如,project/ 可用于过滤 project/ 目录中的易受攻击的依赖项。
  • 漏洞:通过漏洞的公开数据(例如其 ID、说明或受影响的软件包名称)搜索漏洞。接受子字符串。
  • 开始日期和结束日期:仅显示分别在给定日期之后或之前检测到的漏洞。格式:YYYY-MM-DD。

拉取请求

拉取请求扫描完成后,检测到的漏洞会显示在拉取请求的对话标签页中。扫描会检查所有代码库文件。 可能包含拉取请求中未修改的文件中的漏洞。

拉取请求会显示检测到的主要漏洞的简略视图。 如需查看拉取请求的漏洞的完整列表和详细信息,请点击完整结果链接,在代码库的“Security”(安全)标签页中查看。

漏洞不会阻止拉取请求合并。

支持的文件类型

系统会扫描以下语言的软件包文件,以查找依赖项漏洞:

支持
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Rust
TypeScript
.NET

后续步骤