← 返回论文

Paper Files / Containers

标题:一种基于多层遥测的容器环境入侵检测与遏制的形式化基础架构

ContainersZH

标题:一种基于多层遥测的容器环境入侵检测与遏制的形式化基础架构 摘要:容器作为云原生环境中主要的打包与部署单元被大规模采用后,引入了与传统虚拟机显著不同的攻击面。基础镜像中的漏洞、命名空间配置不当、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%。 结果表明,将多层遥测与形式化建模及自动化遏制相结合,为大规模容器化环境安全带来了显著进展。

  1. 引言

基于容器的轻量级虚拟化深刻改变了分布式系统工程,并已成为云原生架构中的主导范式。根据 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 节总结全文。

  1. 背景与相关工作

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 方法分类

现有方法可分为四类:

  1. 镜像静态扫描(例如 Clair、Trivy)
  2. 准入策略(例如 OPA Gatekeeper)
  3. 基于签名的监控(例如 Falco)
  4. 基于机器学习的行为建模

Falco 等方案使用基于系统调用的静态规则,而 Shu 等人(USENIX Security 2017)的工作则分析 Docker 镜像中的漏洞。更近的研究则探索使用 eBPF 实现低开销可观测性。

2.3 局限性

大多数方案:

(i) 缺乏形式化基础;
(ii) 未整合多层可观测性;
(iii) 在动态工作负载中具有较高的误报率;
(iv) 未提供具有正确性保证的自动化遏制能力。

这些空白促成了我们的研究。

  1. 威胁模型与问题形式化

我们假设攻击者具备以下能力:

我们不假设 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$。

  1. 所提出的方法

4.1 概述

我们的架构包含三层:

  1. 遥测采集(eBPF、auditd)
  2. 分析引擎(概率模型 + 图)
  3. 遏制机制(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}$ 定义的最低必要连通性。

  1. 实现

我们使用 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 通信。

权衡包括采集粒度与开销之间的平衡。我们在高负载下采用自适应采样。

  1. 实验评估

6.1 配置

我们执行了 17 个攻击场景,包括:

基线:

指标:精确率、召回率、F1-score、CPU 开销和延迟。

6.2 结果

我们的方法达到了:

对比而言:

Falco:

Sysdig:

遏制平均时间从 14.2 s(手动基线)降至 5.3 s。

扩展性测试表明,在多达 1,200 个容器的规模下,开销呈线性增长($R^2 = 0.94$)。

  1. 讨论

结果表明,多层相关性降低了上下文歧义,从而提升了精确率。与控制平面的集成实现了近乎即时的响应。

局限性包括对具有代表性的训练数据的依赖,以及可能通过低强度、慢速攻击实现规避。

在具有自定义内核的异构环境中,外部有效性可能受到影响。

  1. 结论与未来工作

我们提出了一种面向容器环境的形式化检测与遏制架构,将数学建模、多层遥测和自动化执行相结合。

我们展示了在精确率和响应时间方面的显著定量提升,同时保持了可控的开销。

作为未来工作,我们计划探索:

(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.