界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

performing-bluetooth-security-assessment

performing-bluetooth-security-assessment

【效率与协作】通过扫描、枚举 GATT 服务并检测漏洞,评估蓝牙低功耗(BLE)设备的安全性。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: performing-bluetooth-security-assessment description: 通过扫描、枚举 GATT 服务并检测漏洞,评估蓝牙低功耗(BLE)设备的安全性。 domain: cybersecurity subdomain: wireless-security tags: [bluetooth, ble, gatt, wireless-security] version: "1.0" author: mahipal license: Apache-2.0

概述

本技能使用 Python bleak 库执行蓝牙低功耗(BLE,Bluetooth Low Energy)安全评估。BLE 设备广泛应用于物联网(IoT)、医疗健康、健身和智能家居等场景,许多设备出厂时安全控制薄弱甚至完全缺失。本评估可识别未加密的 GATT 特征值、广播敏感数据的设备、已知漏洞设备指纹,以及配对配置不安全的问题。

代理使用 bleak 的异步(asyncio)API 发现附近的 BLE 设备,连接到目标设备,枚举所有 GATT 服务和特征值,并分析每个特征值的安全属性。它会标记允许未认证读/写访问敏感数据的特征值,并识别符合已知漏洞特征的设备。

前置条件

  • Python 3.9 或更高版本
  • bleak 库(pip install bleak)
  • 支持 BLE(蓝牙 4.0+)的蓝牙适配器
  • Linux:BlueZ 5.43+ 及 D-Bus 权限
  • Windows:Windows 10 1709 版本以上,含蓝牙支持
  • macOS:macOS 10.15+ 含 CoreBluetooth

步骤

  1. 扫描 BLE 设备:使用 BleakScanner 发现范围内所有广播的 BLE 设备。捕获设备名称、地址(MAC)、RSSI 信号强度和已广播的服务 UUID。

  2. 识别目标设备:按名称模式、地址或最低信号强度筛选发现的设备。标记广播了默认名称或已知漏洞名称的设备。

  3. 连接并枚举 GATT 服务:使用 BleakClient 连接目标设备并遍历所有 GATT 服务。对每个服务记录其 UUID、描述和包含的特征值。

  4. 分析特征值属性:对每个特征值检查其属性(读取、写入、无响应写入、通知、指示)。标记无需认证或加密即可读写的特征值。

  5. 检查已知漏洞 UUID:将发现的服务和特征值 UUID 与已知漏洞或敏感服务数据库(心率、血压、设备信息、电池电量)对比,这些服务应要求加密。

  6. 检测未加密数据暴露:尝试读取应受保护的特征值。未认证即可成功读取敏感数据表明缺少安全控制。

  7. 生成安全报告:将所有发现整合成带严重性分级和修复建议的结构化 JSON 报告。

预期输出

{
  "assessment_type": "ble_security_audit",
  "target_device": {
    "name": "SmartBand-XR",
    "address": "AA:BB:CC:DD:EE:FF",
    "rssi": -42
  },
  "services_found": 5,
  "characteristics_found": 18,
  "findings": [
    {
      "severity": "high",
      "finding": "Heart Rate Measurement readable without encryption",
      "uuid": "00002a37-0000-1000-8000-00805f9b34fb",
      "properties": ["read", "notify"],
      "remediation": "Enable encryption requirement on characteristic"
    }
  ],
  "risk_score": 7.5
}
我的收藏