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 工作负载的整个运行时长内收集容器和事件信息。
  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 发现结果,请参阅查看发现结果

已知问题

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

检测器

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

运行时检测器

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

显示名称 API 名称 说明
命令和控制:检测到信息隐写工具 CLOUD_RUN_STEGANOGRAPHY_TOOL_DETECTED

执行了一个被识别为类似 Unix 环境中常见的信息隐写工具的程序,表明可能有人试图隐藏通信或数据传输。

攻击者可能会利用隐写术将恶意命令和控制 (C2) 指令或窃取的数据嵌入看似良性的数字文件中,以逃避标准的安全监控和检测。识别此类工具的使用情况对于发现隐藏的恶意活动至关重要。

凭证访问权限:查找 Google Cloud 凭证 CLOUD_RUN_FIND_GCP_CREDENTIALS

执行了命令,以在容器环境中搜索 Google Cloud 私钥、密码或其他敏感凭证。

攻击者可能会使用窃取的 Google Cloud 凭证来非法访问目标 Google Cloud 环境中的敏感数据或资源。

凭证访问权限:GPG 密钥侦察 CLOUD_RUN_GPG_KEY_RECONNAISSANCE

执行了用于搜索 GPG 安全密钥的命令。

攻击者可能会使用窃取的 GPG 安全密钥来获取对加密通信或文件的未经授权的访问权限。

凭证访问权限:搜索私钥或密码 CLOUD_RUN_SEARCH_PRIVATE_KEYS_OR_PASSWORDS

执行了在容器环境中搜索私钥、密码或其他敏感凭证的命令,表明可能有人试图收集身份验证数据。

攻击者通常会搜索凭证文件,以便未经授权访问系统、提升特权或在环境中横向移动。检测此类活动对于防止安全违规至关重要。

防护规避:Base64 ELF 文件命令行 CLOUD_RUN_BASE64_ELF_FILE_CMDLINE

执行了一个进程,其中包含一个 ELF(可执行和可链接格式)文件的参数。

如果检测到执行经过编码的 ELF 文件,则表示攻击者正尝试对二进制数据进行编码,以便将其传输到仅限 ASCII 的命令行。攻击者可以使用此技术来逃避检测并运行嵌入 ELF 文件中的恶意代码。

防护规避:已执行 Base64 编码的 Python 脚本 CLOUD_RUN_BASE64_ENCODED_PYTHON_SCRIPT_EXECUTED

执行了一个进程,其中包含一个以 base64 编码的 Python 脚本的参数。

如果检测到执行经过编码的 Python 脚本,则表示攻击者正尝试对二进制数据进行编码,以便将其传输到仅限 ASCII 的命令行。攻击者可以使用此技术来逃避检测并运行嵌入 Python 脚本中的恶意代码。

防护规避:执行 Base64 编码的 shell 脚本 CLOUD_RUN_BASE64_ENCODED_SHELL_SCRIPT_EXECUTED

执行了一个进程,其中包含一个以 base64 编码的 Shell 脚本的参数。

如果检测到执行经过编码的 Shell 脚本,则表示攻击者正试图将二进制数据编码,以便通过仅限 ASCII 的命令行进行传输。攻击者可以使用此技术来逃避检测并运行嵌入 Shell 脚本中的恶意代码。

防护规避:在容器中启动代码编译器工具 CLOUD_RUN_LAUNCH_CODE_COMPILER_TOOL_IN_CONTAINER

在容器环境中启动了一个进程,用于运行代码编译器工具,表明可能有人试图在隔离的上下文中构建或修改可执行代码。

攻击者可能会在容器中使用代码编译器来开发恶意载荷、将代码注入现有二进制文件中,或创建用于绕过安全控制的工具,同时在审查较少的环境中运行,以逃避主机系统上的检测。

执行:已执行添加的恶意二进制文件 CLOUD_RUN_ADDED_MALICIOUS_BINARY_EXECUTED

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

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

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

执行:加载了添加的恶意库 CLOUD_RUN_ADDED_MALICIOUS_LIBRARY_LOADED

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

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

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

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

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

  • 根据威胁情报标识为恶意
  • 添加在原始容器映像中

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

