Page 480 - 《软件学报》2026年第3期
P. 480
李志 等: 容器文件系统隔离增强机制 1443
4.4 对容器工具的性能影响
为消除各类路径解析错误和文件描述符泄露漏洞, 容器工具中存在大量漏洞补丁. 实验评估了 FCFS 为应用
层中容器工具引入的开销, 并与漏洞补丁带来的开销进行了比较. 实验选取了 3 款主流的容器工具 Docker、Podman、
Kubernetes 进行评估, 并使用其最早存在漏洞的版本 (docker-ce v18.03.1、Kubernetes v1.7.13 和 Podman v1.5.1) 作
为测试对象.
根据 FCFS 的设计, 容器启动过程中 FCFS 需对容器中文件对象进行标记, 因此会产生一定性能开销, 延长容
器的启动时间. 此外, CVE-2017-1002101、CVE-2019-5736、CVE-2021-30465、CVE-2021-25741 和 CVE-2022-
23648 漏洞的补丁也会影响容器的启动时间. 为量化此类性能损耗, 实验选取了 DockerHub [45] 中 120 个最流行的
镜像, 并测量了不同容器工具使用这些镜像启动容器实例的时间. 图 12 显示了不同容器工具启动容器实例时的性
能开销分布, 其中箱线图的上限与下限分别设置为 5% 和 95%. 对于所有这些容器工具, FCFS 引入的管理费用的
中位数小于 3.8%, 第 95 个百分位数低于 7%. 其中 Docker 的开销最低, 中位数为 3.68%, 第 95 百分位为 5.80%. 相
比之下, 由漏洞引起的开销补丁更高, 中位数约为 6.52%.
12 12 12
10 8 10 8 10 8
Normalized overhead (%) 6 4 Normalized overhead (%) 6 4 Normalized overhead (%) 6 4
2 2 2
0 0 0
FCFS Patches FCFS Patches FCFS Patches
(a) Docker run 开销 (b) Podman run 开销 (c) Kubernetes run 开销
图 12 Docker、Podman 和 Kubernetes 性能下降分布图
此外, CVE-2018-15664, CVE-2019-14271, CVE-2019-10152 和 CVE-2019-18466 等漏洞均存在于 Docker 和
Podman 的“copy”功能中, 因此该功能中存在数个补丁. 为评估 Docker 和 Podman 在 FCFS 环境下和使用补丁情况
下执行“copy”功能的性能损耗, 实验量化并比较了“docker cp”和“podman cp”将不同大小的文件 (1 MB–1 GB) 从容
器复制到主机的时间, 实验结果如后文图 13 所示. 其中, 图 13(a) 显示了 FCFS 在“docker cp”过程中引入的开销最
大不超过 4.01%, 而漏洞补丁带来的最小开销为 85.96% 并随着复制文件的增大而增长. 图 13(b) 显示了 FCFS 对
于“podman cp”过程引入的开销都在 1.51% 以下. 相比之下, 漏洞补丁引入的开销则从 19.83% 到 74.82% 不等, 远
高于 FCFS 引入的开销.
5 相关工作
容器技术的出现深刻地改变了在云中开发和部署分布式应用程序的生态系统. 但是由于容器隔离机制的不完
整, 导致一些安全问题的出现, 目前已经有许多研究指出了容器隔离机制的脆弱性. Gao 等人 [46] 指出由于现有命名
空间缺少上下文检查以及某些 Linux 子系统没有完整的命名空间, 未隔离的伪文件系统可能是泄露宿主机信息的
通道, 攻击者可以通过这些信息分析容器同驻情况以及监控宿主机资源使用情况, 发起一种新型的电力攻击. Gao
等人 [47] 在 2019 年又提出恶意容器可以打破 cgroup 的资源控制, 极大地耗尽主机资源并发起多种攻击. Yang 等人 [48]
发现攻击者能够破坏 PID 命名空间的隔离. 在不利用任何内核漏洞的情况下, 非特权容器可以很轻易地耗尽共享

