苹果用于保护蓝牙外围设备的 MagicPairing协议被曝存在10个 0day 漏洞。

德国达姆斯塔特工业大学的研究人员查看了 MagicPairing 协议后发现它在 iOS、macOS 和 PTKit 中的三个实现之间存在10个未披露缺陷且尚未修复。

PTKit 是基于 PTKit 框架的实时操作系统,用于苹果 AirPods 1、2和 Pro,Siri Remote 2,Apple Pencil 2 和 Smart Keyboard Folio 中。虽然并非众人皆知,但得益于苹果的 AirPods 受众覆盖超过一半的全球无线耳机市场而广为传播。

研究员 Dennis Heinze、Jiska Classen 和 Felix Rohrbach 发布论文《MagicPairing:苹果保护蓝牙外围设备的方法 (MagicPairing: Apple’sTake on Securing Bluetooth Peripherals)》中自出,MagicPairing 协议克服了蓝牙设备配对的两个缺点:糟糕的可扩展性和易崩溃的安全模型(如果永久密钥 Link Layer 或 Long-Term Key 受陷则会崩溃)。

尽管如此,研究员指出,MagicPairing 仍然存在一些不太严重的问题,“由于 MagicPairing 用于配对和加密前,因此它提供了庞大的零点击无线攻击面。我们发现所有的实现欧具有不同的问题,包括锁定攻击和可导致百分之百 CPU 负载的拒绝服务。我们在开展通用的无线测试和 iOS 进程内模糊测试时发现了这些问题。”

当两款蓝牙设备连接时,他们生成了用于保护设备真实性、信息完整性和信息机密性的永久密钥。除非用户手动删除取消设备配对,则它一直存在,而且它是获取更短暂的会话密钥的来源。

MagicPairing 将苹果 iCloud 服务加入进来。在每个会话中,它基于特定用户的 iCloud 密钥生成新的永久性密钥,而对永久性密钥的安全改进未改变。研究人员表示MagicPairing 通过对称棘轮算法和经过身份验证的加密来实现这一点。论文指出,“MagicPairing 协议的安全目标似乎是为每次连接提供认证和新的共享密钥。它使用对称棘轮算法和经过身份验证的加密来实现这些目标。”

研究人员使用名为 ToothPicker 的代码执行无线模糊测试和进程内模糊测试,并表示通过蓝牙测试框架 InternalBlue 发布 ToothPicker。

10 0day,代码质量低下

研究人员发现了8个 MagicPairing 和2个 L2CAP 漏洞,它们可导致崩溃、CPU 过载且配对设备关联取消。论文提到在2019年10月20日至2020年2月13日披露了这些漏洞且漏洞尚未修复。他们在上周日发布了 PoC 代码。

其中一名研究员 Jiska Classen 认为苹果之所以不采取行动,可能是因为这些漏洞的严重程度不够高,“他们修复可导致远程代码执行后果的漏洞的速度非常快”。

论文指出,苹果在 iOS 和 macOS 中的 MagicPairing 实现的日志信息和 macOS Bluetooth 守护进程 bluetoothd 函数名称中存在大量拼写错误。论文认为“错误根据栈的不同而不同,每个栈可能是由不同的开发人员实现的。虽然拼写错误和实现中的缺陷之间并不直接相关,但这让人认为代码并未仔细审查,开发工作很可能是外包完成的。”

苹果尚未置评。

Dennis Heinze 通过使用自创的 ToothPicker 工具发现了这些低质量代码中的漏洞。Classen 指出从中可以认为苹果并未对该蓝牙协议的大部分栈进行模糊测试。不过一些部分也获得良好测试。很可能这是由负责某些协议的不同团队造成的。

然而,Classen 认为对于某些协议而言,开源无线测试工具就可以进行测试,其他安全研究员可能已经借此仔细检查苹果的蓝牙栈。她指出,苹果未修复只需稍加检查就能发现的 bug 让她惊讶。不过这可能和研究员的论文因为 WiSec 会议改为线上举行而提前发布有关。尽管如此,苹果获悉会议时间变更的消息后并未阻止研究员发布论文。但即使是已存在多时的bug也并未修复,这一点很可能和论文发布时间变更没有丝毫关系。

完整论文请见:

https://arxiv.org/pdf/2005.07255.pdf

原文链接

https://www.theregister.co.uk/2020/05/18/apples_bluetooth_flaws/

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。