使用 Container Threat Detection

>

在 Security Command Center 信息中心中审核 Container Threat Detection 的检测结果,并查看 Container Threat Detection 的检测结果示例。Container Threat Detection 是 Security Command Center 付费级的内置服务。要查看 Container Threat Detection 的检测结果,您必须在 Security Command Center 服务设置中启用该服务。

以下视频介绍了设置 Container Threat Detection 的步骤,并提供了有关如何使用信息中心的信息。如需详细了解如何查看和管理容器威胁检测发现结果,请参阅本页面的查看发现结果

使用受支持的 GKE 版本

如需检测容器的潜在威胁,请确保集群位于受支持的 Google Kubernetes Engine (GKE) 版本上。Container Threat Detection 目前支持稳定、常规和快速频道上的以下 GKE 版本:

  • >= 1.15.9-gke.12
  • >= 1.16.5-gke.2
  • >= 1.17

启用 Container Threat Detection

如需使用支持的 GKE 版本并检测容器的威胁,请执行以下操作:

  1. 完成指南中的升级集群步骤。
  2. 确保为集群启用了 Container Threat Detection:
    1. 转到 Cloud Console 中的 Security Command Center 设置页面。
      转到“设置”页面
    2. 转到高级设置并展开菜单。您会看到您组织的资源列表。
    3. Container Threat Detection 列下,为您已升级的每个集群选择默认启用。如果文件夹中的子资源设置为继承,则系统会自动为子资源启用该服务。手动为未设置为继承的子资源启用 Container Threat Detection。
    4. 此时会显示一个对话框,用于确认您的选择。阅读该消息,然后点击是的,我理解

如需了解详情,请参阅 配置 Security Command Center

检查 GKE 集群配置

您的 GKE 集群配置或 Identity and Access Management (IAM) 角色限制不得阻止创建或使用运行 Container Threat Detection 所需的任何对象。本部分介绍了如何配置基本的 GKE 组件来使用 Container Threat Detection。

Kubernetes 对象

初始配置后,Container Threat Detection 会在已启用的集群中创建多个 GKE 对象。这些对象用于监控容器映像、管理特权容器和 pod,以及评估状态以生成检测结果。下表列出了对象、属性和基本函数。

对象 名称* 属性 功能
ClusterRole pod-reader 授予对 pod 的 getwatchlist 权限 在启用 PodSecurityPolicy 时保留功能
ClusterRoleBinding container-watcher-pod-reader

gce:podsecuritypolicy:container-watcher

container-watcher-pod-reader ServiceAccount 授予 pod-readergce:podsecuritypolicy:privileged 角色
RoleBinding gce:podsecuritypolicy:container-watcher container-watcher-pod-reader ServiceAccount 授予 gce:podsecuritypolicy:privileged 角色
DaemonSet container-watcher 已授权 与 Linux 安全模块和容器引擎的互动
以读写权限装载 /host/ 与 Linux 安全模块的通信
以只读权限装载 /etc/container-watcher/secrets 以访问 container-watcher-token 身份验证
使用 hostNetwork 生成检测结果
映像
gcr.io/gke-release/watcher-daemonset
启用和升级
后端
containerthreatdetection-region.googleapis.com:443
生成检测结果
ServiceAccount container-watcher-pod-reader 启用、升级和停用
密文 container-watcher-token 身份验证

* 所有对象均位于 kube-system 命名空间中,container-watcher-pod-readergce:podsecuritypolicy:container-watcher 除外。

PodSecurityPolicy 和准入控制器

PodSecurityPolicy 是您设置的一种准入控制器资源,用于验证有关在集群上创建和更新 Pod 的请求。Container Threat Detection 与在使用 enable-pod-security-policy 标志创建或更新集群时自动应用的 PodSecurityPolicy 兼容。具体来说,当 PodSecurityPolicy 启用时,Container Threat Detection 就会使用 gce.privileged 政策。

如果您使用自定义 PodSecurityPolicy 或其他准入控制器,则它们不得阻止创建或使用运行 Container Threat Detection 所需的对象。例如,基于网络钩子的准入控制器会拒绝或替换特权部署,这可能导致 Container Threat Detection 无法正常运行。

如需了解详情,请参阅使用 PodSecurityPolicy

必需的 IAM 权限

在新手入门期间创建的 Container Threat Detection 服务帐号需要 roles/containerthreatdetection.serviceAgent IAM 角色来监控集群。从服务帐号中移除此默认角色可能会阻止 Container Threat Detection 正常运行。

Container Threat Detection API

Container Threat Detection 会自动在启动期间启用 containerthreatdetection API,以允许查找工具。您不应直接与这一必需的 API 互动。停用此 API 会破坏 Container Threat Detection 生成新发现结果的能力。如果您不想再收到容器威胁检测结果,请在 Security Command Center 服务设置中停用 Container Threat Detection。

审核检测结果

当 Container Threat Detection 生成检测结果后,您可以在 Security Command Center 中查看它们。如果您已配置 Security Command Center 接收器以写入 Google Cloud 的运维套件,则还可以在 Cloud Logging 中查看检测结果。要生成检测结果并验证您的配置,您可以有意触发检测器并测试 Container Threat Detection

Container Threat Detection 具有以下延迟时间:

  • 新初始配置的组织的启用延迟时间(3.5 小时)。
  • 新创建的集群的启用延迟时间(分钟)。
  • 已启用的集群中的威胁检测延迟时间(分钟)。

在 Security Command Center 中审核检测结果

要在 Security Command Center 中审核 Container Threat Detection 的检测结果,请执行以下操作:

  1. 转到 Google Cloud Console 中的 Security Command Center 检测结果标签页。
    转到“检测结果”标签页
  2. 查看方式旁边,点击来源类型
  3. 来源类型列表中,选择 Container Threat Detection
  4. 如需查看特定检测结果的详细信息,请点击 category 下的检测结果名称。“检测结果详情”面板展开即可显示以下信息:
    • 检测结果类型,例如“已执行添加的二进制文件”
    • 来源:“Container Threat Detection”
    • 事件时间:检测到结果的时间
    • 检测结果 ID:检测结果的唯一标识符
    • 资源名称:受影响的 GKE 集群
    • 带有更多信息的检测结果属性:
      • 容器名称
      • 容器创建时间
      • 容器映像 URI 和 ID
      • 基于检测器的其他字段。例如,逆向 shell 检测结果包括远程主机的 IP 地址。

在 Cloud Logging 中查看检测结果

如需在 Cloud Logging 中查看 Container Threat Detection 的检测结果,请执行以下操作:

  1. 转到 Cloud Console 中的 Cloud Logging 的“日志查看器”页面。
    转到“日志查看器”页面
  2. 日志查看器页面上,点击选择,然后点击您存储 Container Threat Detection 日志的项目。
  3. 在资源下拉列表中,选择 Cloud Threat Detector
    • 要查看所有检测器的检测结果,请选择 all detector_name
    • 要查看特定检测器的检测结果,请选择其名称。

示例发现结果

请参阅 Container Threat Detection 检测器以查看检测结果示例。

后续步骤