本文共 1336 字,大约阅读时间需要 4 分钟。
近日,网络安全公司CyberArk的研究人员发现了一种破解流行Play-with-Docker(PWD)站点的方法,可绕过容器隔离边界限制,直接获取用户文件。不过,该错误配置目前已被修复。
近年来,容器已成为应用程序部署越来越流行的方法,为运行和管理本地和云工作负载提供了一种灵活的工作方式。近日,安全公司Cyber Ark称发现存在安全风险,攻击者可轻松访问主机系统资源。随后,研究人员向Play-with-Docker维护人员披露了此问题,目前该错误已得到解决。
PWD主要提供在线资源,让开发人员可以轻松了解和使用流行的Docker容器应用程序技术。容器和应用程序在操作系统中是互相隔离的,常规状态是用户无法绕过容器隔离限制查看底层主机操作系统。
但是,该安全公司表示可以利用Linux容器的固有弱点绕开隔离限制,与在每个实例中加载内核的虚拟机不同,容器共享相同的内核代码,这是Linux容器和Docker得以快速和敏捷的原因,但这也是其致命弱点。
研究团队通过使用debugfs,这是一个预装操作系统的Linux工具,用于探测底层主机的文件系统,轻松查看主机硬盘信息,并可从主机文件系统获取文件以准备攻击。
研究人员表示,除此之外,只需读取容器上的文件,例如内部proc/、dev/和sys/,同样可以指向内核,通过查看容器中指向底层Linux内核的文件,研究人员可以绘制容器的边界并测试其权限。比如,用户可从容器读取有关底层主机CPU信息,加载VM类型,底层操作系统是否针对Specter和Meltdown的某些变体进行修补,Bios版本等,还可通过检查容器用户的Linux功能来设置容器边界,看到容器用户被允许加载的Linux内核模块等。
该问题与使用所谓的特权容器有关,Docker使用特权标志来创建特权容器,但根据调查,PWD使用特权容器,但没有正确保护它们。特权容器比非特权容器具有更多操作和访问权限控制。Docker容器技术提供了许多帮助保护容器的机制,其中一种方法是使用所谓的用户命名空间。通过用户命名空间,研发人员可在Docker上运行各应用程序和进程,具有更多可见性和控制权限。
在许多情况下,应用程序需要比用户命名空间容器具备更多特权。保护容器隔离的一种方法是使用虚拟机VM管理程序进行额外的虚拟化抽象,VM可以在虚拟操作系统与底层操作系统之间建立更严格的隔离边界。
如果PWD将每个容器放在单独的VM中,那么这次攻击就不会发生。研究表明,虚拟机和Linux容器之间的区别与漏洞直接有关。Linux容器更加灵活,每个实例使用相同的内核代码,这就是造成漏洞的主要原因。
企业也可以通过多种方式选择在VM中运行容器。 例如,AWS于2018年11月宣布Firecracker技术,作为隔离容器的虚拟机管理器(VMM)方法。 另一个选择是Kata Containers,这是由OpenStack基金会维护的项目。此外,容器也可在传统虚拟化技术中运行,比如VMware。
目前,PWD方面通过阻止容器中的内核模块加载,避免了此次漏洞风险。但是,团队也在寻找更有用高效的辅助工具,最大限度降低和控制风险。
参考链接:
转载地址:http://ygyna.baihongyu.com/