2025-11-20T01:55:14.885016

Analysis of Security in OS-Level Virtualization

Ketha, Song, Zhu
Virtualization is a technique that allows multiple instances typically running different guest operating systems on top of single physical hardware. A hypervisor, a layer of software running on top of the host operating system, typically runs and manages these different guest operating systems. Rather than to run different services on different servers for reliability and security reasons, companies started to employ virtualization over their servers to run these services within a single server. This approach proves beneficial to the companies as it provides much better reliability, stronger isolation, improved security and resource utilization compared to running services on multiple servers. Although hypervisor based virtualization offers better resource utilization and stronger isolation, it also suffers from high overhead as the host operating system has to maintain different guest operating systems. To tackle this issue, another form of virtualization known as Operating System-level virtualization has emerged. This virtualization provides light-weight, minimal and efficient virtualization, as the different instances are run on top of the same host operating system, sharing the resources of the host operating system. But due to instances sharing the same host operating system affects the isolation of the instances. In this paper, we will first establish the basic concepts of virtualization and point out the differences between the hyper-visor based virtualization and operating system-level virtualization. Next, we will discuss the container creation life-cycle which helps in forming a container threat model for the container systems, which allows to map different potential attack vectors within these systems. Finally, we will discuss a case study, which further looks at isolation provided by the containers.
academic

Analysis of Security in OS-Level Virtualization

基本信息

  • 论文ID: 2501.01334
  • 标题: Analysis of Security in OS-Level Virtualization
  • 作者: Krishna Sai Ketha, Guanqun Song, Ting Zhu (The Ohio State University)
  • 分类: cs.CR (Cryptography and Security), cs.OS (Operating Systems)
  • 发表时间: 2025年1月2日 (arXiv预印本)
  • 论文链接: https://arxiv.org/abs/2501.01334

摘要

虚拟化技术允许在单一物理硬件上运行多个通常具有不同客户操作系统的实例。虽然基于hypervisor的虚拟化提供了更好的资源利用率和更强的隔离性,但由于主机操作系统需要维护不同的客户操作系统,也存在高开销问题。为解决这一问题,操作系统级虚拟化应运而生,它提供轻量级、最小化和高效的虚拟化,但由于实例共享同一主机操作系统,会影响实例间的隔离性。本文建立了虚拟化基本概念,分析了hypervisor虚拟化与操作系统级虚拟化的差异,讨论了容器创建生命周期,构建了容器威胁模型,并通过案例研究分析了容器提供的隔离性。

研究背景与动机

问题定义

  1. 资源利用效率问题:传统的将不同服务部署在不同服务器上的方式虽然提高了可靠性和安全性,但成本高昂且资源利用率低
  2. 虚拟化开销问题:基于hypervisor的虚拟化虽然改善了资源利用率,但维护多个客户操作系统导致高开销
  3. 容器安全隔离问题:操作系统级虚拟化虽然解决了开销问题,但共享操作系统内核可能影响安全隔离

研究重要性

  • 商业需求:企业需要在单一服务器上安全高效地运行多个服务
  • 云计算趋势:自1990年代以来,虚拟化技术在云环境中得到广泛应用
  • 安全威胁:容器技术的广泛采用带来了新的安全挑战和攻击向量

现有方法局限性

  • 传统虚拟化:hypervisor虚拟化开销大,每个虚拟机都需要完整的客户操作系统
  • 安全分析不足:对操作系统级虚拟化的安全性和隔离性分析不够深入
  • 威胁模型缺失:缺乏系统性的容器威胁模型来识别潜在攻击向量

核心贡献

  1. 建立了虚拟化技术对比框架:系统性地比较了hypervisor虚拟化与操作系统级虚拟化的优缺点
  2. 构建了详细的容器创建生命周期模型:分析了Docker容器从构建到运行的完整流程
  3. 提出了全面的容器威胁模型:识别并分类了容器系统中的9类主要攻击向量
  4. 提供了实际漏洞案例分析:通过CVE-2024-21626和CVE-2022-0847两个真实漏洞深入分析安全问题
  5. 给出了容器安全加固建议:基于分析结果提出了实用的安全最佳实践

方法详解

任务定义

本研究旨在系统性分析操作系统级虚拟化(特别是Docker容器)的安全性和隔离性,通过构建威胁模型识别潜在攻击向量,并提供安全加固建议。

研究架构

1. 容器创建生命周期分析

