新Docker容器转义错误影响Microsoft Azure功能

网络安全研究人员Paul Litvak今天披露了Microsoft Azure函数中的一个未修补漏洞,攻击者可利用该漏洞升级权限,并逃离用于托管权限的Docker容器。
这些发现是Intezer实验室对Azure计算基础设施调查的一部分。
在向微软披露之后,据说这家Windows制造商“确定该漏洞对功能用户没有安全影响,因为主机本身仍然受到另一个防御边界的保护,以防我们在容器主机中达到的较高位置。”
Azure Functions类似于Amazon AWS Lambda,是一个无服务器解决方案,它允许用户运行事件触发代码,而无需显式地配置或管理基础设施,同时可以根据需求扩展和分配计算和资源。
通过将Docker整合到组合中,开发者可以在云端或本地轻松部署和运行Azure功能。
由于触发器代码是一个配置为调用Azure函数的事件(例如HTTP请求),研究人员首先创建了一个HTTP触发器,以便在函数容器上站稳脚跟,使用它查找属于具有“root”权限的进程的套接字。
从那里,一个与“Mesh”二进制文件相关的特权进程被发现包含一个漏洞,可以利用该漏洞授予运行上述函数的“app”用户root权限。
虽然Mesh二进制文件本身几乎没有文档来解释它的用途,但Intezer的研究人员在一张公开的Docker图像中找到了对它的引用,他们用这张图像进行反向工程并实现特权升级。
在最后一步中,分配给容器的扩展权限(使用“-privileged”标志)被滥用,以逃离Docker容器并在主机上运行任意命令。
Intezer还发布了GitHub上的概念验证(PoC)攻击代码,以探测Docker主机环境。
Intezer实验室的研究人员说:“这样的例子强调,漏洞有时是云用户无法控制的。”。“攻击者可以通过易受攻击的第三方软件找到进入的途径。
“至关重要的是,当攻击者在您的生产环境中执行未经授权的代码时,您必须有适当的保护措施来检测和终止。这种零信任心态甚至得到了微软的响应。”