SCI论文(www.lunwensci.com)
摘 要:低功耗蓝牙(Bluetooth Low Energy, BLE)协议的安全问题成为近年来无线通信领域中的研究热点。在协议 帧格式复杂的情况下,基于状态机模型的 BLE 协议黑盒测试难免会出现测试效率低且大量输入数据被待测设备拒绝处理的情 况。本文对不同类型字段采取更具针对性的变异方法,运用基于权重的反馈优化策略,为产生严重测试结果的变异策略设置更 高的权值。实验结果表明,在选取的已披露漏洞的 14 台蓝牙设备中,该方法的漏洞检出率为 93.7%,高于现有的 BLE 测试框 架,并将状态机模型覆盖率从 51.6% 提升至 84%,使输入有效率从 66% 提升至 91%。
Bluetooth Low Energy IoT Device Vulnerability Analysis
GUAN Xiaotong
(School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210003)
【Abstract】: The security of the BLE protocol has become a research hotspot in the field of wireless communication in recent years. In the case of complex protocol frame format, the black box test of BLE protocol based on the state machine model will inevitably have low test efficiency and a large amount of input data will be rejected by the device under test. This paper adopts a more targeted mutation method for different types of fields, and uses a weight-based feedback optimization strategy to set higher weights for mutation strategies that produce severe test results. The experimental results show that among the selected 14 Bluetooth devices with disclosed vulnerabilities, the vulnerability detection rate of this method is 93.7%, which is higher than the existing BLE test framework, and the coverage rate of the state machine model is increased from 51.6% to 84%, increasing the input efficiency from 66% to 91%.
【Key words】:low power Bluetooth;IoT;black box test
0 引言
相较于经典蓝牙的高功耗和大数据传输量,低功耗 蓝牙协议旨在保持同等通信范围的同时,降低功耗与成 本。由于低功耗蓝牙在协议栈结构上的极大变化,且设 备外观上多趋于小巧的特性, 许多 BLE 设备并不具备 输入输出能力,因此用户只能有限地参与设备间的连接 和配对过程,这种模式导致低功耗蓝牙在整体架构上 存在许多安全隐患 [1.2] ,目前已发现多个有关 BLE 协议 的安全漏洞。因此,研究一种全面自动化检测 BLE 协 议安全性的系统可使用户及生产商高效地发现漏洞所 在,对于提高蓝牙设备的安全性、保护用户隐私具有重 要意义。
1 相关研究
大多数研究者发现的有关低功耗蓝牙的安全问题都 出现在配对过程中,进一步导致了窃听和追踪定位等隐 患 [3-5]。然而,目前专门针对 BLE 协议的自动化测试框架 较少, 且各自具有其局限性。2019 年,Garbelini M E 研 究团队 [6] 提出了一种针对 BLE 安全性的通用测试框架, 基于 BLE 协议的状态机模型,通过概率性地改变正确 数据包中的某些字段来构建格式错误的数据包,并将它 们发送至待测设备,根据其回应判断是否存在异常。
但是,物联网固件具有严格输入语法要求,无法接 受非结构化的随机输入, 而现有的 BLE 协议安全测试 系统均简单地采用改变报文中任意字段的变异方法,导致大多数输入数据直接被目标设备拒绝,从而降低了用 例有效率和测试效率。本文旨在提出一种黑盒检测 BLE 设备安全性的方法,运用合理的反馈策略,同时考虑了 变异方法和变异字段两者对测试结果的影响,结合每个 字段的特征,列举了其合法取值和各字段间依赖关系, 制定了一系列规则来产生非法报文,可产生更有针对性 的变异数据,以降低目标设备的拒绝率。
2 基于状态机模型的 BLE 协议测试框架
2.1 状态机模型的构建
首先对 BLE 协议状态进行建模,在此基础上变异 出有效的测试用例。由于 BLE 连接过程的顺序严格、 不可颠倒,因此进入下一个状态的条件为收到上一个状 态的对应报文。如图 1 所示,为 BLE 的简化交互过程 与模型各个状态所对应的部分报文。
2.2 测试框架与流程
测试框架与实验平台由外围待测 BLE 设备、测试 引擎和监视器组成。其中,测试引擎充当 BLE 协议中 的主机角色,待测设备为从机。
为了方便报文的构建与变异处理,我们使用 Python 的 Bluetooth4LE 模块,该模块提供了对字段内容进行设 置的 API。同时,我们为 2.1 节模型中的每个状态设置了 与之对应的非法数据包发送概率(Pmut_all)、可接收数据包 类型(Typeacc)、不可接收数据包类型(Typerej)、超时 时间(Statetimeout)、变异层列表(Lmut_layer)、各层变异概率(Pmut_layer,与 Lmut_layer 对应)、可变异字段(Lmut_field)、 各字段变异概率(Pmut_field ,与 Lmut_field 对应)和冗余包 发送概率(Pinopportune ,包含在 Pmut_all 内)。例如,在配 对状态下, Lmut_layer 为 {BTLE_DATA, L2CAP_Hdr, SM_ Hdr, SM_Paring_Request}。冗余包不经过变异器, 具 有正确的 BLE 帧格式,目的是尽可能触发由于发送顺 序不符合规范而引起的漏洞。Typeacc 是验证发生异常 的基础。
当模型满足规定的转换条件,就会进入下一状态, 然后立即构建与之对应的数据包,如: 当前状态机模型 处于“连接准备”阶段, 当收到 LEN_RSP 后进入“配 对请求”状态, 构建 PAIR_REQ 报文。然后根据概率决 定:(1)原样发送合法报文 ( 概率为 1-Pmut_all),同时将 这些报文添加至集合 Sinopportune 中;(2)发送经过变异器 处理后的报文(概率为 Pmut_all-Pinopportune);(3)发送与 该状态不符但格式合法的报文(概率为 Pinopportune)。
测试流程如下所示:
(1) 随机选择概率 P1 ,判断其是否落入 Pinopportune 中,若是,则从 Sinopportune 中选择一条报文发送;(2)随 机选择概率 P2 ,判断其是否落入 Pmut_all 中,若否,则发 送已构建好的合法数据包;(3)若以上情况均不满足, 则选取某个字段,经过变异器后发送至待测设备端, 其 中基础的变异方法包括字节翻转、位翻转、设置字段边 界值和插入随机字节。
2.2.1 测试引擎采取的变异策略
在测试过程中发现,随机选择某字段进行变异后的 报文极有可能被目标设备视作非有效输入,从而不对其 进行处理,导致连接超时和模型重置的频率高,因此, 我们需要考虑字段特征对输入数据有效性的影响。如图 2 所示,介绍了 BLE 的帧结构及各字段对应的协议层。 我们根据蓝牙规范将不同数据包的各个字段划分为以下 几种类型,每个分类结果对应不同的变异策略。
(1) 固定字段:这部分字段没有实际测试意义, 不 能触发协议层的核心功能,且接收设备易检测出该内容 的异常改变,因此大概率导致设备的拒绝处理。(2)依 赖字段:这部分字段的值取决于该协议数据包中其他字 段或之前交互的 BLE 报文中某些字段(如 LL 层头部的 Length 字段)。(3)可变字段:往往对应了协议栈中实 现 BLE 功能的核心代码。如在某状态下测试 LL 层(发 送 LL 层控制报文)时, LLID 为可变字段,它的合法 取值为 01b、10b 和 11b,可对其采取非合法值替代的 变异方法。但当测试 L2CAP 层时,CID(Channel ID) 为可变字段,而 LLID 为固定字段,且其值固定为 01b 或10b,原因是若 LLID 变异为任意值,则其携带的 L2CAP 层数据无法被待测设备端识别,从而失去了测试意义。 由此可见,一个字段的分类结果由发送报文类型决定。
由此确定了各层协议头部字段的类型。但帧结构中 最内层的 Data PDU 分为多种类型,且每种 PDU 类型 包含的字段不同,因此还需要划分 Data 域中的字段类 型。下面讨论 Data 域内的字段类型划分与各类字段采 用的变异方法。以 LL 层为例,如表 1 所示,列出了部 分 PDU 类型和与其对应字段间的依赖关系与合法取值。 控制包帧结构中的 Opcode 的合法取值为 0x00-0x25. Opcode 决定了 LL 控制包的 PDU 类型。
若某报文字段的依赖关系与合法取值均为无,则将 其划分为固定字段。若依赖关系不为空,则为依赖字段。若合法取值不为空, 则为可变字段。Lmut_field 将只 包含依赖字段和可变字段,即通过不改变固定字段的方 法来提高待测设备接收输入数据的概率、增加协议栈中 各层的测试覆盖率和效率。
在进行变异字段选择时,会出现以下 3 种情况,采 取的相应变异方法如下:
(1) 选取到可变字段:在上述提到的字节翻转、位翻 转、设置字段边界值、插入随机字节这 4 种变异方法的基 础上,增添非合法值替代和合法值替代两种方法。(2)选 取到依赖字段:若被选字段与其依赖的字段关系为等于或 等号表达式,则寻找其依赖的字段是否存在合法取值,若 存在, 则在基础变异方法上增加非合法值替代和合法值 替代。(与 1 相同),例如, LL_UNKNOWN_RSP 报文的UnknownType 字段等于 LL_REQ 报文的 Opcode, 则 UnknownType 的合法取值也为 0x00-0x25.若被选字段 与其依赖的字段之间为“=”“<”或“>”能体现的关系, 则将符合依赖关系的表达式符号取反,并增加至字段变 异方法中, 例如将 ATT_FIND_INFORMATION_REQ 报 文的 Starting Handle<=Ending Handle 更改为 Starting Handle>Ending Handle,造成起始句柄与终止句柄间 的矛盾。(3)选取到同时属于可变和依赖的字段: 同时 结合 1、2 情况,在基础集中增加新变异方法。
2.2.2 验证异常的方法
如 2.2 节所述,每个状态有对应的可接收数据包类 型 Typeacc。若发送的是合法数据包,则收到的报文应落 入 Typeacc 内;若发送变异或冗余数据包,则令 Typerej= Typeacc,Typeacc 为终止、拒绝、错误回应报文或无响应。
若在 Statetimeout 时间内未收到目标的响应,则 根据测试流程重新构建数据包并发送合法或非法报文, 若重复多次该过程均无响应,则到达一定时间后会触发 连接超时计时器(该计时器每收到一条回应报文后都会 重新启动),然后将状态机模型重置为扫描,若此时发 送扫描请求仍超时,则判定目标设备崩溃。
总结来看,测试引擎在几种情况下报告异常:(1) 收到的回应报文在 Typerej 范围内或不在 Typeacc 范围内;(2)在扫描(状态机初始状态)下无响应。
2.3 反馈优化策略
由于对漏洞测试效率影响最大的两个变量是变异字段 和对其采取的变异方法,因此,本文的反馈策略为运用之 前的测试结果优化本轮测试使用的 Pmut_field 和对字段采取 各变异方法的概率。设在某状态下 Lmut_field 中所含字段个 数为 n,则该条报文的变异类型(某个变异字段与变异方 法的组合)有 T 种,其中 Mk 代表第 k 个字段的变异方 法个数,初始时每种变异类型的概率均为 1/T。同时, 我 们根据测试结果的严重程度为每种结果设置不同的权值, 其中导致设备崩溃的严重性最高(A 类),将其权值设置 为 9.若待测设备的响应异常(B 类,如发生无序响应或 安全性绕过等问题),将其权值设置为 7.若待测设备的响 应超时但并无崩溃或异常(C 类),将该权值设置为 3. 若 响应正常(D 类),则将权值设置为 1. 如式(1) 所示:
为每类报文设置一个行代表变异字段,列代表变异 方法的二维概率列表,该列表中处于 (x,y) 位置的元素 代表使用 y 方法对 x 字段变异的概率。待报文的累计变 异次数达到 T 次时, 更新该二维列表。假设第一轮测试中,针对 x 字段的 y 变异方法触发了A、B、C、D 类响 应各 a、b、c、d 次,则该变异类型的权值结果为 Wi, 需将列表中 (x,y) 位置的对应值修改为其所占权重即 Wi/sum。其中 numL 代表产生 L 类结果的次数, numkL 代表第 k 个变异类型产生 L 类结果的次数,如式(2)、 式(3)所示:
待报文的累计变异次数达到 5T 次时,检查 Numn=i 与 Numm=i 的个数是否为 0. Numn=i 代表对第 i 个字段变异 产生的 A、B、C 类结果总和, Numm=i 代表使用第 i 个变 异方法产生的 A、B、C 类结果总和,若 Numn=i=0. 则后 续测试中不再使用该变异方法,将二维列表中对应列删 除, 若 Numm=i=0.则后续测试中将该字段视为固定, 将 二维列表中对应行删除,并且等比例放大列表中的值。
这种方法使得测试在没有产生严重结果的情况下调整权 值的分布,更有导向性地促进 A、B、C 类情况的发生, 如式(4)、式(5)所示:
3 实验结果对比与分析
外围待测设备选取了 14 个已公布漏洞的低功耗蓝牙 设备,共来自 11 个不同的厂商,将测试结果与 Bluetooth Stack Smasher 和 Greyhound 两个开源的蓝牙测试系 统相比较。如表 2 所示,为待测设备信息及测试结果, 可以看出本文提出的测试方法、BSS 和 Greyhound 分 别具有 93.7%、56.2%、75% 的漏洞检出率。
我们使用状态机模型的覆盖率与输入有效率两个变量 作为测试效率的参考, 并使用上述对比工具分别对同样的 目标设备进行测试,控制每次测试的迭代轮数为 300.
2.1 节简化的状态模型图中细分为 43 个发送状态,状 态机模型覆盖率的计算方法为:在每轮迭代结束后计算 该轮迭代中到达的状态总数及覆盖率,直到迭代次数达 到 300 时计算覆盖率的平均值作为其最终结果。如图 3 所 示,本文测试系统的状态机模型覆盖率比 Greyhound 平 均高出 30%,比 BSS 平均高出 34%。
4 结语
本文采用了基于状态机模型的 BLE 协议测试框架,在此基础上对协议各字段的类型进行划分,根据其分类 结果采取更有效的变异方法,融合了基于权重的反馈优 化策略,使得测试的效率得到提高。结果表明,本文的 方法在输入有效率、模型状态的覆盖率和漏洞检出率上 优于现有的基于生成的 BLE 协议模糊测试方案。
参考文献
[1] Ryan M .Bluetooth:With Low Energy Comes Low Security[C]//7th USENIX Workshop on Offensive Technologies (WOOT 13),2013:179-196.
[2] WILLINGHAM T,HENDERSON C,KIEL B,et al.Testing Vulnerabilities in Bluetooth Low Energy[C]//Proceedings of the ACMSE 2018 Conference,2018:1-7.
[3] VENKATA BHASKARA SASTRY T,AMRITHA P P. Bluetooth Low Energy Devices:Attacks and Mitigations [M].2021:381-389.
[4] HASSAN S S,BIBON S D,HOSSAIN M S,et al.Security Threats in Bluetooth technology[J].Computers & Security, 2018(74):308-322.
[5] COPE P,CAMPBELL J,HAYAJNEH T.An Investigation of Bluetooth Security vulnerabilities[C]//2017 IEEE 7th Annual Computing and Communication Workshop and Conference (CCWC),2017:1-7.
[6] GARBELINI M E,WANG C,CHATTOPADHYAY S,et al. SweynTooth Unleashing Mayhem over Bluetooth Low Energy[R].2019.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/60658.html