评估 Cloud Run 的漏洞

Security Command Center 中的 Vulnerability Assessment for Google Cloud 可让您持续检测正在运行的 Cloud Run 工作负载中的软件漏洞和泄露的 Secret。

准备工作

如需使用针对 Google Cloud的漏洞评估,您必须满足以下要求:

  • 启用 Container Scanning API (containerscanning.googleapis.com),以便在托管 Artifact Registry 代码库的项目中激活 Artifact Analysis 容器扫描。启用容器扫描 API 也会启用 Artifact Analysis API (containeranalysis.googleapis.com)。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。

    启用 API

    为 Google Cloud 启用漏洞评估不会在映像代码库中激活 Artifact Analysis 容器扫描。如果您未在托管容器映像的项目中启用 Container Scanning API,则 Vulnerability Assessment for Google Cloud 无法为您的 Cloud Run 资源生成漏洞或泄露的密钥发现结果。

  • 为您的组织或项目激活 Security Command Center。高级层级和企业层级默认启用 Google Cloud 漏洞评估。在标准层级,您必须在组织、文件夹或项目级手动启用 Google Cloud 漏洞评估。

  • 将容器映像存储在与 Cloud Run 工作负载位于同一 Google Cloud 组织内的 Artifact Registry 代码库中。系统不会扫描来自外部组织的映像,但经过验证的公开 Google 容器镜像除外。

Google Cloud 漏洞评估的工作原理

如需评估 Cloud Run 工作负载中的漏洞和泄露的 Secret,需要结合使用以下两项功能:

  • Artifact Analysis 容器扫描:扫描存储在 Artifact Registry 中的容器映像,以查找已知的常见漏洞和风险 (CVE) 以及泄露的密钥,并将扫描结果记录为 Artifact Analysis 中的发生实例。
  • Vulnerability Assessment for Google Cloud:将 Artifact Analysis 中的漏洞和 Secret 发生实例与活跃的 Cloud Run 资源相关联。

静态容器映像扫描会报告 Artifact Registry 中容器映像的发现结果,而 Vulnerability Assessment for Google Cloud 会将发现结果直接附加到正在运行的 Cloud Run 工作负载。 Google Cloud 漏洞评估会执行以下操作:

  • 关联运行时元数据:将容器映像摘要与活跃的 Cloud Run 服务、作业或工作器池进行匹配。
  • 识别修订版本和边车:识别正在传送流量或运行实例的活跃修订版本,以及包含漏洞或 Secret 的容器或多容器边车。
  • 管理发现结果生命周期:只要有活跃修订版本或已执行作业引用易受攻击的映像,就会保留发现结果 ACTIVE。当您部署已修补的修订版本并将流量或实例从易受攻击的修订版本转移时,发现结果会自动转换为 INACTIVE。

支持的资源

Google Cloud 漏洞评估可发现以下 Cloud Run 资源中的漏洞和泄露的 Secret:

  • Cloud Run 服务 (run.googleapis.com/Service):监控处理流量的活跃修订版本。发现结果会列出运行易受攻击映像的多达五个活跃修订版本的完整资源名称。
  • Cloud Run 作业 (run.googleapis.com/Job):根据过去 14 天内成功启动的最新执行中使用的容器映像来评估批量作业。系统不会扫描从未执行过或在初始化期间失败的作业。
  • Cloud Run 工作器池 (run.googleapis.com/WorkerPool):监控运行实例的活跃修订版本。发现结果会列出运行易受攻击映像的所有活跃修订版本的完整资源名称。

限制

如果 Cloud Run 服务或工作器池运行超过 30 天,且未执行映像拉取、新修订版本部署或实例冷启动,Artifact Analysis 会暂停扫描新 CVE,直到发生新的拉取或部署。现有 ACTIVE 发现结果仍为 ACTIVE,并受 Security Command Center 数据保留政策的约束。

只有当 Artifact Analysis 扫描或重新分析映像时,才会显示发现结果。部署之前推送到 Artifact Registry 的映像不会触发扫描,因此该工作负载的发现结果会在下次重新分析后(大约 4 小时内)显示。

查看漏洞和凭据发现结果

如需在Google Cloud 控制台中查看 Cloud Run 的漏洞和 Secret 发现结果,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Security Command Center 中的发现结果页面:

    转至“发现结果”

  2. 在项目选择器中,选择您的组织、文件夹或项目。

  3. 在快速过滤条件面板的资源类型部分中,选择 run.googleapis.com/Service、run.googleapis.com/Job 或 run.googleapis.com/WorkerPool。

  4. 点击某个发现结果可查看其详细信息,包括受影响的容器名称、映像摘要和活跃修订版本 URI。

修复漏洞和凭据发现结果

如需修复漏洞或 Secret 发现结果,请按照以下步骤操作:

  1. 将应用依赖项或基础映像更新为修补了漏洞的版本,或从容器映像文件系统、Dockerfile 或源代码中移除泄露的密钥。
  2. 构建新容器映像并将其推送到 Artifact Registry。
  3. 部署服务的新修订版本,或更新作业或工作器池。
  4. 如果您使用流量分配或实例分配,请将所有流量路由到已修补的修订版本,或将所有实例分配给已修补的修订版本。在旧修订版本不再处理流量或运行实例后, Google Cloud 漏洞评估会将发现结果标记为INACTIVE。

后续步骤