论文阅读 - ShadowKube: Enhancing Kubernetes Security with Behavioral Monitoring and Honeypot Integration
ShadowKube 将行为监控与影子蜜罐相结合,有效检测和中和异常行为。通过建立行为基线以识别偏差,并将被攻陷的节点转换为蜜罐,从而隔离并捕获攻击者,从而减轻其造成的威胁。最近最这篇文章进行了学习,并基于自己的理解,整理了简单而非详细的阅读报告。
同时提供了一个scholar site:https://sites.google.com/view/shadowkube
背景
攻击者通常利用集群配置错误或集群应用程序中的漏洞来获取提升的权限,例如创建容器的能力。借助这些权限,他们部署大量受其控制的恶意资源,包括嵌入后门或加密货币挖矿恶意软件的容器。
现有局限
针对 API Server 的攻击不直接攻击应用容器,因此网络层面的检测难以生效,需要有效的行为监控方式。
现有的行为监控方式:
- 基于规则:例如 Falco,可以通过符号链接等技术绕过。
- 基于机器学习:有的是通过API调用行为建模来检测,但受正常的突发访问的影响。
现有研究主要侧重于通过应用静态策略来监控和防止异常行为。这种方法需要大量的规则维护,并且容易受到攻击者的规避。
本文采用行为基线来识别Kubernetes集群中的异常,并利用蜜罐技术诱骗攻击者。受移动目标防御(MTD)和影子蜜罐概念的启发,我们提出了ShadowKube。
主要贡献
- 算法设计。我们开发了一种基线算法,利用最长公共子序列(LCS)和Levenshtein距离来建立容器的规范性良性行为,并量化容器运行时的异常情况。
- 系统实现。我们实现了ShadowKube,一个利用影子诱饵主机的主动防御框架,用于Kubernetes安全。它在不被攻击者察觉的情况下,将异常容器和主机转化为诱饵主机,从而实现诱捕和防御。
- 全面评估。我们进行了实验以测试ShadowKube检测异常的能力、诱捕效率以及评估其性能影响。系统证明其能够以最小的开销快速识别并隔离集群中的异常行为。它将受影响区域连接到影子集群以实现有效的防御。在一个月的公网部署期间,ShadowKube共吸引了635次真实攻击。
设计
系统包括五个组件:流量代理、探针、检测器、执行器和影子集群。
监控的数据指标:文件访问、网络连接、命令执行。

基线行为采集阶段
鉴于Pod集合的动态性,正常活动可能并不总是在特定的Pod中发生,而是在其副本中进行。ShadowKube通过根据其元数据将行为分类为不同的组,为每个组单独确立良性行为基线。
最小有效序列长度、最长公共子序列
对于文件和命令操作:在多个观察到的行为中找到最长的共同子序列,以总结正常模式
检测阶段
通过为每个时间窗口计算累积怀疑分数,可以有效识别与既定行为基线的偏差,突出 Kubernetes 集群环境中的潜在安全威胁或异常。→ 和一些溯源图的方法例如Kairos思路有点像
对于文件访问、命令执行、网络进行单独的怀疑分数确定,核心就是Levenshtein距离。
策略执行阶段
包括网络重构、Pod 清理和敏感信息修改。
Pod 的原位转换可能导致单个节点与控制平面断开连接,从而引起怀疑。为此,我们构建一个影子集群,旨在动态地与转换后的Pod集成,从而构建出一个表面上正常的运行环境。
网络:通过iptables实现,当对生产服务发起API调用时,将目标节点上正在进行的进程重定向到影子集群。
正常用户的访问是否会受到影响?
Pod 清理:为保护目标节点上的其他 Pod 不被破坏,所有除被破坏的 Pod 之外的 Pod 都会被移除。后,生产集群会通知在其他节点上重新创建这些 Pod,从而保持服务的连续性。
敏感信息修改:替换例如服务账户令牌及其他对生产环境中访问Kubernetes API进行认证和授权至关重要的Kubernetes凭证。
思考
- 敏感信息修改是否能直接用ebpf hook;
- 由于云服务的无状态性,能否基于用户指纹(例如Cookie)而非来源IP来track用户,以此实现例如横向移动探测的目的?
知识补充
K8s 知识点
- 每个 Pod 包含一个或多个共享网络和存储资源的容器。
论文阅读 - ShadowKube: Enhancing Kubernetes Security with Behavioral Monitoring and Honeypot Integration