微软Azure服务架构中的“FabricScape”新Bug影响Linux工作负载
来自Palo Alto Networks Unit 42的网络安全研究人员披露了一个影响微软服务结构的新安全漏洞的细节,该漏洞可
能被利用来获得更高的权限,并夺取集群中所有节点的控制权。
这个问题被称为FabricScape (CVE-2022-30137),它可以被配置为具有运行时访问权限的容器利用。在Service Fa
bric 9.0 Cumulative Update 1.0中,它已经在2022年6月14日进行了补救。
Azure Service Fabric是微软的平台即服务(PaaS)和一个容器协调器解决方案,用于跨机器集群构建和部署基于微服
务的云应用程序。
微软表示:“该漏洞使恶意行为者能够访问受损容器,提高特权,获得对资源主机SF节点和整个集群的控制。”这是协
调披露过程的一部分。“虽然这个bug在两个操作系统平台上都存在,但它只在Linux上可以利用;Windows已被彻底
审查,发现不容易受到这种攻击。”
Service Fabric集群是由多个节点(Windows Server或Linux)组成的网络连接集,每个节点都被设计用来管理和执行由
微服务或容器组成的应用程序。
第42单元识别的漏洞存在于一个名为诊断收集代理(DCA)的组件中,该组件负责收集诊断信息,并与所谓的“符号链
接竞赛”有关。
在假设的场景中,能够访问被破坏的容器化工作负载的攻击者可以用一个恶意的符号链接来替换代理读取的文件
(“ProcessContainerLog.txt”),然后利用这个符号链接来覆盖任何任意文件,认为DCA作为节点上的根运行。
42单元的研究员Aviv Sasson说:“虽然这种行为在Linux容器和Windows容器上都可以观察到,但它只在Linux容器中
可以利用,因为在Windows容器中,没有特权的参与者无法在那种环境中创建符号链接。”
随后,通过利用该缺陷覆盖主机上的“/etc/environment”文件来实现代码执行,然后利用内部每小时一次的cron作
业(以root身份运行)导入恶意环境变量,并在受损的容器上加载一个恶意共享对象,该对象在root上下文中授予攻击者
一个反向shell。
“为了获得代码执行,我们使用了一种称为动态链接器劫持的技术。我们滥用了LD_PRELOAD环境变量,”Sasson解
释道。在一个新进程的初始化过程中,链接器加载这个变量指向的共享对象,通过这个共享对象,我们将共享对象注入
到节点上有特权的cron作业中。
虽然到目前为止还没有证据表明该漏洞在现实世界的攻击中被利用,但至关重要的是,组织应立即采取行动,确定其环
境是否易受影响,并实施补丁。