研究重点关注Docker容器系统的四个核心组件:

  • Docker Engine:开源容器化技术,提供构建和容器化应用程序的能力
  • Docker Daemon (dockerd):后台运行的进程,监听Docker命令,作为CLI和容器运行时的接口
  • Containerd:高级容器运行时系统,提供镜像传输管理、容器生命周期管理、存储和网络功能
  • Runc:轻量级、安全的低级容器运行时,直接与底层操作系统交互

2. 容器创建流程

Dockerfile → Docker Build → Docker Daemon → Containerd → Runc → Container
  1. 系统管理员通过Docker CLI执行"docker build"命令
  2. Docker CLI调用Docker Daemon处理请求
  3. Docker Daemon将请求转发给Containerd创建容器
  4. Containerd拉取镜像并传递给Runc
  5. Runc与底层操作系统交互,基于镜像配置创建和管理容器

威胁模型构建

攻击分类

外部攻击:通过网络远程访问容器系统 内部攻击:攻击者已在容器内作为用户发起攻击

九类主要攻击向量

  1. 仓库镜像操纵:攻击者篡改存储库中的容器镜像
  2. 应用代码漏洞:利用应用代码和第三方依赖中的漏洞
  3. 容器镜像配置不当:镜像配置时给予过多不必要权限
  4. 容器配置不当:从公共目录拉取包含恶意代码的镜像
  5. 主机漏洞:利用运行容器的主机操作系统漏洞
  6. 系统内信息传递:攻击者监控容器间的信息共享
  7. 容器逃逸漏洞:利用containerd或runc等运行时系统漏洞逃逸到主机
  8. 不安全网络通信:攻击者监控容器间通信获取信息
  9. 不受控资源消耗:恶意脚本消耗过多资源,导致其他容器资源匮乏

实验设置

案例研究方法

本研究采用实际漏洞案例分析方法,选择两个具有代表性的安全漏洞进行深入分析:

  1. Runc Container Breakout (CVE-2024-21626)
  2. Dirty Pipe Vulnerability (CVE-2022-0847)

分析框架

  • 漏洞机制分析:详细解析漏洞的技术原理
  • 影响范围评估:确定受影响的软件版本范围
  • 攻击场景重现:通过实际命令演示攻击过程
  • 严重性评估:评估漏洞的安全影响程度

实验结果

案例一:Runc Container Breakout (CVE-2024-21626)

漏洞详情

  • 发现时间:2024年1月31日
  • 影响版本
    • runc: v1.0.0-rc93 到 v1.1.11
    • containerd: v1.4.7 到 v1.6.27 和 v1.7.0 到 v1.7.12
    • docker: <v25.0.2
  • 严重性:高危

攻击机制

  1. 容器从主机操作系统角度是一个进程,通过chroot挂载独立文件系统作为根文件系统
  2. 攻击者创建指向文件描述符7和8的符号链接
  3. 执行sudo docker exec -it -w /foo <container-name> sleep 500命令
  4. runc将主机文件系统挂载到容器中,允许攻击者访问主机文件系统

攻击特点

  • 低权限要求:攻击者无需运行恶意代码或高权限即可成功攻击
  • 直接文件系统访问:可直接读取主机操作系统内的文件

案例二:Dirty Pipe Vulnerability (CVE-2022-0847)

漏洞详情

  • 发现时间:2022年3月7日
  • 影响版本:Linux内核 >v5.8.0
  • 严重性:高危

攻击机制

  1. Linux内核新管道缓冲区结构中的"flags"成员初始化不当
  2. "copy-page-to-iter-pipe"和"push-pipe"函数中的缺陷可能包含过时值
  3. 无特权本地用户可修改与只读文件关联的页面缓存中的页面
  4. 攻击者可修改如/etc/passwd等只读文件,实现权限提升

实验发现

安全威胁特征

  1. 持续性威胁:CVE-2024-21626并非首例,之前的CVE-2019-5736也是类似的runc逃逸漏洞
  2. 系统级影响:两个漏洞都可能导致攻击者获得主机操作系统权限
  3. 广泛影响:漏洞影响大量生产环境中使用的容器系统

隔离性分析

容器的安全隔离存在以下问题:

  • 共享内核风险:所有容器共享同一操作系统内核,内核漏洞影响所有容器
  • 运行时漏洞:容器运行时系统(如runc)的漏洞可能导致容器逃逸
  • 配置错误风险:不当的权限配置增加了安全风险

相关工作

虚拟化安全研究

本文建立在虚拟化技术发展的基础上,虚拟化概念自1960年代就已存在,但直到1990年代才成为主流技术。

