文章目录
1、前言
什么是容器逃逸?
所谓容器技术,是在操作系统层实现虚拟化,容器内所有进程都依赖于宿主机内核,相比于传统虚拟化技术(如 VMware 等)更加轻量级。同时容器利用操作系统自身机制如 Namespace 和 CGroup等,提供了相对独立的应用程序运行环境和资源控制。
其中,每一个容器都拥有一个独立的进程运行空间,理想情况下,容器中的进程只能在该容器的进程运行空间中运行。若容器中存在「有恶意进程脱离容器」的进程运行空间,继而对宿主机或其他容器展开攻击,这种现象被称为容器逃逸。
目前产生逃逸的原因总共有三种:
1. 由内核漏洞引起。
2. 由 docker 软件设计引起。
3. 由特权模式与配置不当引起。
基于上述三种产生逃逸的原因,veinmind-tools 收集了每种逃逸原因对应的逃逸细节,提取并整合其逃逸原理及方式,并据此制定了完备详尽的安全检测规则以实现对于容器以及镜像的逃逸风险检测,旨在避免由于容器逃逸所导致的进一步损害。在此基础上,veinmind-tools 项目添加了一个新的插件,veinmind-escalate。