依赖列表

  • Tier: 旗舰版
  • Offering: JihuLab.com, 私有化部署
History
    • 群组级别依赖列表在极狐GitLab 16.2 中引入,使用名为 group_level_dependencies功能标志。默认禁用。
    • 群组级别依赖列表在极狐GitLab 16.4 中在 JihuLab.com 和私有化部署上启用。
    • 在极狐GitLab 16.5 中 GA。删除了功能标志 group_level_dependencies

使用依赖列表来查看项目或群组的依赖及这些依赖的关键细节,包括它们已知的漏洞。此列表是项目中依赖的集合,包括现有和新发现的信息。这些信息有时被称为软件材料清单,SBOM 或 BOM。

设置依赖列表#

要列出项目的依赖,请在项目的默认分支上运行依赖扫描容器扫描

依赖列表还显示来自任何上传自最新默认分支流水线的 CycloneDX 报告中的依赖。CycloneDX 报告必须符合 CycloneDX 规范版本 1.41.51.6

虽然这不是填充依赖列表的强制要求,但 SBOM 文档必须包括并符合 [极狐GitLab CycloneDX 属性分类](../../../development/sec/cyclonedx_property_taxonomy.md),以提供一些属性并启用一些安全功能。

查看项目依赖#

History
    • 在极狐GitLab 17.2 中,当功能标志 skip_sbom_occurrences_update_on_pipeline_id_change 启用时,location 字段不再链接到最后检测到依赖的提交。默认禁用。
    • 在极狐GitLab 17.3 中,location 字段始终链接到首次检测到依赖的提交。删除了功能标志skip_sbom_occurrences_update_on_pipeline_id_change

要查看项目或群组中所有项目的依赖:

  1. 在左侧边栏上,选择 搜索或转到 并找到您的项目或群组。
  2. 选择 安全 > 依赖列表

每个依赖的细节都会列出,并按漏洞的严重性递减排序(如果有)。您可以选择按组件名称、软件包或许可证对列表进行排序。

字段描述
组件依赖的名称和版本。
软件包用于安装依赖的软件包。
位置对于系统依赖,这里列出了扫描的镜像。对于应用程序依赖,这里显示了项目中声明依赖的特定于软件包的锁定文件的链接。它还显示了依赖的直接依赖者,如果有,并且如果支持。
许可证(仅限项目)链接到依赖的软件许可证。包含检测到依赖中的漏洞数量的警告徽章。
项目(仅限群组)链接到拥有该依赖的项目。如果多个项目拥有相同的依赖,则会显示这些项目的总数。要转到拥有此依赖的项目,请选择 项目 数字,然后搜索并选择其名称。项目搜索功能仅支持群组中层级最多 600 次出现的群组。

Dependency list

筛选依赖列表#

History
    • 在极狐GitLab 16.7 中引入了群组的依赖筛选,使用名为 group_level_dependencies_filtering功能标志。默认禁用。
    • 群组的依赖筛选在极狐GitLab 16.10 中 GA。删除了功能标志 group_level_dependencies_filtering
    • 在极狐GitLab 17.9 中引入了项目的依赖筛选,使用名为 project_component_filter功能标志。默认启用。
    • 在极狐GitLab 17.10 中 GA。删除了功能标志 project_component_filter

您可以筛选依赖列表以仅关注一部分依赖。依赖列表可用于群组和项目。

对于群组,您可以按以下条件筛选:

  • 项目
  • 许可证
  • 组件

对于项目,您可以按以下条件筛选:

  • 组件

要筛选依赖列表:

  1. 在左侧边栏顶部,选择 搜索 极狐GitLab () 找到您的群组或项目。
  2. 选择 安全 > 依赖列表
  3. 选择筛选栏。
  4. 选择一个筛选器,然后从下拉列表中选择一个或多个条件。 要关闭下拉列表,请选择其外部。要添加更多筛选器,请重复此步骤。
  5. 要应用选定的筛选器,请按 Enter

依赖列表仅显示与您的筛选器匹配的依赖。

漏洞#

History
    • 在极狐GitLab 17.9 中引入,使用名为 update_sbom_occurrences_vulnerabilities_on_cvs功能标志。默认禁用。
    • 在极狐GitLab 17.9 中在 JihuLab.com 和私有化部署上启用。
与[基于 SBOM 的依赖扫描](../dependency_scanning/dependency_scanning_sbom/_index.md)相关的漏洞的支持可用性由功能 FLAG 控制。 欲了解更多信息,请参见历史记录。

如果依赖有已知漏洞,请选择依赖名称旁边的箭头或指示存在多少已知漏洞的徽章来查看它们。对于每个漏洞,其严重性和描述会显示在下面。要查看漏洞的更多详细信息,请选择漏洞的描述。将打开漏洞的详细信息页面。

依赖路径#

History
    • CycloneDX SBOM 中的依赖路径信息在极狐GitLab 16.9 中引入,使用名为 project_level_sbom_occurrences功能标志。默认禁用。
    • CycloneDX SBOM 中的依赖路径信息在极狐GitLab 17.0 中在 JihuLab.com 和私有化部署上启用。
    • 在极狐GitLab 17.4 中 GA。删除了功能标志 project_level_sbom_occurrences

如果组件是瞬态的并属于任何支持的软件包管理器,则依赖列表显示列出的组件的直接依赖者。

仅对有漏洞的依赖显示依赖路径。

Dependency path

支持以下软件包管理器的依赖路径:

  • Conan
  • NuGet
  • sbt
  • Yarn 1.x

仅在使用 dependency-scanning 组件时支持以下软件包管理器的依赖路径:

  • Gradle
  • Maven
  • NPM
  • Pipenv
  • pip-tools
  • pnpm
  • Poetry

许可证#

如果配置了 依赖扫描 CI 作业,发现的许可证将在此页面上显示。

下载依赖列表#

您可以下载完整的依赖列表及其详细信息,格式为 JSON、CSV 或 CycloneDX。依赖列表仅显示在默认分支上运行的最后一个成功流水线的结果。

要下载依赖列表:

  1. 在左侧边栏上,选择 搜索或转到 并找到您的项目或群组。
  2. 选择 安全 > 依赖列表
  3. 选择 导出

故障排除#

许可证显示为 'unknown'#

特定依赖的许可证可能因几个可能的原因显示为 unknown。本节描述如何确定特定依赖的许可证是否由于已知原因显示为 unknown

上游许可证为 'unknown'#

检查上游指定的依赖许可证:

  • 对于 C/C++ 软件包,请检查 Conancenter。
  • 对于 npm 软件包,请检查 npmjs.com。
  • 对于 Python 软件包,请检查 PyPI。
  • 对于 NuGet 软件包,请检查 Nuget。
  • 对于 Go 软件包,请检查 pkg.go.dev。

如果许可证在上游显示为 unknown,则预期 极狐GitLab 将显示该依赖的 许可证 也为 unknown

许可证包含 SPDX 许可证表达式#

SPDX 许可证表达式不支持。具有 SPDX 许可证表达式的依赖显示为 unknown许可证。SPDX 许可证表达式的示例是 (MIT OR CC0-1.0)

软件包版本不在软件包元数据数据库中#

依赖软件包的特定版本必须存在于软件包元数据数据库中。如果没有,该依赖的 许可证 显示为 unknown

软件包名称包含特殊字符#

如果依赖软件包的名称包含连字符 (-),则 许可证 可能显示为 unknown。这可能发生在软件包手动添加到 requirements.txt 或使用 pip-compile 时。因为 极狐GitLab 在获取有关依赖的信息时没有根据 PEP 503 中的规范化名称的指导来规范化 Python 软件包名称。