面向Linux kernel的轻量化文件系统安全虚拟化技术
容器作为一种轻量级虚拟化技术,具有启动快速、部署方便、资源占用少、运行效率高等优点。容器将一个应用的代码、数据和依赖项打包成一个独立的运行环境,利用如namespace和cgroup等多个内核机制,实现了应用运行环境的轻量级隔离。这种隔离包括文件系统、网络、进程等系统资源,确保一个容器内的应用不受其他容器或主机的影响。近年来,容器技术在云计算平台和数据中心的资源管理、系统运维和软件部署中得到广泛应用。其优势不仅使其成为云计算领域的热点技术,而且具有改变软件整体生态的潜力。容器化的应用打破了传统软件开发与部署的限制,提高了应用程序的可移植性和可扩展性,为快速开发、交付和运维提供了强大支持。
然而,随着云原生开发实践的普及以及容器新特性如复制和卷的引入,主机与容器之间的交互变得不可避免。这种交互的必要性使得容器技术更加灵活,但同时也为安全漏洞提供了新的机会,容器化的恶意应用程序有可能突破隔离,尤其是文件系统的隔离。恶意应用程序可以通过打破文件系统的隔离,实现容器的逃逸,这一挑战已经成为制约容器发展和应用的主要技术瓶颈。
目前业界主要有三种实现强隔离性的技术思路:首先,基于轻量级虚拟机的方式实现强隔离性,其中典型代表是Kata Containers;其次,通过使用用户态进程模拟内核提供服务,典型实现为gVisor;最后,借助Linux内核中现有的安全机制,如Capabilities、Seccomp、Apparmor等,对Docker容器进行安全强化。前两种技术思路虽能实现较强的安全隔离,但性能相较于原生Docker容器有一定下降;而第三种思路在性能损失方面相对较小,但由于与主机操作系统内核耦合紧密且共享内核数据,隔离性相对前两者较弱。
因此,为了解决上述问题,本项目的主要目标是采用轻量级、高效的设计理念,实现更强大的Linux文件系统隔离,同时最小化对性能的影响。可对现有轻量安全虚拟化技术进行优化,或提出新的轻量安全虚拟化方法并实现。
2024全国大学生操作系统比赛的“OS功能挑战”赛道
2.3 操作系统内核大类 --> 2.3.1 虚拟化
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生或研究生(2024年春季学期或之 后毕业的本科生或研究生)
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2024全国大学生操作系统比赛”的章程和技术方案要求
- 陈博翰
- 单位:麒麟软件
- github ID:https://github.com/kylin-cbh
- email:chenbohan@kylinos.cn
中等
- 基于Linux内核,内核版本>=6.60,不限定硬件体系结构
- 兼容现有容器技术生态 (若修改或实现新的容器运行时,须提供兼容OCI标准的运行时)
- Katacontainers https://katacontainers.io/
- gVisor https://gvisor.dev/
- Seccomp https://man7.org/linux/man-pages/man2/seccomp.2.html
- Capabilities https://man7.org/linux/man-pages/man7/capabilities.7.html
- GPL-2.0 License
能够抵御超90%的容器逃逸漏洞
不影响原始内核的功能,兼容应用层容器工具
给内核带来的性能开销小于5%,给容器功能带来的性能开销小于5%