Cloud Run 威胁检测概览

Cloud Run 威胁检测是 Security Command Center 的一项内置服务,可持续监控受支持的 Cloud Run 资源的状态,以检测最常见的运行时攻击。如果 Cloud Run 威胁检测检测到攻击,它会在 Security Command Center 中近乎实时地生成发现结果。

Cloud Run Threat Detection 运行时检测器会监控 Cloud Run 资源,以查找可疑的二进制文件和库,并使用自然语言处理 (NLP) 来检测恶意 Bash 和 Python 代码。

此外,您还可以通过 Event Threat Detection 使用控制平面检测器。这些检测器会监控贵组织或项目的 Cloud Logging 流,以检测 Cloud Run 资源控制平面可能遭到的攻击。

支持的资源

Cloud Run 威胁检测功能会监控以下资源:

支持的执行环境

运行时检测器和控制平面检测器支持的执行环境不同。

运行时检测器支持的执行环境

Cloud Run 威胁检测运行时检测器仅支持在第二代执行环境中运行的 Cloud Run 资源。在启用 Cloud Run 威胁检测之前,请考虑以下事项:

  • 启用 Cloud Run 威胁检测后,您将无法创建在第一代执行环境中运行的 Cloud Run 服务或服务修订版本。Cloud Run 服务必须使用第二代执行环境。我们建议您先在第二代执行环境中测试工作负载,然后再启用 Cloud Run 威胁检测。

  • 如需为服务启用运行时威胁检测,请部署修订版本,将服务的执行环境设置为第二代或默认执行环境。

控制平面检测器支持的执行环境

控制平面检测器同时支持第一代和第二代执行环境。

Cloud Run Threat Detection 运行时威胁检测的工作原理

启用 Cloud Run 威胁检测后,该功能会从受支持的 Cloud Run 资源收集遥测数据,以分析可能表明运行时攻击的进程、脚本和库。以下是检测到事件时的执行路径:

  1. Cloud Run 威胁检测使用监视器进程在 Cloud Run 工作负载的整个生命周期内收集容器和事件信息。监视器进程最长可能需要 20 秒才能启动。
  2. Cloud Run Threat Detection 会分析收集的事件信息,以确定事件是否表示突发事件。它使用 NLP 分析 Bash 和 Python 脚本是否包含恶意代码。

    • 如果 Cloud Run 威胁检测识别到突发事件,则会在 Security Command Center 中将突发事件报告为发现结果。

    • 如果 Cloud Run Threat Detection 无法识别突发事件,则不会存储任何信息。

    • 收集的所有数据都是临时的,不会永久存储。

如需了解如何在 Google Cloud 控制台中查看 Cloud Run Threat Detection 发现结果,请参阅查看发现结果

已知问题

  • 您的 Cloud Run 服务或作业的实例在超过 7 天后会停止发送遥测信息。
  • 如果监视器进程在 Cloud Run 服务或作业的运行实例中过早停止,则监视器进程不会重启。实例会停止向 Cloud Run 威胁检测发送遥测信息。实例日志中没有 Cloud Run Threat Detection 日志。没有指示监视器进程已停止的指标。

检测器

本部分列出了可用的运行时和控制平面检测器。 随着新的云威胁不断出现,我们会定期添加新的检测程序。

运行时检测器

Cloud Run Threat Detection 包括以下运行时检测器:

显示名称 API 名称 说明
执行:已执行添加的恶意二进制文件 CLOUD_RUN_ADDED_MALICIOUS_BINARY_EXECUTED

执行了满足以下条件的二进制文件:

  • 根据威胁情报被识别为恶意
  • 不属于原始容器映像

如果添加的恶意二进制文件被执行,则很可能表示攻击者控制了工作负载,并且正在执行恶意软件。

执行:添加了“已加载恶意库” CLOUD_RUN_ADDED_MALICIOUS_LIBRARY_LOADED

加载了满足以下条件的库:

  • 根据威胁情报被识别为恶意
  • 不属于原始容器映像

如果添加的恶意库已加载,则很可能表示攻击者控制了工作负载并正在执行恶意软件。

执行:已执行内置恶意二进制文件 CLOUD_RUN_BUILT_IN_MALICIOUS_BINARY_EXECUTED

执行了满足以下条件的二进制文件:

  • 根据威胁情报被识别为恶意
  • 包含在原始容器映像中

如果执行了内置的恶意二进制文件,则表示攻击者正在部署恶意容器。攻击者可能已控制合法映像仓库或容器构建流水线,并向容器映像注入了恶意二进制文件。

执行:容器逃逸 CLOUD_RUN_CONTAINER_ESCAPE

容器中执行了一个进程,该进程尝试使用已知的逃逸技术或二进制文件来突破容器的隔离。此类攻击可让攻击者访问主机系统。这些进程会被识别为潜在威胁,

如果检测到容器逃逸尝试,则可能表示攻击者正在利用漏洞逃出容器。因此,攻击者可能会未经授权访问主机系统或更广泛的基础架构,从而破坏整个环境。