容器安全威胁分析

相关研究主要集中在:

  1. 容器隔离机制:分析容器与传统虚拟化的隔离差异
  2. 攻击向量识别:识别容器环境中的特有攻击方式
  3. 安全加固方法:提出容器安全最佳实践

本文贡献对比

  • 系统性威胁模型:相比现有研究,本文提供了更全面的容器威胁分类
  • 实际案例分析:通过真实CVE漏洞分析提供了具体的安全威胁证据
  • 生命周期视角:从容器创建生命周期角度分析安全问题

结论与讨论

主要结论

  1. 操作系统级虚拟化的双刃剑特性:虽然提供了轻量级、高效的虚拟化解决方案,但共享操作系统内核带来了安全隔离挑战
  2. 威胁向量的多样性:容器系统面临从镜像仓库到运行时环境的全生命周期安全威胁
  3. 实际安全风险:通过CVE案例分析证实了容器逃逸和权限提升等严重安全威胁的现实存在
  4. 持续性安全挑战:容器安全是一个持续演进的问题,需要不断更新防护措施

安全最佳实践建议

  1. 镜像安全:检查从公共仓库拉取的容器镜像,扫描潜在漏洞
  2. 权限最小化:避免给容器提供不必要的权限
  3. 及时更新:保持容器引擎、运行时、工具和第三方组件的最新版本
  4. 依赖管理:确保依赖项不包含已知漏洞
  5. 安全通信:通过安全连接传递容器间信息
  6. 安全扫描:使用安全脚本定期扫描容器漏洞

局限性

  1. 研究范围限制:主要专注于Docker容器,未涵盖其他容器技术(如FreeBSD Jails、Solaris Zones)
  2. 威胁模型深度:虽然识别了主要攻击向量,但对每种攻击的具体防护措施讨论不够深入
  3. 实验案例数量:仅分析了两个CVE案例,可能不足以全面反映容器安全威胁的复杂性
  4. 定量分析不足:缺乏对不同攻击向量风险程度的定量评估

未来方向

论文提出了以下研究方向:

  1. AI驱动的威胁检测:集成人工智能技术增强容器化系统对新兴漏洞的抵御能力
  2. 安全通信协议:开发更安全的容器间通信协议
  3. 无线环境优化:针对无线环境优化容器网络
  4. 系统级创新:通过系统级创新改善资源分配,确保动态分布式基础设施中的性能和安全性

深度评价

优点

  1. 系统性分析:提供了从基础概念到实际威胁的完整分析框架
  2. 实用价值高:威胁模型和安全建议对实际部署具有指导意义
  3. 案例分析深入:通过真实CVE漏洞提供了具体的技术细节
  4. 结构清晰:论文组织结构合理,从理论到实践层层递进
  5. 时效性强:分析了最新的安全漏洞(CVE-2024-21626)

不足

  1. 理论贡献有限:主要是对现有知识的整理和分析,缺乏原创性理论贡献
  2. 实验验证不足:缺乏大规模实验验证威胁模型的有效性
  3. 定量分析缺失:未提供不同攻击向量的风险量化评估
  4. 解决方案深度不够:虽然提出了安全建议,但缺乏具体的技术解决方案
  5. 对比分析不足:与其他容器安全研究的对比分析较为薄弱

影响力

  1. 学术贡献:为容器安全研究提供了系统性的威胁分析框架
  2. 实用价值:对企业和开发者的容器安全实践具有指导意义
  3. 教育价值:适合作为容器安全教学的参考材料
  4. 研究基础:为后续深入的容器安全研究奠定了基础

适用场景

  1. 企业容器化部署:为企业制定容器安全策略提供参考
  2. 安全审计:作为容器系统安全评估的检查清单
  3. 教育培训:用于容器安全意识培训和技术教育
  4. 研究起点:为深入的容器安全技术研究提供基础框架

参考文献

论文引用了38篇相关文献,主要包括:

  • 经典操作系统教材(Tanenbaum & Bos, Modern Operating Systems)
  • 容器安全专著(Rice, Container Security)
  • 重要的安全漏洞报告(CVE-2024-21626, CVE-2022-0847)
  • 作者团队在安全、AI和IoT领域的相关研究工作

总体评价:这篇论文提供了一个较为全面的操作系统级虚拟化安全分析框架,虽然在理论创新上有限,但在实用性和系统性方面具有较高价值,适合作为容器安全领域的入门和参考材料。