执行:容器逃逸 CLOUD_RUN_CONTAINER_ESCAPE

在容器内执行了一个进程,该进程试图使用已知的逃逸技术或二进制文件突破容器的隔离。此类攻击可让攻击者访问主机系统。根据情报数据,这些进程标识为潜在威胁。

如果检测到容器逃逸尝试,则可能表示攻击者正在利用漏洞来突破容器。 因此,攻击者可能会获得对主机系统或更广泛基础设施的未经授权的访问权限,从而入侵整个环境。

执行:/memfd 中的 Fileless Execution(无文件执行): CLOUD_RUN_FILELESS_EXECUTION_DETECTION_MEMFD

使用内存中的文件描述符执行了进程。

如果进程是从内存文件启动的,则可能表明攻击者正试图绕过其他检测方法来执行恶意代码。

执行: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

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

  • 根据威胁情报标识为恶意
  • 添加在原始容器映像中
  • 在运行时期间从原始容器映像修改

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

执行:容器中的 Netcat 远程代码执行 CLOUD_RUN_NETCAT_REMOTE_CODE_EXECUTION_IN_CONTAINER

在容器环境中执行了多功能网络工具 Netcat,这可能表明有人试图建立未经授权的远程访问或窃取数据。

在容器化环境中使用 Netcat 可能表明攻击者试图创建反向 shell、实现横向移动或执行任意命令,这可能会损害系统完整性。

执行:可能通过 CUPS 执行任意命令 (CVE-2024-47177) CLOUD_RUN_POSSIBLE_ARBITRARY_COMMAND_EXECUTION_THROUGH_CUPS

此规则可检测到 foomatic-rip 进程正在执行常见的 Shell 程序,这可能表明攻击者已利用 CVE-2024-47177。foomatic-rip 是 OpenPrinting CUPS 的一部分,后者是一种开源打印服务,该服务是许多 Linux 发行版的一部分。大多数容器映像都已停用或移除此打印服务。如果存在此检测结果,请评估这是否是预期行为,或者立即停用该服务。

执行:疑似检测到远程命令执行 CLOUD_RUN_POSSIBLE_REMOTE_COMMAND_EXECUTION_DETECTED

检测到一个进程通过网络套接字连接启动常见的 UNIX 命令,表明可能有人试图建立未经授权的远程命令执行功能。

攻击者经常利用模仿反向 shell 的技术来获得对遭入侵系统的交互式控制,从而能够远程执行任意命令并绕过标准网络安全措施(例如防火墙限制)。检测到通过套接字执行命令是恶意远程访问的有力证据。

执行:在禁止使用 HTTP 代理的环境中运行的程序 CLOUD_RUN_PROGRAM_RUN_WITH_DISALLOWED_HTTP_PROXY_ENV

检测到使用被禁止的 HTTP 代理环境变量执行了某个程序。这可能表明有人试图绕过安全控制、出于恶意目的重定向流量或通过未经授权的渠道窃取数据。

攻击者可能会配置被禁止的 HTTP 代理来拦截敏感信息、通过恶意服务器路由流量或建立隐蔽通信渠道。检测使用这些环境变量的程序的执行对于维护网络安全和防止数据泄露至关重要。

执行:检测到 Socat 反向 Shell CLOUD_RUN_SOCAT_REVERSE_SHELL_DETECTED

socat 命令已用于创建反向 Shell。

此规则通过重定向 stdin、stdout 和 stderr 文件描述符来检测执行 socat 以创建反向 Shell 的行为。这是攻击者用来获得对遭入侵系统的远程访问权限的常用技术。

执行:已加载可疑的 OpenSSL 共享对象 CLOUD_RUN_SUSPICIOUS_OPENSSL_SHARED_OBJECT_LOADED

已执行 OpenSSL 来加载自定义共享对象。

攻击者可能会加载自定义库并替换 OpenSSL 使用的现有库,以运行恶意代码。在生产环境中使用该库并不常见,应立即展开调查。

数据渗漏:在容器中启动远程文件复制工具 CLOUD_RUN_LAUNCH_REMOTE_FILE_COPY_TOOLS_IN_CONTAINER

在容器内检测到远程文件复制工具执行,表明可能存在数据渗漏、横向移动或恶意载荷部署。

