苹果XNU内核中Exclave架构深度解析
2025-03-09
本文深入探讨了苹果XNU内核中Exclave的安全架构。Exclave通过构建一个两级内核表来管理资源,其中包含多个域(如com.apple.kernel),每个域包含多个资源(如服务、缓冲区)。Conclave作为一种特殊的资源,允许一组服务共享访问,并通过Conclave Manager进行控制。XNU新增了_exclaves_ctl_trap()系统调用,用于管理Exclave的各种操作,包括启动Conclave、查找服务和执行Downcall(安全世界代码执行)。Upcall则允许安全世界代码调用XNU内核中的特定功能。此外,文章还详细描述了Exclave的启动过程(三个阶段),以及SPTM内存类型系统如何为Exclave提供内存访问控制。