Container Threat Detection 概览

本页面简要介绍了 Container Threat Detection 的概念和功能。

什么是 Container Threat Detection?

Container Threat Detection 是 Security Command Center 的一项内置服务,可持续监控 Container-Optimized OS 节点映像的状态。该服务会评估所有更改和远程访问尝试以便以近乎实时的方式检测运行时攻击。

Container Threat Detection 可检测最常见的容器运行时攻击,并在 Security Command Center 和(可选)Cloud Logging 中提醒您。Container Threat Detection 可提供多种检测功能(包括可疑的二进制文件和库),并使用自然语言处理 (NLP) 来检测恶意 Bash 和 Python 代码。

Container Threat Detection 仅适用于 Security Command Center 的高级层级或企业层级。

Container Threat Detection 的工作原理

Container Threat Detection 检测插桩收集客机内核中的低级行为并执行脚本。以下是检测到事件时的执行路径:

  1. Container Threat Detection 通过用户模式 DaemonSet 将事件信息和标识容器的信息传递给检测器服务进行分析。启用 Container Threat Detection 时,系统会自动配置事件收集。

    Watcher DaemonSet 会尽最大努力传递容器信息。如果 Kubernetes 和容器运行时未及时传递相应的容器信息,则系统可能会从报告的发现结果中删除容器信息。

  2. 检测器服务会分析事件,以确定事件是否表示突发事件。系统使用 NLP 分析 Bash 和 Python 脚本,以确定执行的代码是否为恶意代码。

  3. 如果检测器服务发现突发事件,突发事件会以发现结果形式写入 Security Command Center 和(可选)Cloud Logging 中。

    • 如果检测器服务无法识别突发事件,则不会存储发现结果信息。
    • 内核和检测器服务中的所有数据都是临时的,不会永久存储。

您可以在 Security Command Center 控制台中查看发现结果详情,并调查发现结果信息。您能否查看和修改结果取决于您被授予的角色。如需详细了解 Security Command Center 角色,请参阅访问权限控制

注意事项

在集群中安装的其他安全检测工具可能会降低 Container Threat Detection 的性能并导致其故障。如果集群已受容器威胁检测保护,我们建议您不要在集群中安装任何其他安全检测工具。

Container Threat Detection 检测器

Container Threat Detection 包括以下检测器:

检测器 说明 要检测的输入
已执行添加的二进制文件

执行了不属于原始容器映像的二进制文件。

如果一个添加的二进制文件是由攻击者执行的,这可能表明攻击者控制了工作负载,并且正在执行任意命令。

此检测器默认处于停用状态。如需了解如何启用该功能,请参阅测试 Container Threat Detection

检测器查找正在执行的二进制文件,该二进制文件不是原始容器映像的一部分,或者是通过原始容器映像修改的。
已加载添加的库

已加载不属于原始容器映像的库。

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

此检测器默认处于停用状态。如需了解如何启用该功能,请参阅测试 Container Threat Detection

检测器查找正在加载的库,该库不是原始容器映像的一部分,或者是通过原始容器映像修改的。
凭据访问:搜索私钥或密码

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

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

此检测器会监控用于查找私钥、密码或凭据文件的已知命令。如果容器化环境中存在此类搜索,则可能表明存在侦察活动或正在进行的入侵。
执行:已执行添加的恶意二进制文件

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

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

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

检测器查找正在执行的二进制文件,该二进制文件不是原始容器映像的一部分,并且根据威胁情报被识别为恶意。
执行:添加了“已加载恶意库”

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

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

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

检测器查找正在加载的库,该库不是原始容器映像的一部分,并且根据威胁情报被识别为恶意。
执行:已执行内置恶意二进制文件

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

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

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

检测器查找正在执行的二进制文件,该二进制文件包含在原始容器映像中,并且根据威胁情报被识别为恶意。
执行:容器逃逸

容器内执行了一个进程,该进程尝试突破容器的隔离,可能会让攻击者获得对主机系统的访问权限。

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

