沙盒化及其他措施以增强iOS和macOS上iMessage的安全性

iOS 14 中 iMessage 安全性的提升

去年 iMessage 遭受了 0-click 漏洞攻击后,苹果公司一直在努力提升其平台的安全性。Google 安全研究员 Samuel Groß 指出,iOS 14 中的一项重大变化是引入了 BlastDoor,这是一个严格沙盒化的服务,负责解析所有不受信任的消息。此外,苹果还改进了包含所有系统库的共享缓存区域的随机化,并采用了指数级限流机制来应对暴力破解攻击。

BlastDoor 的设计与功能

BlastDoor 是 iMessage 新处理管道中的核心组件,负责处理复杂的、不受信任的数据。新的 iMessage 管道涉及超过七个不同的服务,BlastDoor 是其中之一。通过这种设计,苹果能够应用更细粒度的沙盒规则。

BlastDoor 的规则非常严格,仅允许访问少数服务,包括 diagnosticdlogdopendirectorydsyslogdnotifyd。它还严格限制了文件系统交互,并完全禁止了出站网络访问和与驱动程序的交互。

崩溃监控与攻击混淆

每次 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 的安全性,使其更能抵御复杂的攻击。

阅读 29
0 条评论