苹果用于保护蓝牙外围设备的 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。
研究人员发现了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/
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。
点个 “在看” ,加油鸭~