您好,欢迎访问Broadcom代理商官网
新闻资讯

服务热线4000-969-680

公司新闻

首页 > 新闻资讯 > 公司新闻

对Broadcom无线芯片组的逆向分析研究

作者:小编 发布时间:2022-10-26 14:47:32点击:

Broadcom是全球无线设备的主要供应商之一。由于这些芯片用途广泛,因此构成了攻击者的高价值目标,因此,在其中发现的任何漏洞都应视为带来了很高的风险。在此博客文章中,我记录了我在Quarkslab实习的情况,其中包括获取,反转和Fuzzing固件,以及发现一些新漏洞。

Broadcom是全球无线设备的主要供应商之一,他们生产带有43系列标签的无线芯片,从智能手机到笔记本电脑,智能电视和物联网设备,你几乎可以在任何地方找到这些芯片。你可能会在不知道的情况下就使用了它,例如,如果你有戴尔笔记本电脑,则可能正在使用bcm43224或bcm4352卡;如果你拥有iPhone,Mac笔记本,Samsumg手机或Huawei手机等,也可能使用Broadcom WiFi芯片。

由于这些芯片用途广泛,因此变成了攻击者的高价值目标,因此,在其中发现的任何漏洞都应视为会带来很高的风险。

我研究了很长一段时间的Broadcom芯片,将已知漏洞复制并移植到其他易受攻击的设备,以学习和改进几种常见的信息安全惯例,在此文章中,我记录了我的研究过程,包括获取,逆向和Fuzzing固件,以及分析发现的一些新漏洞

在开始之前,让我们看一下802.11无线标准。

1997年创建的第一个IEEE 802.11标准[1]标准化了PHY和MAC层,这是最低的两个OSI层。

对于PHY层,选择了两个频带:红外(IR)频带和微波频带(2.4GHz);之后,其他标准(例如802.11a [2])带来了另一个频率范围(5GHz)。

图片

管理帧由MLME(MAC子层管理实体)实体进行管理。根据处理MLME的内核的位置,我们可以得到两种主要类型的无线芯片实现:SoftMAC(其中MLME在内核驱动程序中运行)和HardMAC(也称为FullMAC),其中MLME在固件中嵌入在嵌入式固件中。芯片并不是像生活中看到的那么简单,存在一些混合实现,例如,探测响应和请求由驱动程序管理,而关联请求和身份验证则由芯片的固件处理。

FullMAC设备在功耗和速度方面提供了更好的性能,这就是为什么它们在智能手机中得到大量使用,并且往往成为市场上使用最多的芯片的原因。它们的主要缺点是限制了用户发送特定帧或将其设置为监视模式的能力,为此,将需要直接编辑芯片上运行的固件。

从Linux操作系统的角度来看,以上内容为我们提供了无线堆栈中组件的两种主要布局:当无线设备是SoftMAC设备时,内核将使用称为'mac80211'的特定Linux内核模块(LKM)。该驱动程序公开MLME API以便管理管理帧,否则内核将直接使用硬件驱动程序并将MLME处理卸载到芯片的固件中。


Broadcom bcm43xxx系列同时具有HardMAC和SoftMAC卡。不幸的是,我们找不到所分析所有芯片的所有数据表,赛普拉斯收购Broadcom的“ IoT业务”分支后,已经发布了一些可用的数据表;但是,有些芯片同时集成了WLAN和蓝牙函数,例如bcm4339或bcm4330。

分析的所有芯片都将ARM Cortex-M3或ARM Cortex-R4用作非关键时间操作的主要MCU,因此我们需要处理两个类似的指令集:armv7m和armv7r。这些MCU具有一个ROM和一个RAM,其大小取决于芯片组的版本。

所有时间紧迫的操作都由D11内核的Broadcom专有处理器实现,该处理器主要负责PHY层。

这些芯片使用的固件分为两部分:一部分写入ROM,不能修改,另一部分由驱动程序上传到芯片的RAM。这样,供应商仅通过更改固件的RAM部分就可以为其芯片添加新函数或编写更新。

图片

FullMAC芯片非常有趣,首先如在固件代码中实现MLME层之前所述,但是它们还提供卸载函数,例如ARP缓存,mDNS,EAPOL等。这些芯片还具有一些硬件加密模块,可以加密和解密密码,流量,管理密钥等。

所有卸载函数都增加了攻击面,为我们提供了一个不错的研究空间。

为了与主机(应用处理器)进行通信,b43系列使用了几种总线接口:USB,SDIO和PCIe。


相关标签: