Cloud Run 威胁检测概览

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

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

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

支持的资源

Cloud Run Threat Detection 会监控以下资源:

支持的执行环境

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

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

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

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

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

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

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

Cloud Run Threat Detection 运行时威胁检测的工作方式

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

  1. Cloud Run Threat Detection 使用 watcher 进程在 Cloud Run 工作负载的整个运行时长内收集容器和事件信息。watcher 进程最多可能需要 20 秒才能启动。
  2. Cloud Run Threat Detection 会分析收集的事件信息,以确定某个事件是否预示着突发事件。它使用 NLP 分析 Bash 和 Python 脚本中的恶意代码。

    • 如果 Cloud Run Threat Detection 识别突发事件,则会在 Security Command Center 中将该突发事件报告为发现结果。

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

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

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

已知问题

  • 超过 7 天的 Cloud Run 服务或作业实例会停止发送遥测信息。
  • 如果 watcher 进程在 Cloud Run 服务或作业的正在进行运行的实例中过早停止,则 watcher 进程不会重启。 实例停止向 Cloud Run Threat Detection 发送遥测信息。 实例日志中没有 Cloud Run Threat Detection 日志。没有任何指示器表明 watcher 进程已停止。

检测器

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

运行时检测器

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 Threat Detection 在正在运行的进程的参数列表中观察到一个恶意网址。

检测器会根据 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 token 遭泄露时,这可能是攻击者获取权限后进行的攻击行为。默认情况下,发现结果会被归类为严重程度。
如需了解已弃用和已关闭的规则,请参阅弃用

后续步骤