攻击者通常会使用这些工具将敏感数据转移到容器外部,在网络内横向移动以入侵其他系统,或引入恶意软件以进行进一步的恶意活动。检测远程文件复制工具的使用情况对于防止数据泄露、未经授权的访问,以及容器系统甚至宿主系统遭进一步入侵至关重要。

影响:检测恶意命令行 CLOUD_RUN_DETECT_MALICIOUS_CMDLINES

检测到执行的命令包含已知可能具有破坏性的参数,例如试图删除关键系统文件或修改密码相关配置。

攻击者可能会发出恶意命令行,导致系统不稳定、通过删除必要文件来阻止恢复,或通过操纵用户凭证来获得未经授权的访问权限。检测这些特定命令模式对于防止系统遭受严重影响至关重要。

影响:从磁盘中移除批量数据 CLOUD_RUN_REMOVE_BULK_DATA_FROM_DISK

检测到一个进程在执行批量数据删除操作,这可能表明有人试图在容器环境中清除证据、干扰服务或执行数据擦除攻击。

攻击者可能会移除大量数据来掩盖其踪迹、破坏运营或为部署勒索软件做准备。检测此类活动有助于在关键数据丢失发生前识别潜在威胁。

影响:使用 Stratum 协议的可疑加密货币挖矿活动 CLOUD_RUN_SUSPICIOUS_CRYPTO_MINING_ACTIVITY_USING_STRATUM_PROTOCOL

检测到一个进程正在通过 Stratum 协议进行通信,该协议通常由加密货币挖矿软件使用。此活动表明容器环境中可能存在未经授权的挖矿操作。

攻击者通常会部署加密货币挖矿程序来利用系统资源获取经济利益,从而导致性能下降、运营成本增加,并带来潜在的安全风险。检测此类活动有助于缓解资源滥用和未经授权的访问。

已执行恶意脚本 CLOUD_RUN_MALICIOUS_SCRIPT_EXECUTED

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

检测器使用 NLP 技术来评估已执行的 Bash 代码的内容。由于该方法不是基于签名,因此检测器能够识别已知和新型的恶意 Bash 命令。

观察到恶意网址 CLOUD_RUN_MALICIOUS_URL_OBSERVED

Cloud Run Threat Detection 在正在运行的进程的参数列表中观察到一个恶意网址。

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

提升权限:滥用 sudo 以提升权限 (CVE-2019-14287) CLOUD_RUN_ABUSE_SUDO_FOR_PRIVILEGE_ESCALATION

使用试图提升权限的参数执行了 sudo

此检测会通知用户有人尝试利用 CVE-2019-14287,该漏洞允许通过滥用 sudo 命令来提升权限。低于 v1.8.28 的 sudo 版本存在一个漏洞,该漏洞可能会将非根用户的权限提升为根用户的权限。

提升权限:/dev/shm 中的无文件执行 CLOUD_RUN_FILELESS_EXECUTION_DETECTION_SHM

/dev/shm 内的路径执行了进程。

通过从 /dev/shm 执行文件,攻击者可以从该目录执行恶意代码以逃避安全工具的检测,从而允许他们进行权限提升或进程注入攻击。

提升权限:Polkit 本地提升权限漏洞 (CVE-2021-4034) CLOUD_RUN_POLKIT_LOCAL_PRIVILEGE_ESCALATION_VULNERABILITY

非根用户已执行 pkexec,并使用了尝试提升权限的环境变量。

此规则可检测到有人尝试利用 Polkit pkexec 中的权限提升漏洞 (CVE-2021-4034)。通过运行精心设计的代码,非根用户可以利用此缺陷在受入侵的系统上获得 root 权限。

提升权限:Sudo 潜在提升权限 (CVE-2021-3156) CLOUD_RUN_SUDO_POTENTIAL_PRIVILEGE_ESCALATION

非根用户执行了 sudosudoedit,其参数模式试图提升权限。

检测到有人尝试利用影响 sudo 版本 1.9.5p2 及更早版本的漏洞。以非特权用户身份执行 sudosudoedit 并使用某些参数(包括以单个反斜杠字符结尾的参数)时,可能会将用户的权限提升为根用户的权限。

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

后续步骤