漏洞扫描

Container Analysis 为容器提供漏洞扫描和元数据存储服务。本页面介绍了漏洞扫描。

漏洞扫描

软件漏洞可能会导致意外的系统故障或被故意利用。

Container Analysis 会对 Container Registry 中的映像执行漏洞扫描,并监控漏洞信息以使其保持最新。此过程包括两个主要任务:扫描和持续分析。

完成映像扫描后,生成的漏洞结果是该映像的漏洞发生实例的集合。

扫描

Container Analysis 会在有新映像上传到 Container Registry 时扫描这些映像。此扫描可提取有关容器中系统软件包的信息。

Container Analysis 只会根据映像的摘要扫描映像一次。这意味着,添加或修改标记不会触发新的扫描,只会更改映像的内容。

Container Analysis 只会检测公开监控的软件包是否存在安全漏洞。

持续分析

Container Analysis 会为在您上传映像时发现的漏洞创建漏洞发生实例。初始扫描后,它会持续监控 Container Registry 中已扫描映像的元数据,以发现新漏洞。

Container Analysis 从漏洞来源接收新的和更新后的漏洞信息时,会更新已扫描映像的元数据,使其保持最新状态,为新的备注创建新漏洞发生实例并删除已失效的漏洞发生实例。

漏洞来源

Container Analysis API 支持在 Linux 发行版中执行软件包漏洞扫描,并会从以下来源获取 CVE 数据:

支持的版本

Container Analysis 支持以下操作系统版本的漏洞扫描:

  • Debian GNU/Linux - 版本:9、10
  • Ubuntu - 版本:12.04、12.10、13.04、14.04、14.10、15.04、15.10、16.05、16.10、17.04、17.10、18.04、18.10、20.04
  • Alpine Linux - 版本:3.3、3.4、3.5、3.6、3.7、3.8、3.9、3.10、3.11、3.12
  • CentOS - 版本:6、7、8 和次要版本
  • Redhat - 版本:6、7、8 和次要版本

漏洞严重级别

Container Analysis 使用以下严重级别:

  • 严重
  • 轻微

严重级别是反映漏洞被利用可能性、范围、影响和成熟度等因素的定性标签。例如,如果某个漏洞允许远程用户在不进行身份验证或用户交互的情况下轻松访问系统并运行任意代码,则该漏洞将归类为“严重”。

每种漏洞都有两种关联的严重程度指标:

  • 有效严重程度 - 严重级别由 Linux 发行版指定。 如果特定于发行版的严重级别不可用,则 Container Analysis 将使用备注提供商指定的严重级别。

  • CVSS 评分 - 通用漏洞评分系统评分和关联的严重级别。如需详细了解 CVSS 评分如何计算得出,请参阅 CVSS 3.0 规范

对于给定的漏洞,由计算得出的 CVSS 评分表示的严重程度可能与有效严重程度不一致。指定严重级别的 Linux 发行版使用自己的标准来评估漏洞对其发行版的具体影响。

默认 Container Analysis 服务帐号

Container Analysis 使用服务帐号分析您的容器映像。服务帐号是一个特殊的 Google 帐号,可代表您收集映像的相关信息。Container Analysis 服务帐号的电子邮件地址为 service-[PROJECT_NUMBER]@container-analysis.iam.gserviceaccount.com。该帐号使用 Container Analysis Service Agent 角色。

如果您启用漏洞扫描功能,则此功能使用的 Container Scanning API 也会使用一个特殊的 Google 帐号,该服务帐号的电子邮件地址为 service-[PROJECT_NUMBER]@gcp-sa-containerscanning.iam.gserviceaccount.com。该帐号使用 Container Scanner Service Agent 角色。

您可以通过 Cloud Console 的 IAM 菜单查看项目的服务帐号。

Container Analysis 界面

在 Cloud Console 中,您可以查看 Container Registry 中容器的映像漏洞和映像元数据。

您可以使用 gcloud 工具查看漏洞和映像元数据

您还可以使用 Container Analysis REST API 执行上述任何操作。与其他 Cloud Platform API 一样,您必须使用 OAuth2 验证访问权限。通过身份验证后,才可以使用该 API 创建新的备注和发生实例、查看漏洞发生实例等。

Container Analysis API 支持 gRPC 和 REST/JSON。您可以使用客户端库或使用适用于 REST/JSON 的 cURL 来调用 API。

控制易受攻击映像的部署

根据 Container Analysis 提供的漏洞信息,您可以在 Cloud Build 流水线中使用 Binary Authorization 创建漏洞许可名单。如果漏洞违反了许可名单中的政策,则构建将失败。

您还可以将 Container Analysis 与 Binary Authorization 集成以创建证明,从而防止存在已知安全问题的容器映像在您的部署环境中运行。

后续步骤