执行:Kubernetes 攻击工具执行 CLOUD_RUN_KUBERNETES_ATTACK_TOOL_EXECUTION

在环境中执行了 Kubernetes 专用攻击工具,这可能表明攻击者以 Kubernetes 集群组件为目标。这些攻击工具会被识别为潜在威胁,

如果在 Kubernetes 环境中执行攻击工具,则可能表明攻击者已获得对集群的访问权限,并正在使用该工具利用 Kubernetes 特有的漏洞或配置。

执行:本地侦察工具执行 CLOUD_RUN_LOCAL_RECONNAISSANCE_TOOL_EXECUTION

执行了通常与容器或环境无关的本地侦察工具,这表明攻击者试图收集内部系统信息。这些侦察工具会根据情报数据被识别为潜在威胁。

如果执行了侦察工具,则表明攻击者可能正在尝试绘制基础架构图、识别漏洞或收集系统配置数据,以便规划后续步骤。

执行:执行了恶意 Python 代码(预览版 CLOUD_RUN_MALICIOUS_PYTHON_EXECUTED

机器学习模型将指定的 Python 代码识别为恶意代码。攻击者可以使用 Python 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。

检测器使用 NLP 技术来评估已执行的 Python 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新颖的 Python 代码。

执行:已执行经过修改的恶意二进制文件 CLOUD_RUN_MODIFIED_MALICIOUS_BINARY_EXECUTED

执行了满足以下条件的二进制文件:

  • 根据威胁情报被识别为恶意
  • 包含在原始容器映像中
  • 在运行时从原始容器映像修改而来

如果系统执行了经过修改的恶意二进制文件,则很可能是攻击者控制了工作负载,并且正在执行恶意软件。

执行:加载了经过修改的恶意库 CLOUD_RUN_MODIFIED_MALICIOUS_LIBRARY_LOADED

加载了满足以下条件的库:

  • 根据威胁情报被识别为恶意
  • 包含在原始容器映像中
  • 在运行时从原始容器映像修改而来

如果加载了经过修改的恶意库,则很可能表明攻击者控制了工作负载,并且正在执行恶意软件。

已执行恶意脚本 CLOUD_RUN_MALICIOUS_SCRIPT_EXECUTED

机器学习模型将指定的 Bash 代码识别为恶意代码。攻击者可以利用 Bash 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。

检测器使用 NLP 技术来评估已执行的 Bash 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新型的恶意 Bash 代码。

观察到恶意网址 CLOUD_RUN_MALICIOUS_URL_OBSERVED

Cloud Run 威胁检测在正在运行的进程的参数列表中观察到恶意网址。

检测器会根据 Google 安全浏览服务维护的不安全 Web 资源列表,对在正在运行的进程的参数列表中观察到的网址进行检查。如果网址被错误地分类为钓鱼式攻击网站或恶意软件,请在 报告错误数据中报告。

反向 shell CLOUD_RUN_REVERSE_SHELL

通过流式传输重定向到远程连接的套接字的过程。检测器会查找绑定到远程套接字的 stdin

借助反向 shell,攻击者可以通过已破解的工作负载与攻击者控制的机器进行通信。然后,攻击者可以命令和控制工作负载,例如将其作为僵尸网络的一部分。

意外的 Shell Shell CLOUD_RUN_UNEXPECTED_CHILD_SHELL

通常不调用 shell 的进程生成了 shell 进程。

检测器监控所有进程执行。调用 shell 时,如果父级进程通常不会调用 shell,则检测器会生成发现结果。

控制平面检测器

Event Threat Detection 提供以下控制平面检测器。这些检测器默认处于启用状态。您可以按照与管理其他 Event Threat Detection 检测器相同的方式管理这些检测器。如需了解详情,请参阅使用 Event Threat Detection

显示名称 API 名称 日志源类型 说明
影响:加密货币挖矿命令(预览版 CLOUD_RUN_JOBS_CRYPTOMINING_COMMANDS Cloud Audit Logs
IAM 系统事件审核日志
在执行期间,特定的加密货币挖矿命令附加到 Cloud Run 作业。
执行:加密货币挖矿 Docker 映像(预览版 CLOUD_RUN_CRYPTOMINING_DOCKER_IMAGES Cloud Audit Logs
IAM 系统事件审核日志
特定已知有缺陷的 Docker 映像已附加到新的或现有的 Cloud Run 服务或作业。
提升权限:默认的 Compute Engine 服务账号 SetIAMPolicy(预览版 CLOUD_RUN_SERVICES_SET_IAM_POLICY Cloud Audit Logs
管理员活动日志
默认的 Compute Engine 服务账号用于为 Cloud Run 服务设置 IAM 政策。 这是在来自无服务器服务的 Compute Engine 令牌遭到入侵时可能采取的利用后操作。
如需了解已弃用和已关闭的规则,请参阅弃用

后续步骤