去年iPhone 16发布的时候,苹果大肆宣传了A18芯片带来的众多引人注目的升级特性,但有一个技术特点好像没有引起人们的特别关注,那就是名字听上去怪怪的Secure Exclave技术。到底什么是Secure Exclave技术(后续简称Exclave技术),这项最早在Apple M4芯片上应用的技术又实现了什么功能呢?今天我们的阅读推荐就来介绍一篇介绍Exclave技术的文章 On Apple Exclaves
前几年大家被Intel的SGX洗脑,不用背GRE单词也熟知了一个叫做Enclave的单词,可是如果你把Enclave和今天介绍的Exclave都放到电子词典里面去查一查,你会发现,它们的中文翻译都是“飞地”(讲到飞地,可以顺便讨论一下那个关于上海最高点的梗)。所以看起来Exclave技术很可能跟Enclave技术有点关系,事实也确实如此。不过我们首先要了解一下到底Exclave的引入是为了实施什么样的安全防护?
在苹果系列操作系统(macOS、iOS、tvOS等等)中,使用的内核XNU是一个混合型的架构,基于Mach微内核(Microkernel)和BSD宏内核(Monolithic Kernel)共同构建而成。最近几年来的研究趋势表明,全世界的操作系统内核都在想办法引入不同的安全隔离机制,实际上早在2013年发布iPhone 5s的时候,苹果就已经把加密和生物信息识别等核心安全功能放在一个叫做SepOS的微型操作系统(其内核是基于L4微内核魔改的cL4微内核),然后把这个叫做Secure Enclave,但它只能支持对一些非常特殊的功能实施安全隔离,在内核其他代码的隔离上,还有很多事情要做。
从2017年开始,苹果引入了Page Protection Layer(PPL)机制,顾名思义,就是一种让某些“特权”代码拥有管理(特定)页表的能力,而其他“普通”的内核代码就不能随便乱改页表;随后在iOS 17中,苹果又设计了叫做Secure Page Table Monitor(SPTM)的机制,从这个时候开始,XNU内核就不再只是有一些“安全特区”的设计,而是开始把内核全面划分成不同的区域,而且SPTM还把iOS那个臭名昭著的代码签名机制带到了内核,只要没有签名的代码页都不允许执行。
这一步一步地对内核进行安全改造,到了2024年,XNU终于大大方方地宣称,内核各部分的代码在Exclave的加持下,实施了全面的安全隔离。虽然这部分技术的细节苹果并没有公开,但是我们今天介绍的这篇文章还是进行了一些分析和猜测,下面这幅示意图就大致描绘了Exclave的特点。从图中可以看到,首先Exclave吸收了TrustZone的特点,它似乎是一个运行在XNU内核中但是又独立于XNU的存在,其内核(可能)基于经过全面形式化验证的seL4微内核,然后把相关的运行代码和原有的XNU内核之间实施隔离,同时还用SPTM去保证从XNU内核模式到Exclave模式的切换不会被攻击。
更重要的是,在Exclave这个设计中,引入了一个叫做conclave(中文翻译为“秘密会议”,这个似乎是在向今年落选奥斯卡最佳男主角的老帅哥、伏地魔伏爵爷的扮演者拉尔夫·费因斯那部《Conclave》致敬)的概念。所以什么是conclave呢(引入这么多名词烦不烦)?
引入conclave,主要目的是把需要管理的资源分为不同的domain,每组资源放在一个特定的conclave里面,然后再想办法让XNU内核去安全地使用。在所有的安全隔离设计中,最重要的设计选择除了如何隔离之外,就是如何进行不同隔离域之间的通信。在Exclave设计上,目前我们已知的技术细节是引入了所谓的Downcall和Upcall,让XNU内核通过Downcall去切换运行模式,并触发Exclave内部的安全代码执行,同时允许安全代码通过Upcall去访问XNU内核空间的相关资源。这个Upcall实际上允许Exclave启动一个临时的线程回到insecure world去做点事情,但是马上就要被召唤回来(执行返回至secure world),不允许这个线程在执行结束后留在insecure world,也不允许它再去调用另一个Downcall,这样就保证了这个“代理线程”的可靠。
最后,在Exclave设计里面,还有一个叫做XNUProxy的东西,但是这个XNUProxy只闻其名,目前还不太清楚到底它是在哪里发挥作用,这也是有待大家继续去挖掘的很多设计考虑之一。
总之,Exclave是XNU内核的一个相当大的设计改进,可以看出来苹果在内核的架构调整上花了很多工夫,希望能够通过不断的隔离,尽量让安全漏洞(估计消除不掉)能够造成的破坏不断被限制到更小的范围内。尽管这么多年了,我们天天不厌其烦地看到各种各样的隔离(以及它们宣称所能带来的“丰功伟绩”),然后也不断看到很多隔离机制的塌房,但是一个生在2025年的黑客肯定比当年的Robert Morris面临太多的限制,还要跟AI去竞争漏洞挖掘的机会,诶,生不逢时,错,错,错!
文章:https://randomaugustine.medium.com/on-apple-exclaves-d683a2c37194
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2025-03-12 此 Exclave 非 Enclave
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论