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 脚本。

Container Threat Detection 的工作原理

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

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

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

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

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

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

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

Container Threat Detection 检测器

Container Threat Detection 包括以下检测器:

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

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

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

检测器会查找所执行的二进制文件,但该文件不属于原始容器映像,或是从原始容器映像经过修改的。
已加载添加的库

加载了一个不属于原始容器映像的库。

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

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

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

  • 根据威胁情报被识别为恶意内容
  • 不是原始容器映像的一部分

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

检测器会查找所执行的二进制文件,该文件不属于原始容器映像,并且根据威胁情报被识别为恶意二进制文件。
执行:添加了恶意库

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

  • 根据威胁情报被识别为恶意内容
  • 不是原始容器映像的一部分

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

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

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

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

如果执行了内置的恶意二进制文件,则表明攻击者正在部署恶意容器。他们可能已经获得对合法映像存储库或容器构建流水线的控制权,并将恶意二进制文件注入了容器映像。

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

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

  • 根据威胁情报被识别为恶意内容
  • 包含在原始容器映像中
  • 在运行时从原始容器映像修改过
  • 如果执行了经过修改的恶意二进制文件,则表明攻击者已经控制了工作负载,正在执行恶意软件。

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

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

  • 根据威胁情报被识别为恶意内容
  • 包含在原始容器映像中
  • 在运行时从原始容器映像修改过
  • 如果加载了经过修改的恶意库,则表明攻击者已经控制了工作负载,并且正在执行恶意软件。

    检测器会查找正在加载的库,该库最初包含在容器映像中但在运行时被修改,并且根据威胁情报被识别为恶意库。
    已执行恶意脚本 机器学习模型将执行的 bash 脚本识别为恶意脚本。攻击者可以利用 bash 脚本将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。 检测器使用 NLP 技术来评估已执行的 bash 脚本的内容。由于此方法并非基于签名,因此检测器可以识别已知和未知的恶意脚本。
    观察到恶意网址 Container Threat Detection 在正在运行的进程的参数列表中检测到恶意网址。 检测器会根据 Google 安全浏览服务维护的不安全 Web 资源列表,对在正在运行的进程的参数列表中观察到的网址进行检查。如果网址被错误地分类为钓鱼式攻击网址或恶意网址,请在报告错误数据中向安全浏览报告。
    反向 shell

    通过将数据流重定向到远程连接的套接字启动的进程。

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

    检测器会查找绑定到远程套接字的 stdin
    意外的 Shell Shell

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

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

    后续步骤