L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

performing-bluetooth-security-assessment

performing-bluetooth-security-assessment

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

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
}
Skills enregistrées