什么是docker容器逃逸
Docker容器逃逸:概念与防护
Docker容器逃逸是指攻击者从受限制的容器内部突破隔离边界,获取宿主机系统权限或访问其他容器资源的行为。这种安全威胁可能导致整个宿主系统被攻陷。
常见的容器逃逸方式
特权模式逃逸
- 当容器以
--privileged模式运行时,拥有几乎所有的宿主机能力
- 攻击者可挂载宿主机文件系统进行修改
内核漏洞利用
- 如Dirty COW(CVE-2016-5195)、shocker(CVE-2014-3519)等漏洞
- 利用内核缺陷突破隔离机制
挂载逃逸
- 不当配置的卷挂载(如
/proc、/sys等敏感目录)
- 通过写入宿主机文件系统实现逃逸
Docker Socket逃逸
- 容器内挂载了
/var/run/docker.sock
- 通过API与Docker守护进程交互创建新容器
容器服务漏洞
- 如runc漏洞(CVE-2019-5736)等
- 利用容器运行时自身的安全缺陷
防护措施
最小权限原则
- 避免使用
--privileged模式
- 使用
--cap-drop=ALL和--cap-add精细控制能力
及时更新
安全配置
- 限制容器资源(cgroups)
- 启用用户命名空间隔离
- 使用只读文件系统(
--read-only)
网络隔离
安全工具
- 使用gVisor、Kata Containers等更安全的运行时
- 部署容器安全扫描工具(如Clair、Aqua Security)
容器逃逸是容器安全的重要威胁,通过合理配置和持续监控可有效降低风险。