paper: Container Security: Issues, Challenges, and the Road Ahead
容器相比虚拟机有许多优势,容器可以50毫秒启动,虚拟机则需要几十秒,而且在容器在资源占用方面也比虚拟机小很多。现在流行的微服务架构与容器技术完美的结合。
不过市场调查显示对其安全性的担忧是一些公司没有采用容器的主要原因。容器安全可以分为四个大类:
- 保护容器免受其内部运行的程序的攻击
- 容器间的保护
- 保护主机免受恶意容器的攻击
- 保护容器免受恶意主机的攻击
前三点的解决方案主要基于Linux内核的特性(如namespaces
, CGroups
, capabilities
, and seccomp
(secure computation mode))和Linux安全模块。第四点主要基于可信平台,如TPMs和Intel SGX。
背景
容器与虚拟机的两点主要区别:
- 容器共享主机的操作系统内核,而虚拟机拥有自己的操作系统内核
- 容器启动迅速,而虚拟机启动缓慢
然而,在计算机的世界中,共享就意味着存在被攻击的危险。
基于软件的保护机制
Linux内核特性
namaspace
命名空间为进程提供系统资源的隔离和虚拟化。
进程命名空间等。。。
控制容器可以使用什么资源(也就是隔离)。
Control Groups
控制容器可以使用多少资源。
Capability
将用户权限细分。
Secure Computation Mode(SECCOMP)
过滤系统调用的机制。
基于硬件的保护机制
TODO