Kubernetes 群集警报
Defender for Containers 提供了针对 Kubernetes (K8s) 控制平面和工作负载运行时威胁的增强警报功能。 Microsoft Defender 威胁智能还可以检测 K8s 容器相关的威胁,并与 Defender 传感器结合使用,提供丰富的上下文,发出全面、可操作的警报,来保护你的 K8s 环境。
控制平面检测
在 Kubernetes 中,控制平面用来管理和编排群集中的所有资源。 Defender for Containers 通过监视 K8s API 服务器的活动,来识别控制平面中可能危及整个群集安全性和完整性的潜在威胁。 捕获指示潜在安全威胁的关键事件,例如服务帐户的可疑操作或服务暴露。
Defender for Containers 捕获的可疑操作示例包括:
- 特权容器部署可能是一种安全风险,因为它们会在主机系统中授予容器更高的权限。 监视特权容器,以发现未经授权的部署、过度使用特权以及可能导致安全漏洞的潜在错误配置。
- 暴露在公共互联网上的风险服务可能会使 Kubernetes 群集面临潜在的攻击。 监视群集,以发现无意中暴露的服务、配置错误的宽松访问控制或缺乏适当安全措施的服务。
- 可疑服务帐户活动可能指示群集中未经授权的访问或恶意行为。 监视群集,以发现异常模式,如过多的资源请求、未经授权的 API 调用或对敏感数据的访问。
工作负载运行时检测
Defender for Containers 使用 Defender 传感器监视 K8s 工作负载运行时活动,以检测可疑操作,包括工作负载进程创建事件。
可疑工作负载运行时活动的示例包括:
- Web 外壳活动 - Defender for Containers 监视正在运行的容器上的活动,以识别类似于 Web 外壳调用的行为。
- 加密挖掘活动 - Defender for Containers 使用多个启发法来识别正在运行的容器上的加密挖掘活动,包括可疑下载活动、CPU 优化、可疑进程执行等。
- 网络扫描工具 - Defender for Containers 可识别用于恶意活动的扫描工具的使用情况。
K8s 警报模拟工具
Defender for Containers 提供了一种工具,来模拟 K8s 环境中的各种攻击场景,这些场景导致发出警报。 模拟工具在目标群集中部署两个 Pod:攻击者和牺牲品。 在模拟过程中,攻击者使用真实的技术“攻击”受害者。
注意
虽然模拟工具不会运行任何恶意组件,但建议在没有生产工作负载的专用群集上运行。
模拟工具使用基于 Python 的 CLI 运行,该 CLI 在目标群集中部署 Helm 图表。
安装模拟工具
先决条件:
对目标群集拥有管理权限的用户。
已启用 Defender for Containers,并已安装 Defender 传感器。 可运行以下命令来检查是否已安装 Defender 传感器:
kubectl get ds microsoft-defender-collector-ds -n kube-system
本地计算机上安装 Helm 客户端。
本地计算机上安装 Python 3.7 或更高版本。
将
kubeconfig
指向目标群集。 对于 Azure Kubernetes 服务,可以运行:az aks get-credentials --name [cluster-name] --resource-group [resource-group]
使用以下命令下载模拟工具:
curl -O https://raw.githubusercontent.com/microsoft/Defender-for-Cloud-Attack-Simulation/refs/heads/main/simulation.py
运行模拟工具
使用以下命令运行模拟脚本:
python simulation.py
选择模拟攻击场景或选择一次模拟所有攻击场景。 可用的模拟攻击场景包括:
场景 | 预期警报 |
---|---|
侦查 | 检测到潜在的 Web 外壳活动 检测到可疑的 Kubernetes 服务帐户操作 检测到网络扫描工具 |
横向移动 | 检测到潜在的 Web 外壳活动 检测到对云元数据服务的访问 |
机密收集 | 检测到潜在的 Web 外壳活动 检测到敏感文件访问 检测到潜在的机密侦查 |
加密挖掘 | 检测到潜在的 Web 外壳活动 检测到 Kubernetes CPU 优化 访问 ld.so.preload 的容器中的命令 检测到潜在的加密挖掘者下载 检测到容器中正在执行漂移二进制 |
Web shell | 检测到潜在的 Web 外壳活动 |
注意
有些警报几乎是实时触发的,有些则可能需要长达一个小时。