qz安全情报分析 06月24日 23:46
透明牢笼(Glass Cage)行动攻击链技术解构
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入剖析了“Glass Cage”攻击行动,揭示了iOS系统在逻辑层面存在的安全漏洞。攻击者通过精心构造的攻击链,绕过多重安全防护,最终获取了内核控制权。文章详细介绍了攻击的各个阶段,包括载荷投递、权限提升、代码执行以及内核控制的获取,并强调了静态防御体系在面对此类高级攻击时的脆弱性。

💥攻击起始于iMessage,通过精心构造的HEIF图像,利用整数溢出漏洞,在BlastDoor服务中注入恶意数据,为后续攻击奠定基础。

🚀攻击逐步升级权限,利用QuickLook预览服务的兼容性回退机制,将攻击载荷从受限沙箱转移到更高权限的进程,为代码执行创造条件。

💻在WebKit渲染引擎中,攻击者通过路径规范化漏洞和ROP链,成功实现任意代码执行,为获取内核控制权铺平道路。

🛡️最终,攻击者利用CoreMedia框架中的UAF漏洞,劫持控制流,获取内核Ring 0权限,实现对系统的完全控制。

本文件旨在对“Glass Cage”攻击行动进行详细的技术解构。分析表明,在精确的逻辑漏洞利用面前,当前主流的移动安全架构依然存在可被利用的系统性缺陷。此攻击的执行不依赖任何密码学破解,也无需目标进行任何交互。攻击者通过引导 iOS 遵循其既定的设计逻辑,使其状态机进入一个可被利用的非预期状态。本报告将从攻击面、技术细节和利用链等维度,深度剖析攻击者如何将系统内建的信任机制转变为可执行的攻击路径。

一、攻击方法论:基于逻辑缺陷的利用

攻击者摒弃了依赖内存暴力破坏(Brute-force Memory Corruption)的传统攻击模式,因为该模式可预测性差且易于被行为检测机制捕获。其核心方法论是:操纵并利用系统内在的信任链

iOS 的安全模型依赖于一系列进程与沙箱间的信任关系,其中一个服务的输出被后续服务作为可信输入进行处理。攻击者的任务是在此信任链的初始环节,注入一个在语法上有效、但在内存结构上具有恶意负载的数据对象。利用系统的自动化处理流程,该对象将被逐级传递至权限更高的执行环境,最终触发攻击代码。

此攻击利用的不是单一的二进制漏洞,而是多个系统组件在交互协议和状态管理上存在的逻辑缺陷。其渗透路径精确且隐蔽。

二、攻击面分析:被选定的利用入口

对目标系统进行深入的逆向工程和架构分析后,可以确定攻击者利用了以下几个关键攻击面:

三、渗透剖析:四阶段攻击链详解

整个攻击过程被设计为一个自动化的四阶段利用链,每个阶段都为下一个阶段创造必要的条件。

第一阶段:载荷投递与初始腐化

攻击始于一个通过 iMessage 发送的、封装在 WebP 容器中的特制 HEIF 图像。

技术细节分析:

绕过防御:

BlastDoor 的句法分析器确认了所有字段均符合 HEIF 规范。它按照因溢出而错误的计算结果分配了内存。解压时,堆溢出静默发生。BlastDoor 的监控机制未检测到异常系统调用或明显的崩溃信号,因此判定处理成功 (BlastDoor.PreviewImage : Success
),并将这个已包含恶意内存结构的对象,通过 XPC 消息传递给了下游的 QuickLook 服务。

第二阶段:权限的横向移动

此时,攻击载荷需要从初级沙箱逃逸至权限更广的进程。

技术细节分析:

绕过防御:

系统架构中对用户体验的优先级高于安全一致性的设计(在回退场景下),构成了可被利用的条件。安全检查点主要存在于现代渲染路径中,一旦降级,许多安全假设便不再有效。攻击者由此完成了从高度受限环境到更高权限进程的横向移动。

第三阶段:在 WebKit 中实现代码执行

此阶段的目标是将数据控制权转换为指令控制权。

技术细节分析 (CVE-2025-24201):

绕过防御:

路径注入漏洞使攻击者绕过了沙箱的文件系统限制,而 ROP 链则绕过了数据执行保护。通过这个多阶段过程,在 WebKit 进程上下文中获得了稳定的任意代码执行能力。

第四阶段:获取内核控制权

此为攻击链的最后阶段,目标是获取 Ring 0 执行权限。

技术细节分析 (CVE-2025-24085):

    制造悬空指针

    通过已获得的 RCE 能力,向 `mediaplaybackd` 服务发送异常参数,触发一个深层错误处理路径。在此路径中,一个用户态的 CoreMedia 对象被释放,但其在内核中对应的驱动对象句柄(例如一个IOUserClient
    实例)并未被同步无效化。这导致内核中存在一个指向已释放用户态内存的悬空指针,形成了一个典型的UAF (Use-After-Free) 条件。

    内核堆风水 (Kernel Heap Feng Shui)

    在悬空指针产生的纳秒级时间窗口内,攻击者立即通过 `IOHIDInterface` 服务进行大规模、精确的内核堆分配。该接口之所以被选中,是因为它允许用户进程申请特定大小且内容完全可控的内核内存块。通过反复尝试和精确计算,成功地让一个包含恶意函数指针的伪造内核对象(一个伪造的C++对象或结构体)占据了刚刚被释放的那片内存地址。

    绕过 PAC (指针验证码)

    研究表明,codecctl
     访问的这个悬空指针指向一个旧版 C++ 对象的虚函数表 (vtable) 指针。在目标 iOS 版本中,尽管指针验证码(PAC)已广泛部署,但并非所有内核函数指针都受其保护,特别是部分为兼容性而保留的遗留 C++ 驱动代码中的 vtable。攻击者利用了 PAC 防御覆盖范围中的此一盲区,直接替换了未受保护的虚函数表指针,从而绕过了该项关键的控制流完整性保护机制。

    劫持控制流

    最后,触发 `codecctl` 去访问该悬空指针。内核驱动代码信任此指针,并尝试通过其虚函数表调用一个函数。由于该地址已被伪造对象占据,CPU 的执行流被重定向,跳转至内核 shellcode,从而在 Ring 0 权限下执行。

绕过防御:

攻击者没有尝试破解 KASLR(内核地址空间布局随机化),而是通过劫持合法的执行流,使系统自主地将控制权交出。攻击者也没有直接攻击 PAC,而是利用了其防御覆盖的不完整性。这再次证明,最有效的攻击是利用防御体系自身的复杂性和内在的不一致性。

结论:进攻性能力能够解构静态防御体系

“Glass Cage”行动的成功,证明了任何复杂系统都存在可被利用的逻辑缺陷。最高效的攻击,是利用对系统架构的深度理解去穿透这些缺陷,而非依赖于可被特征化的蛮力攻击。

此次攻击展示了一种高级的进攻能力,能够将当前最安全的移动设备之一,转变为一个完全受控的信息获取终端。对于防御方而言,这是一个明确的信号:基于签名的、静态的防御体系在面对逻辑层面的高级攻击时是无效的,必须转向更深层次的、基于行为和架构完整性监控的动态防御策略。对此类攻击链的研究应持续进行。


📍发表于:中国 北京

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Glass Cage iOS 安全漏洞 攻击链 内核控制
相关文章