mcpField
P
performing-bluetooth-security-assessment

performing-bluetooth-security-assessment

github.com/mukul975安全35.2k43 次安装8 周前更新
代码仓库

关于 performing-bluetooth-security-assessment

使用 Python bleak 执行 BLE 安全评估的技能,面向安全测试人员。它扫描附近设备、检查 GATT 特征的访问保护,并整理发现结果与修复建议。

主要功能

  1. 01扫描附近 BLE 设备
  2. 02连接设备并枚举 GATT 服务
  3. 03检查特征读写权限
  4. 04识别已知易受攻击的 UUID
  5. 05生成含严重性与建议的 JSON 报告

适用场景

  1. 01审计 IoT 或智能家居 BLE 设备
  2. 02检查特征是否暴露未加密数据
  3. 03评估配对和访问控制配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill performing-bluetooth-security-assessment

安装后在 Claude Code 中输入/performing-bluetooth-security-assessment确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

执行蓝牙安全评估

概述

本技能涵盖使用 Python bleak 库执行低功耗蓝牙 (BLE) 安全评估。BLE 设备在 IoT、医疗保健、健身和智能家居应用中无处不在,其中许多设备出厂时安全控制薄弱或缺失。此评估可识别未加密的 GATT 特征、广播敏感数据的设备、已知存在漏洞的设备指纹以及未正确配置安全保护的配对设置。

Agent 使用 bleak 的 asyncio API 来发现附近的 BLE 设备、连接目标设备、枚举所有 GATT 服务和特征,并分析每个特征的安全属性。它会标记允许未经身份验证读写敏感数据的特征,并识别与已知漏洞配置文件匹配的设备。

何时使用

  • 在开展涉及执行蓝牙安全评估的安全评估时
  • 在针对相关安全事件遵循事件响应流程时
  • 在执行定期安全测试或审计活动时
  • 通过动手测试验证安全控制措施时

前置条件

  • Python 3.9 或更高版本
  • bleak 库(pip install bleak)
  • 支持 BLE 的蓝牙适配器(Bluetooth 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. 分析特征属性:对于每个特征,检查其属性(read、write、write-without-response、notify、indicate)。标记在无需身份验证或加密的情况下即暴露读或写访问权限的特征。

  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
}

评论

支持 Markdown