该检测器会监控试图使用已知逃逸技术或二进制文件来利用容器边界的进程。威胁情报会将这些进程标记为针对底层主机系统的潜在攻击。
执行:Kubernetes 攻击工具执行

在环境中执行了特定于 Kubernetes 的攻击工具,这可能表明攻击者以 Kubernetes 集群组件为目标。

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

该检测器会查找正在执行的 Kubernetes 攻击工具,并根据情报数据将其识别为潜在威胁。该检测器会触发提醒,以减少集群中潜在的入侵风险。
执行:本地侦察工具执行

执行了通常与容器或环境无关的本地侦察工具,这表明攻击者试图收集内部系统信息。

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

该检测器会监控环境中是否正在执行已知的侦察工具(通过威胁情报识别),这可能表明攻击者正在准备进行更多恶意活动。
执行:执行了恶意 Python 代码(预览版

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

检测器使用 NLP 技术来评估已执行的 Python 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新颖的 Python 攻击。
执行:已执行经过修改的恶意二进制文件

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

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

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

检测器查找正在执行的二进制文件,该二进制文件最初包含在容器映像中,但在运行时被修改,并且根据威胁情报被识别为恶意文件。
执行:加载了经过修改的恶意库

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

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

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

检测器会查找正在加载的库,该库最初包含在容器映像中,但在运行时被修改,并且根据威胁情报被识别为恶意。
执行:容器中的 Netcat 远程代码执行

在容器环境中执行了多用途网络实用程序 Netcat,这可能表明有人尝试建立未经授权的远程访问或渗漏数据。

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

检测器会监控容器中 Netcat 的执行情况,因为在生产环境中使用 Netcat 的情况并不常见,并且可能表明有人企图绕过安全控制措施或执行远程命令。
执行:在禁止的 HTTP 代理环境中运行程序

使用不允许的 HTTP 代理环境变量执行了程序。这可能表示有人尝试绕过安全控制措施、出于恶意目的重定向流量,或通过未经授权的渠道窃取数据。

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

此检测器会监控是否有程序使用被明确禁止的 HTTP 代理环境变量进行执行。使用这些代理(尤其是在意外情况下使用)可能表明存在恶意活动,需要立即进行调查。
渗漏:在容器中启动远程文件复制工具

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

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

此检测器会监控容器环境中已知远程文件复制工具的执行情况。存在这些文件(尤其是在意外情况下)可能表示存在恶意活动。
影响:从磁盘中移除大量数据

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

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

该检测器会监控与批量数据删除或其他数据擦除工具相关的命令和进程,以识别可能破坏系统完整性的可疑活动。
影响:使用 Stratum 协议的可疑加密货币挖矿活动

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

攻击者通常会部署加密货币挖矿工具来利用系统资源牟利,这会导致性能下降、运营成本增加,并带来潜在的安全风险。检测此类活动有助于减少资源滥用和未经授权的访问。

此检测器会监控环境中已知的 Stratum 协议使用情况。由于合法的容器工作负载通常不使用 Stratum,因此如果存在 Stratum,则可能表示未经授权的挖矿操作或已被入侵的容器。
已执行恶意脚本

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

检测器使用 NLP 技术来评估已执行的 Bash 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新型恶意 bash 脚本。
观察到恶意网址 Container Threat Detection 在正在运行的进程的参数列表中观察到一个恶意网址。 检测器会根据 Google 安全浏览服务维护的不安全 Web 资源列表,对在正在运行的进程的参数列表中观察到的网址进行检查。如果网址被错误地分类为钓鱼式攻击网址或恶意网址,请在 报告错误数据中进行举报。
反向 shell

通过流式传输重定向到远程连接的套接字的过程。

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

检测器会查找绑定到远程套接字的 stdin
意外的 Shell Shell 通常不调用 shell 的进程生成了 shell 进程。 检测器监控所有进程执行。调用 shell 时,如果父级进程通常不会调用 shell,则检测器会生成发现结果。

后续步骤