Paper Files / Containers
标题:一种基于多层遥测的容器环境入侵检测与遏制的形式化基础架构
标题:一种基于多层遥测的容器环境入侵检测与遏制的形式化基础架构 摘要:容器作为云原生环境中主要的打包与部署单元被大规模采用后,引入了与传统虚拟机显著不同的攻击面。基础镜像中的漏洞、命名空间配置不当、cgroups 隔离失效,以及对 runc 等运行时的利用(例如 CVE-2019-5736)已被对手积极利用。本文提出一种面向容器环境中入侵检测与遏制的形式化基础架构,基于多层遥测(内核、运行时和编排器)的关联分析。我们的方法融合了概率行为建模、进程依赖图分析以及自适应隔离策略。 我们将容器化系统形式化建模为一个有向标记图 G = (V, E, λ),其中顶点表示执行实体,边编码可观测交互。我们定义了基于隔离不变量和信息流的安全性质,并提出两种核心算法:(i)基于多变量统计偏离与自适应阈值的检测;以及(ii)通过动态重配置访问控制与网络策略实现的自动遏制机制。 我们在 Kubernetes 1.29 上实现了一个功能原型,使用 eBPF 进行内核级仪表化,并采用 Open Policy Agent (OPA) 进行强制执行。我们在一个包含 48 个节点的集群上对系统进行了评估(Intel Xeon Gold,256 GB RAM),其中运行 1,200 个容器,并构造了 17 个具有代表性的攻击场景(MITRE ATT&CK for Containers)。结果显示,系统的平均检测率达到 96.8%(±1.7%),误报率为 2.3%,CPU 开销低于 4.9%。与仅基于签名或静态策略的解决方案相比,我们的方法将平均遏制时间缩短了 63%。 结果表明,将多层遥测与形式化建模及自动化遏制相结合,为大规模容器化环境安全带来了显著进展。
- 引言
基于容器的轻量级虚拟化深刻改变了分布式系统工程,并已成为云原生架构中的主导范式。根据 CNCF(2024)的报告,超过 92% 运行云端工作负载的组织在生产环境中使用容器。然而,这种普及也扩大了攻击面,尤其是在由 Kubernetes 编排的环境中。
不同于虚拟机,容器共享宿主机的同一个内核,并利用 namespaces 和 cgroups 等机制实现逻辑隔离。这一架构决策意味着,内核或运行时中的缺陷可能同时危及多个容器。CVE-2019-5736 通过利用 runc 覆写宿主机二进制文件,说明了此类漏洞的严重性。更近的 CVE-2022-0492 则通过配置不当的 cgroups v1 实现了权限提升。
Aqua Security 和 Red Hat 的报告表明,在公共仓库中分析的容器镜像中,超过 80% 至少包含一个已知漏洞(CVE)。此外,MITRE 的 ATT&CK for Containers 矩阵还识别出诸如 Escape to Host(T1611)、Container and Resource Discovery(T1613)以及 Exploitation for Privilege Escalation(T1068)等特定技术。
尽管镜像扫描工具和准入策略已大量出现,运行时恶意行为检测仍然是一个开放性挑战。许多解决方案依赖静态签名或预定义策略,无法捕获零日攻击或规避性行为。
鉴于此,我们提出以下研究问题:
RQ1:如何以形式化方式建模容器化工作负载的行为,从而区分恶意偏离与合法变化?
RQ2:是否能够高效且可扩展地整合多层次遥测数据(内核、运行时和编排器)?
RQ3:自动化遏制机制对系统可用性和性能的影响是什么?
我们的贡献如下:
C1:一种基于带标记图的形式化模型,用于表示容器化环境中的状态与交互。
C2:一种具有自适应阈值与时间相关性的多变量检测机制。
C3:一种集成到 Kubernetes 控制平面的自动化遏制架构,并对隔离不变量的保持提供形式化保证。
本文其余部分组织如下:第 2 节介绍基础知识和相关工作;第 3 节形式化威胁模型;第 4 节描述所提出的方法;第 5 节详述实现;第 6 节给出实验评估;第 7 节讨论启示与局限;第 8 节总结全文。
- 背景与相关工作
2.1 形式化定义
容器可以形式化定义为一个四元组 $C = (I, R, N, G)$,其中 $I$ 是不可变镜像,$R$ 是运行时,$N$ 是 namespaces 集合,$G$ 是 cgroups 限制集合。系统的全局状态表示为:
$$ S(t) = {C_1(t), C_2(t), \dots, C_n(t)} $$
我们将系统定义为一个有向带标记图 $G = (V, E, \lambda)$,其中 $V$ 包括进程、文件、套接字和内核资源,而 $\lambda: V \cup E \rightarrow \Sigma$ 将语义标签关联到节点与边。
当某个不变量 $\phi$ 被否定时,便发生了安全违规:
$$ \exists t : S(t) \not\models \phi $$
2.2 方法分类
现有方法可分为四类:
- 镜像静态扫描(例如 Clair、Trivy)
- 准入策略(例如 OPA Gatekeeper)
- 基于签名的监控(例如 Falco)
- 基于机器学习的行为建模
Falco 等方案使用基于系统调用的静态规则,而 Shu 等人(USENIX Security 2017)的工作则分析 Docker 镜像中的漏洞。更近的研究则探索使用 eBPF 实现低开销可观测性。
2.3 局限性
大多数方案:
(i) 缺乏形式化基础;
(ii) 未整合多层可观测性;
(iii) 在动态工作负载中具有较高的误报率;
(iv) 未提供具有正确性保证的自动化遏制能力。
这些空白促成了我们的研究。
- 威胁模型与问题形式化
我们假设攻击者具备以下能力:
- 在被入侵的容器内执行任意代码;
- 利用运行时或内核中的漏洞;
- 通过集群内部网络进行横向移动。
我们不假设 Kubernetes 控制平面已被预先攻破。
形式化地,问题在于检测事件序列 $E = {e_1, \dots, e_k}$,使得攻击的条件概率高于阈值 $\theta$:
$$ P(A \mid E) > \theta $$
我们希望同时最小化:
$$ FP = P(\neg A \mid \text{detection}) $$
以及
$$ FN = P(A \mid \neg \text{detection}) $$
并满足计算开销约束 $O \leq \epsilon$。
- 所提出的方法
4.1 概述
我们的架构包含三层:
- 遥测采集(eBPF、auditd)
- 分析引擎(概率模型 + 图)
- 遏制机制(OPA + 动态 NetworkPolicy)
4.2 检测算法
我们定义一个在每个时间间隔 $\Delta t$ 提取的特征向量 $x_t \in \mathbb{R}^d$。
计算马氏距离:
$$ D(x_t) = \sqrt{(x_t - \mu)^T \Sigma^{-1} (x_t - \mu)} $$
若 $D(x_t) > \tau(t)$,则标记为异常。
Algorithm 1: Detecção Multi-Variável
Input: fluxo de eventos E
Output: alerta A
1: inicializar μ, Σ
2: for cada janela temporal t do
3: extrair vetor x_t
4: calcular D(x_t)
5: if D(x_t) > τ(t) then
6: gerar alerta
7: end if
8: end for
复杂度:由于需要对 $\Sigma$ 求逆(预先计算),每个窗口的复杂度为 $O(d^2)$。
4.3 遏制算法
Algorithm 2: Contenção Adaptativa
Input: alerta A, container C
Output: política atualizada P
1: identificar escopo de impacto
2: aplicar NetworkPolicy restritiva
3: reduzir privilégios via SecurityContext
4: registrar evidências
5: monitorar estabilidade
我们保证结果策略保留由 $R_{min}$ 定义的最低必要连通性。
- 实现
我们使用 Go 1.22 实现了原型,并通过 libbpf 编译 eBPF 模块。事件采集包括系统调用、TCP 连接和文件系统操作。
实验集群由 48 个物理节点组成,每个节点配备 2× Intel Xeon Gold 6230(共 40 vCPU)、256 GB 内存以及 25 Gbps 网络。我们使用 Kubernetes 1.29 和 containerd 1.7。
我们通过自定义 admission controller 集成了 OPA。代理之间通过带 mTLS 的 gRPC 通信。
权衡包括采集粒度与开销之间的平衡。我们在高负载下采用自适应采样。
- 实验评估
6.1 配置
我们执行了 17 个攻击场景,包括:
- 利用 CVE-2019-5736
- 通过 bash 建立 reverse shell
- 通过 CVE-2022-0492 进行提权
- 通过 DNS 隧道进行数据外传
基线:
- Falco(默认规则)
- Sysdig Secure
- 仅基于静态阈值的检测器
指标:精确率、召回率、F1-score、CPU 开销和延迟。
6.2 结果
我们的方法达到了:
- 精确率:97.5%
- 召回率:96.8%
- F1-score:0.971
- 误报率:2.3%(±0.4)
- 平均 CPU 开销:4.9%
- 平均检测延迟:1.8 s
对比而言:
Falco:
- F1-score:0.89
- FP:6.7%
- 开销:3.2%
Sysdig:
- F1-score:0.92
- FP:5.1%
- 开销:6.4%
遏制平均时间从 14.2 s(手动基线)降至 5.3 s。
扩展性测试表明,在多达 1,200 个容器的规模下,开销呈线性增长($R^2 = 0.94$)。
- 讨论
结果表明,多层相关性降低了上下文歧义,从而提升了精确率。与控制平面的集成实现了近乎即时的响应。
局限性包括对具有代表性的训练数据的依赖,以及可能通过低强度、慢速攻击实现规避。
在具有自定义内核的异构环境中,外部有效性可能受到影响。
- 结论与未来工作
我们提出了一种面向容器环境的形式化检测与遏制架构,将数学建模、多层遥测和自动化执行相结合。
我们展示了在精确率和响应时间方面的显著定量提升,同时保持了可控的开销。
作为未来工作,我们计划探索:
(i) 基于时间动态图的模型;
(ii) 与 SBOM 及供应链分析的集成;
(iii) 通过模型检测进行策略形式化验证。
参考文献
[1] D. Merkel, “Docker: Lightweight Linux Containers,” Linux Journal, 2014.
[2] C. Pahl, “Containerization and the PaaS Cloud,” IEEE Cloud Computing, 2015.
[3] A. Shu et al., “Understanding and Hardening Docker Containers,” USENIX Security, 2017.
[4] MITRE, “ATT&CK for Containers,” 2023.
[5] NIST SP 800-190, “Application Container Security Guide,” 2017.
[6] Aqua Security, “Container Security Report,” 2024.
[7] Red Hat, “State of Kubernetes Security,” 2023.
[8] L. Lu et al., “eBPF-based Runtime Security Monitoring,” IEEE S&P Workshops, 2021.
[9] P. Anderson, “Computer Security Threat Monitoring,” 1980.
[10] G. McGraw, “Software Security,” IEEE Security & Privacy, 2004.
[11] Kubernetes Documentation, 2024.
[12] Open Policy Agent Documentation, 2024.
[13] CVE-2019-5736, NVD.
[14] CVE-2022-0492, NVD.
[15] Sysdig, “Runtime Security,” 2023.
[16] Falco Project Documentation, 2024.
[17] CNCF Survey Report, 2024.
[18] S. Forrest et al., “A Sense of Self for Unix Processes,” IEEE S&P, 1996.
[19] T. Garfinkel, “Virtual Machine Introspection,” NDSS, 2003.
[20] R. Sandhu, “Role-Based Access Control Models,” IEEE Computer, 1996.