本页面简要介绍了 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 检测插桩收集客机内核中的低级行为并执行脚本。以下是检测到事件时的执行路径:
Container Threat Detection 通过用户模式 DaemonSet 将事件信息和标识容器的信息传递给检测器服务进行分析。启用 Container Threat Detection 时,系统会自动配置事件收集。
Watcher DaemonSet 会尽最大努力传递容器信息。如果 Kubernetes 和容器运行时未及时传递相应的容器信息,则系统可能会从报告的发现结果中删除容器信息。
检测器服务会分析事件,以确定事件是否表示突发事件。系统使用 NLP 分析 Bash 和 Python 代码,以确定执行的代码是否为恶意代码。
如果检测器服务发现突发事件,突发事件会以发现结果形式写入 Security Command Center 和(可选)Cloud Logging 中。
- 如果检测器服务无法识别突发事件,则不会存储发现结果信息。
- 内核和检测器服务中的所有数据都是临时的,不会永久存储。
您可以在 Security Command Center 控制台中查看发现结果详情,并调查发现结果信息。您能否查看和修改结果取决于您被授予的角色。如需详细了解 Security Command Center 角色,请参阅访问权限控制。
Container Threat Detection 检测器
Container Threat Detection 包括以下检测器:
检测器 | 说明 | 要检测的输入 |
---|---|---|
已执行添加的二进制文件 |
执行了不属于原始容器映像的二进制文件。 如果一个添加的二进制文件是由攻击者执行的,这可能表明攻击者控制了工作负载,并且正在执行任意命令。 此检测器默认处于停用状态。如需了解如何启用该功能,请参阅测试 Container Threat Detection。 |
检测器查找正在执行的二进制文件,该二进制文件不是原始容器映像的一部分,或者是通过原始容器映像修改的。 |
已加载添加的库 |
已加载不属于原始容器映像的库。 如果添加的库已加载,则可能表示攻击者控制了工作负载并正在执行任意代码。 此检测器默认处于停用状态。如需了解如何启用该功能,请参阅测试 Container Threat Detection。 |
检测器查找正在加载的库,该库不是原始容器映像的一部分,或者是通过原始容器映像修改的。 |
执行:已执行添加的恶意二进制文件 |
执行了满足以下条件的二进制文件:
如果添加的恶意二进制文件被执行,则很可能表示攻击者控制了工作负载,并且正在执行恶意软件。 |
检测器查找正在执行的二进制文件,该二进制文件不是原始容器映像的一部分,并且根据威胁情报被识别为恶意。 |
执行:添加了“已加载恶意库” |
加载了满足以下条件的库:
如果添加的恶意库已加载,则很可能表示攻击者控制了工作负载并正在执行恶意软件。 |
检测器查找正在加载的库,该库不是原始容器映像的一部分,并且根据威胁情报被识别为恶意。 |
执行:已执行内置恶意二进制文件 |
执行了满足以下条件的二进制文件:
如果执行了内置的恶意二进制文件,则表示攻击者正在部署恶意容器。攻击者可能已控制合法映像仓库或容器构建流水线,并向容器映像注入了恶意二进制文件。 |
检测器查找正在执行的二进制文件,该二进制文件包含在原始容器映像中,并且根据威胁情报被识别为恶意文件。 |
执行:容器逃逸 |
容器内执行了一个进程,该进程尝试突破容器的隔离,可能会让攻击者获得对主机系统的访问权限。 如果检测到容器逃逸尝试,则可能表示攻击者正在利用漏洞逃出容器。因此,攻击者可能会未经授权访问主机系统或更广泛的基础架构,从而破坏整个环境。 |
该检测器会监控试图使用已知逃逸技术或二进制文件来利用容器边界的进程。威胁情报会将这些进程标记为针对底层主机系统的潜在攻击。 |
执行:Kubernetes 攻击工具执行 |
在环境中执行了特定于 Kubernetes 的攻击工具,这可能表明攻击者以 Kubernetes 集群组件为目标。 如果在 Kubernetes 环境中执行攻击工具,则可能表明攻击者已获得对集群的访问权限,并正在使用该工具利用 Kubernetes 特有的漏洞或配置。 |
该检测器会查找正在执行的 Kubernetes 攻击工具,并根据情报数据将其识别为潜在威胁。该检测器会触发提醒,以减少集群中潜在的入侵风险。 |
执行:本地侦察工具执行 |
执行了通常与容器或环境无关的本地侦察工具,这表明攻击者试图收集内部系统信息。 如果执行了侦察工具,则表明攻击者可能正在尝试绘制基础架构图、识别漏洞或收集系统配置数据,以便规划后续步骤。 |
该检测器会监控环境中是否正在执行已知的侦察工具(通过威胁情报识别),这可能表明攻击者正在准备进行更多恶意活动。 |
执行:执行了恶意 Python 代码(预览版) |
机器学习模型将指定的 Python 代码识别为恶意代码。攻击者可以利用 Python 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。 |
检测器使用 NLP 技术来评估已执行的 Python 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新颖的 Python 攻击。 |
执行:已执行经过修改的恶意二进制文件 |
执行了满足以下条件的二进制文件:
如果系统执行了经过修改的恶意二进制文件,则很可能是攻击者控制了工作负载,并且正在执行恶意软件。 |
检测器查找正在执行的二进制文件,该二进制文件最初包含在容器映像中,但在运行时被修改,并且根据威胁情报被识别为恶意文件。 |
执行:加载了经过修改的恶意库 |
加载了满足以下条件的库:
如果加载了经过修改的恶意库,则很可能表明攻击者控制了工作负载,并且正在执行恶意软件。 |
检测器会查找正在加载的库,该库最初包含在容器映像中,但在运行时被修改,并且根据威胁情报被识别为恶意。 |
已执行恶意脚本 |
机器学习模型将指定的 Bash 代码识别为恶意代码。攻击者可以利用 Bash 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。 |
检测器使用 NLP 技术来评估已执行的 Bash 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新型恶意 bash 脚本。 |
观察到恶意网址 | Container Threat Detection 在正在运行的进程的参数列表中观察到一个恶意网址。 | 检测器会根据 Google 安全浏览服务维护的不安全 Web 资源列表,对在正在运行的进程的参数列表中观察到的网址进行检查。如果网址被错误地分类为钓鱼式攻击网址或恶意网址,请在 报告错误数据中向安全浏览报告。 |
反向 shell |
通过流式传输重定向到远程连接的套接字的过程。 借助反向 shell,攻击者可以通过已破解的工作负载与攻击者控制的机器进行通信。然后,攻击者可以命令和控制工作负载,例如将其作为僵尸网络的一部分。 |
检测器会查找绑定到远程套接字的 stdin 。
|
意外的 Shell Shell | 通常不调用 shell 的进程生成了 shell 进程。 | 检测器监控所有进程执行。调用 shell 时,如果父级进程通常不会调用 shell,则检测器会生成发现结果。 |
后续步骤
- 了解如何使用 Container Threat Detection。
- 了解如何测试 Container Threat Detection。
- 了解如何调查和制定威胁响应方案。
- 了解 Artifact Analysis 和漏洞扫描。