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 资源收集遥测数据,以分析可能表明存在运行时攻击的进程、脚本和库。以下是检测到事件时的执行路径:
- Cloud Run Threat Detection 使用 watcher 进程在 Cloud Run 工作负载的整个运行时长内收集容器和事件信息。
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 |
此规则可检测到 |
| 执行:疑似检测到远程命令执行 | 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 |
此规则通过重定向 stdin、stdout 和 stderr 文件描述符来检测执行 |
| 执行:已加载可疑的 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 |
使用试图提升权限的参数执行了
此检测会通知用户有人尝试利用 CVE-2019-14287,该漏洞允许通过滥用 |
| 提升权限:/dev/shm 中的无文件执行 | CLOUD_RUN_FILELESS_EXECUTION_DETECTION_SHM |
从 通过从 |
| 提升权限:Polkit 本地提升权限漏洞 (CVE-2021-4034) | CLOUD_RUN_POLKIT_LOCAL_PRIVILEGE_ESCALATION_VULNERABILITY |
非根用户已执行
此规则可检测到有人尝试利用 Polkit |
| 提升权限:Sudo 潜在提升权限 (CVE-2021-3156) | CLOUD_RUN_SUDO_POTENTIAL_PRIVILEGE_ESCALATION |
非根用户执行了
检测到有人尝试利用影响 |
| 反向 shell | CLOUD_RUN_REVERSE_SHELL |
通过流式传输重定向到远程连接的套接字的过程。检测器会查找绑定到远程套接字的 借助反向 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 遭泄露时,这可能是攻击者获取权限后进行的攻击行为。 默认情况下,发现结果会被归类为低严重程度。 |
后续步骤
- 了解如何使用 Cloud Run Threat Detection。
- 了解如何使用 Event Threat Detection。
- 了解如何应对 Cloud Run 威胁发现结果。
- 查看威胁发现结果索引。