iOS 14 中 iMessage 安全性的提升
去年 iMessage 遭受了 0-click 漏洞攻击后,苹果公司一直在努力提升其平台的安全性。Google 安全研究员 Samuel Groß 指出,iOS 14 中的一项重大变化是引入了 BlastDoor,这是一个严格沙盒化的服务,负责解析所有不受信任的消息。此外,苹果还改进了包含所有系统库的共享缓存区域的随机化,并采用了指数级限流机制来应对暴力破解攻击。
BlastDoor 的设计与功能
BlastDoor 是 iMessage 新处理管道中的核心组件,负责处理复杂的、不受信任的数据。新的 iMessage 管道涉及超过七个不同的服务,BlastDoor 是其中之一。通过这种设计,苹果能够应用更细粒度的沙盒规则。
BlastDoor 的规则非常严格,仅允许访问少数服务,包括 diagnosticd
、logd
、opendirectoryd
、syslogd
和 notifyd
。它还严格限制了文件系统交互,并完全禁止了出站网络访问和与驱动程序的交互。
崩溃监控与攻击混淆
每次 BlastDoor 崩溃时,某些苹果服务器似乎会收到通知。Groß 指出,虽然无法访问服务器代码,但这一机制可能用于警告潜在的 iMessage 攻击,或者用于混淆攻击者。例如,服务器可能会在崩溃后直接向发送者发送未处理消息的送达回执,这可能是为了破坏攻击者的崩溃预测技术。
Swift 语言的使用
BlastDoor 使用 Swift 编写,这减少了内存损坏漏洞的可能性。然而,BlastDoor 仍然依赖部分用 Objective-C 编写的旧代码,例如用于 XML 解析的 libxml
和用于有效载荷解密的 NSKeyedUnarchiver
。
共享缓存区域的改进
苹果还修复了其平台的一个架构弱点,即共享缓存区域。该区域包含大多数系统库,过去只在每次启动时随机化一次,因此所有进程的共享缓存地址相同。这使得攻击者更容易推断共享缓存的基地址,从而破坏地址空间布局随机化(ASLR)。苹果的解决方案是创建一个基于内核的机制,在检测到崩溃后为受攻击的服务分配一个新的重定位共享缓存镜像。
指数级限流机制
为了进一步增强 iMessage 的安全性,苹果引入了指数级限流机制。当检测到崩溃时,如果崩溃的服务在其 launchd
.plist 文件中启用了 _ExponentialThrottling
,其重启将被延迟,延迟时间呈指数增长,最长可达 20 分钟。这一机制目前似乎仅用于 BlastDoor 服务。
总结
Groß 的文章详细介绍了 iOS 14 中 iMessage 的新处理管道和安全功能,包括 BlastDoor 的设计、崩溃监控、Swift 语言的使用、共享缓存区域的改进以及指数级限流机制。这些改进显著提升了 iMessage 的安全性,使其更能抵御复杂的攻击。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。