容器逃逸
容器逃逸 是什么?
容器逃逸一种突破容器与宿主机隔离边界的攻击,使攻击者在底层节点或内核上执行代码。
容器逃逸利用容器运行时、内核或配置不当的命名空间漏洞,突破容器的隔离边界,在宿主操作系统上获得权限。典型案例包括 runC 的 CVE-2019-5736,恶意容器可覆盖 runC 二进制并在宿主上获得 root 权限,以及对特权容器、挂载 Docker socket 或共享 PID 命名空间的滥用。逃逸后,攻击者通常会在集群中横向移动,窃取 kubelet 凭据并访问其他工作负载。缓解措施包括使用 rootless 容器、seccomp 与 AppArmor 配置、只读文件系统、gVisor 或 Kata 沙箱,以及及时修补运行时漏洞。
● 示例
- 01
利用 CVE-2019-5736 覆盖 /usr/bin/runc,以 root 身份在宿主上执行代码。
- 02
特权容器挂载 /var/run/docker.sock 并创建一个挂载宿主文件系统的新容器。
● 常见问题
容器逃逸 是什么?
一种突破容器与宿主机隔离边界的攻击,使攻击者在底层节点或内核上执行代码。 它属于网络安全的 云安全 分类。
容器逃逸 是什么意思?
一种突破容器与宿主机隔离边界的攻击,使攻击者在底层节点或内核上执行代码。
容器逃逸 是如何工作的?
容器逃逸利用容器运行时、内核或配置不当的命名空间漏洞,突破容器的隔离边界,在宿主操作系统上获得权限。典型案例包括 runC 的 CVE-2019-5736,恶意容器可覆盖 runC 二进制并在宿主上获得 root 权限,以及对特权容器、挂载 Docker socket 或共享 PID 命名空间的滥用。逃逸后,攻击者通常会在集群中横向移动,窃取 kubelet 凭据并访问其他工作负载。缓解措施包括使用 rootless 容器、seccomp 与 AppArmor 配置、只读文件系统、gVisor 或 Kata 沙箱,以及及时修补运行时漏洞。
如何防御 容器逃逸?
针对 容器逃逸 的防御通常结合技术控制与运营实践,详见上方完整定义。
容器逃逸 还有哪些其他名称?
常见的别称包括: 容器突破, Docker 逃逸。
● 相关术语
- cloud-security№ 598
Kubernetes 集群攻击
针对 Kubernetes(K8s)集群的入侵,利用暴露的 API、薄弱的 RBAC 或脆弱的工作负载来控制控制平面或工作节点。
- cloud-security№ 505
IAM 权限提升
利用现有的云 IAM 权限获取更高权限,常见手段包括修改策略、传递角色或为自身授予管理员权限。
- cloud-security№ 187
云元数据 SSRF
一种服务端请求伪造攻击,通过有漏洞的应用让虚拟机查询云厂商的实例元数据服务,窃取临时凭据。
- cloud-security№ 183
云端数据外泄
未经授权将数据从云账户复制或传输出去,通常通过对象存储 API、快照、跨账户复制或攻击者控制的账户实现。
- vulnerabilities№ 860
权限提升
一类漏洞,使攻击者获得超出原本授予的权限,例如从普通用户变为管理员。
● 参见
- № 182云端挖矿劫持
- № 964沙箱逃逸
- № 346Docker Socket 攻击