Broadcom 芯片被用于大约十亿台设备中,例如所有 iPhone、MacBook、Samsung Galaxy S 系列、较旧的 Google Nexus 系列、较旧的 ThinkPad、Raspberry Pi、各种物联网设备等等。2016 年,Cypress 收购了 Broadcom 的物联网部门。此后,固件变体略有分化,因为 Broadcom 保留了 Apple 和 Samsung 等非物联网客户。然而,固件交互和更新机制保持不变。我们对操作系统如何修补此固件并与之交互进行了逆向工程。在此基础上,我们开发了一个蓝牙实验框架,能够对固件进行修补。这实现了许多功能,否则这些功能只能通过全栈软件无线电实现,例如在链路层注入和监控数据包。
InternalBlue 不仅被用于我们在安全移动网络实验室(SEEMOO)的自主研究。KNOB 和 BIAS 攻击原型也是使用 InternalBlue LMP 消息实现的,SweynTooth 攻击也使用 InternalBlue 进行了制作 LCP 消息的实验。请注意,与 btlejack 或 Ubertooth 等工具不同,InternalBlue 并非旨在执行中间人攻击。然而,运行 InternalBlue 的设备可以发送任意数据包,也可以将这些数据包注入到现有连接中。在监控期间,运行 InternalBlue 的设备收到的所有数据包都会被捕获,并且不会丢失数据包。InternalBlue 在分析加密连接或经典蓝牙方面没有任何问题。如果你有特定的安全研究功能需求,欢迎提交工单。
除了安全研究之外,InternalBlue 还为进一步分析(例如低功耗蓝牙性能统计和改进)提供了可能。任何可以在蓝牙协议栈中改进的地方,都可以直接在现成设备上进行测试。
我们最近的研究成果是 Frankenstein,它能够模拟固件,包括线程切换和虚拟调制解调器输入。模拟的固件可以连接到 Linux 主机。因此,该方法是全栈式的。我们主要用它进行模糊测试,并发现了包括需要触发主机响应的漏洞。Frankenstein 位于单独的仓库中,但它依赖 InternalBlue 在物理设备上获取状态快照等。
此外,我们刚刚发布了 Polypyus。它能够进行纯二进制文件的比对,不依赖 IDA 和 Ghidra。然而,它通过识别良好起点来集成到该工作流程中,以便进行进一步分析。我们已经尝试将其用于各种 Broadcom Wi-Fi 和蓝牙固件。
想找我们在分析 CVE-2020-6616 时所做的随机数生成器测量结果吗?你可以在这里找到它们。
还有一些适用于 HCI 的、更动态的钩子,可用于 Frida on iOS and Android。我们用它来研究 MitM 攻击时用户界面中的警告行为。不过这也可能对许多其他实验有用。
由于 Spectra 👻🌈,在驱动程序初始化后,读写 RAM 命令会被禁用。相关的 Android 和 iOS 说明中描述了解决方法,如有需要,其他设备的绕过方法也将陆续提供。
版权所有 2018-2021 The InternalBlue Team
特此免费授予获得本软件及关联文档文件(“软件”)副本的任何人无限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向获得本软件的人员同样这样做,但须遵守以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质部分中。
本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。