本页面简要介绍了 Container Threat Detection 的概念和功能。
什么是 Container Threat Detection?
Container Threat Detection 是 Security Command Center 的一项内置服务,可持续监控 Container-Optimized OS 节点映像的状态。该服务会评估所有更改和远程访问尝试, 可以近乎实时地检测运行时攻击。
Container Threat Detection 可检测最常见的容器运行时攻击,并在 Security Command Center 和(可选)Cloud Logging 中提醒您。容器威胁检测 提供多种检测功能,包括可疑的二进制文件和 库,并使用自然语言处理 (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 包括以下检测器:
检测器 | 说明 | 要检测的输入 |
---|---|---|
已执行添加的二进制文件 |
执行了不属于原始容器映像的二进制文件。 如果添加的二进制文件被攻击者执行, 攻击者可以控制工作负载, 任意命令。 |
检测器查找正在执行的二进制文件,该二进制文件不是原始容器映像的一部分,或者是通过原始容器映像修改的。 |
已加载添加的库 |
原始容器映像中不属于某个库 。 如果加载了添加的库,这可能意味着 可以控制工作负载,并且正在执行任意代码。 |
检测器会查找正在加载的库,但该库不属于 原始容器映像,或者是基于原始容器进行修改 图片。 |
执行:已执行添加的恶意二进制文件 |
已执行满足以下条件的二进制文件:
如果添加的恶意二进制文件被执行了, 攻击者可以控制工作负载, 软件开发应用。 |
检测器会查找正在执行的二进制文件,该文件不属于 并据此将其标识为恶意 威胁情报。 |
执行:添加了“已加载恶意库” |
加载了满足以下条件的库:
如果加载了添加的恶意库,很明显 攻击者可以控制工作负载, 软件开发应用。 |
检测器查找正在加载的库,该库不是原始容器映像的一部分,并且根据威胁情报被识别为恶意。 |
执行:已执行内置恶意二进制文件 |
已执行满足以下条件的二进制文件:
如果执行了内置的恶意二进制文件,则表示攻击者正在部署恶意容器。攻击者可能已控制合法映像仓库或容器构建流水线,并向容器映像注入了恶意二进制文件。 |
检测器查找正在执行的二进制文件,该二进制文件包含在原始容器映像中,并且根据威胁情报被识别为恶意。 |
执行:执行了恶意 Python 代码(预览版) |
机器学习模型将指定的 Python 代码识别为恶意代码。攻击者可以利用 Python 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。 |
检测器使用 NLP 技术来评估已执行的 Python 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新颖的 Python 恶意脚本。 |
执行:执行的恶意二进制文件遭到修改 |
执行了满足以下条件的二进制文件:
如果系统执行了经过修改的恶意二进制文件,则很可能表示攻击者控制了工作负载,并且正在执行恶意软件。 |
检测器会查找正在执行的二进制文件,该二进制文件最初是 包含在容器映像中,但在运行时被修改 被识别为恶意内容。 |
执行:已加载经过修改的恶意库 |
加载了满足以下条件的库:
如果加载了经过修改的恶意库 攻击者可以控制工作负载, 软件开发应用。 |
检测器会查找正在加载的库,该库最初包含在容器映像中,但在运行时被修改,并且根据威胁情报被识别为恶意。 |
已执行恶意脚本 |
机器学习模型将指定的 Bash 代码识别为恶意代码。攻击者可以利用 Bash 将工具或其他文件从外部系统转移到遭到入侵的环境,并在不使用二进制文件的情况下执行命令。 |
检测器使用 NLP 技术来评估已执行的 Bash 代码的内容。由于此方法并非基于签名,因此检测器可以识别已知和新型恶意 bash 脚本。 |
观察到恶意网址 | Container Threat Detection 在正在运行的进程的参数列表中观察到一个恶意网址。 | 检测器会检查在 以安全的方式运行进程 由 Google 维护 安全浏览 服务。如果网址被错误归类为钓鱼式攻击或恶意软件, 通过以下网址报告 报告错误数据。 |
反向 shell |
将视频流重定向到远程连接的开始后的流程 套接字。 借助反向 shell,攻击者可以通过已破解的工作负载与攻击者控制的机器进行通信。然后,攻击者可以 管理工作负载,例如, 僵尸网络 |
检测器会查找绑定到远程套接字的 stdin 。
|
意外的 Shell Shell | 通常不调用 shell 的进程生成了 shell 进程。 | 检测器监控所有进程执行。调用 shell 时,如果父级进程通常不会调用 shell,则检测器会生成发现结果。 |
后续步骤
- 了解如何使用 Container Threat Detection。
- 了解如何测试 Container Threat Detection。
- 了解如何 调查并制定响应计划 以检测威胁。
- 了解 Artifact Analysis 和漏洞扫描。