BLESuite:简化蓝牙低功耗设备通信与安全测试的利器
项目介绍
BLESuite 是一个 Python 包,旨在简化蓝牙低功耗(BLE)设备通信,并加速 BLE 设备的安全测试。BLESuite 的第二版移除了对 PyGattlib 和 BlueZ 的依赖,转而使用修改版的 PyBT(https://github.com/mikeryan/PyBT)来实现和管理自己的 BLE 堆栈。这一改进不仅提高了通信的可靠性,还增强了通信的灵活性,改进了设备扫描功能,并支持在蓝牙堆栈的主机层进行设备模糊测试。
项目技术分析
BLESuite 的核心技术在于其自定义的 BLE 堆栈,该堆栈允许发送格式错误(或故意构造的)请求/响应到设备,从而支持设备测试。BLESuite 不仅支持中央角色(Central Role),还支持外设角色(Peripheral Role),使用户能够快速配置并启动一个 GATT 服务器,用于测试中央角色或双角色设备。
此外,BLESuite 还提供了两个 CLI 工具:blesuite
和 ble-replay
,分别用于基本的 BLESuite 操作和 GATT 流量重放,帮助用户快速识别应用程序层的安全漏洞。
项目及技术应用场景
BLESuite 适用于以下场景:
- 安全评估:通过发送格式错误的请求/响应,BLESuite 可以帮助安全研究人员快速测试 BLE 设备的健壮性。
- 设备调试:开发人员可以使用 BLESuite 快速与 BLE 设备进行通信,调试设备功能。
- 自动化测试:BLESuite 支持多 HCI 设备和同时连接多个外设,适用于需要大规模自动化测试的场景。
- GATT 服务器开发:BLESuite 提供了快速启动 GATT 服务器的功能,适用于需要快速原型开发的场景。
项目特点
- 自定义 BLE 堆栈:移除了对 PyGattlib 和 BlueZ 的依赖,使用自定义的 PyBT 堆栈,提高了通信的可靠性和灵活性。
- 多角色支持:支持中央角色和外设角色,适用于多种测试场景。
- 多 HCI 设备支持:支持多个 HCI 设备(如 USB 蓝牙适配器),并支持同时连接多个外设。
- 设备扫描与 GATT 实体扫描:快速扫描 BLE 设备及其所有 GATT 实体。
- ATT 请求与 L2CAP/ATT 包构造:快速发送 ATT 请求,并构造和发送 L2CAP 和 ATT 包。
- 安全管理:支持 JustWorks LE Legacy 配对,并计划在未来版本中支持更多配对方法。
- GATT 服务器管理:支持 GATT 服务器的导入和导出,以及安全管理器长期密钥数据库的导入和导出。
- BD_ADDR 欺骗:可选安装一个 Python API 友好的 BDADDR 工具,支持某些芯片组的 BD_ADDR 欺骗。
总结
BLESuite 是一个功能强大且灵活的 BLE 设备通信与安全测试工具,适用于安全研究人员、开发人员和测试人员。通过自定义的 BLE 堆栈和丰富的功能,BLESuite 能够帮助用户快速、高效地进行 BLE 设备的通信和安全测试。无论你是进行安全评估、设备调试还是自动化测试,BLESuite 都能为你提供强大的支持。