[论文解读] Frankenstein: Advanced Wireless Fuzzing to Exploit New Bluetooth Escalation Targets
Frankenstein 是一种基于固件仿真技术的模糊测试框架,通过在虚拟化环境中执行专有固件,实现了对蓝牙芯片的高速、可重复且可调试的空中远程漏洞发现。该框架在博通(Broadcom)和赛普拉斯(Cypress)蓝牙协议栈中发现了无需交互的远程代码执行(RCE)漏洞,包括一个Wi-Fi共存缺陷和一个蓝牙5.2规范设计问题,并揭示了一种与芯片无关的Android RCE(BlueFrag)。
Wireless communication standards and implementations have a troubled history regarding security. Since most implementations and firmwares are closed-source, fuzzing remains one of the main methods to uncover Remote Code Execution (RCE) vulnerabilities in deployed systems. Generic over-the-air fuzzing suffers from several shortcomings, such as constrained speed, limited repeatability, and restricted ability to debug. In this paper, we present Frankenstein, a fuzzing framework based on advanced firmware emulation, which addresses these shortcomings. Frankenstein brings firmware dumps "back to life", and provides fuzzed input to the chip's virtual modem. The speed-up of our new fuzzing method is sufficient to maintain interoperability with the attached operating system, hence triggering realistic full-stack behavior. We demonstrate the potential of Frankenstein by finding three zero-click vulnerabilities in the Broadcom and Cypress Bluetooth stack, which is used in most Apple devices, many Samsung smartphones, the Raspberry Pis, and many others. Given RCE on a Bluetooth chip, attackers may escalate their privileges beyond the chip's boundary. We uncover a Wi-Fi/Bluetooth coexistence issue that crashes multiple operating system kernels and a design flaw in the Bluetooth 5.2 specification that allows link key extraction from the host. Turning off Bluetooth will not fully disable the chip, making it hard to defend against RCE attacks. Moreover, when testing our chip-based vulnerabilities on those devices, we find BlueFrag, a chip-independent Android RCE.
研究动机与目标
- 为解决空中模糊测试在发现闭源蓝牙固件远程代码执行(RCE)漏洞时存在的低速、可重复性差和可调试性弱等局限性。
- 通过仿真固件并注入原始无线帧,同时保持主机操作系统互操作性,实现全栈、真实的利用链。
- 识别并披露广泛部署于苹果(Apple)、三星(Samsung)和树莓派(Raspberry Pi)设备中的蓝牙芯片中的零点击RCE漏洞。
- 揭示蓝牙5.2规范及共存机制中的设计缺陷,这些缺陷可导致权限提升超出蓝牙芯片边界。
- 通过固件级RCE证明在Android设备上实现持久性、与芯片无关的远程利用(如BlueFrag)的可行性。
提出的方法
- 使用QEMU用户模式仿真在虚拟化环境中执行专有蓝牙固件镜像,实现无需逆向工程的完整固件执行。
- 在帧接收后引入基于快照的恢复机制,以加速模糊测试并保持与主机操作系统的状态一致性。
- 将原始无线帧注入仿真芯片的虚拟调制解调器,以触发固件行为并监控导致崩溃的输入。
- 采用C编程环境与固件镜像交互,支持假设验证与代码路径分析。
- 利用仿真技术分析传统空中模糊测试无法检测的非崩溃但危险的RCE漏洞。
- 结合固件仿真与硬件共存分析,利用Wi-Fi/蓝牙资源共享机制实现权限提升。
实验结果
研究问题
- RQ1固件仿真能否实现对闭源蓝牙固件的高速、可重复且可调试的空中模糊测试?
- RQ2在无需配对或用户交互的情况下,蓝牙芯片中存在哪些可利用的RCE漏洞?
- RQ3蓝牙固件漏洞在多大程度上可导致权限提升,突破芯片边界影响Wi-Fi或操作系统内核?
- RQ4博通等组合芯片中的共存机制如何使Wi-Fi子系统面临远程利用?
- RQ5蓝牙5.2规范中是否存在允许提取链路密钥或实现远程代码执行的协议级缺陷?
主要发现
- 与传统空中模糊测试相比,Frankenstein将模糊测试速度提升了100倍以上,支持与主机操作系统的实时交互,并实现全栈漏洞检测。
- 在博通(Broadcom)和赛普拉斯(Cypress)蓝牙协议栈中发现了三个零点击RCE漏洞,包括一个在BLE中发现的漏洞和两个在经典蓝牙中的漏洞,其中一个导致iPhone 11内核崩溃。
- 发现了一个Wi-Fi/蓝牙共存缺陷,通过利用共享射频资源,可远程导致多个设备(包括iPhone和三星Galaxy S8)内核崩溃。
- 识别出蓝牙5.2规范中的一个设计缺陷,允许从主机提取链路密钥,从而实现长期身份认证绕过。
- 在Android系统中发现了BlueFrag RCE漏洞,证明了一条与芯片无关的远程代码执行链,可在无需固件特定补丁的情况下跨多种设备运行。
- 负责任披露揭示了严重的延迟问题:CVE-2019-11516在博通公司内部自2018年2月起已知,但直到2019年9月才在三星Galaxy S8上修复,凸显了嵌入式固件补丁发布中的关键挑战。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。