依赖扫描与容器扫描的比较

极狐GitLab 提供依赖扫描和容器扫描,确保覆盖所有依赖类型。为了尽可能多地覆盖您的风险区域,我们鼓励您使用我们所有的安全扫描器:

  • 依赖项扫描分析您的项目,并告诉您哪些软件依赖项(包括上游依赖项)已包含在您的项目中,以及依赖项包含哪些已知风险。依赖扫描根据项目的语言和包管理器修改其行为,它通常会查找锁定文件,然后执行构建来获取上游依赖信息。在容器的情况下,依赖扫描使用兼容的 manifest 并仅报告这些声明的软件依赖项(以及作为子依赖项安装的)。依赖项扫描无法检测预先捆绑到容器基础镜像中的软件依赖项,要识别预先捆绑的依赖项,请使用 CS_DISABLE_LANGUAGE_VULNERABILITY_SCAN 变量启用容器扫描中的语言扫描。
  • 容器扫描分析您的容器,并告诉您操作系统 (OS) 包中的已知风险。如果您启用并使用 CS_DISABLE_LANGUAGE_VULNERABILITY_SCAN 变量,可以将其配置同时报告软件和语言依赖。打开此变量可能会导致一些重复的结果,因为尚未对容器扫描和依赖项扫描之间的结果进行重复数据删除。

下表总结了每个扫描工具可以检测到的依赖类型:

功能 依赖扫描 容器扫描
识别引入依赖的 manifest、锁定文件或静态文件
开发依赖
提交到仓库的锁定文件中的依赖项 1
Go 构建的二进制文件 2 3
操作系统安装的动态关联的特定于语言的依赖项 3
操作系统依赖
安装在操作系统上的特定于语言的依赖项(不是由您的项目构建的)
  1. 锁定文件必须存在于要检测的镜像中。
  2. 必须启用报告特定语言漏洞,且二进制文件必须存在于要检测的镜像中。