performing-bluetooth-security-assessment について
Python bleak を使って BLE デバイスを評価するセキュリティスキルです。デバイスを検出し、GATT のアクセス保護を調べ、所見と修正案をまとめます。
主な機能
- 01近隣の BLE デバイスをスキャン
- 02接続して GATT サービスを列挙
- 03特性の読み書き権限を確認
- 04既知の脆弱な UUID を特定
- 05深刻度と対策を含む JSON レポートを生成
活用シーン
- 01IoT やスマートホームの BLE デバイスを監査
- 02特性からの未暗号化データ漏えいを確認
- 03ペアリングとアクセス制御の設定を評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-bluetooth-security-assessmentインストール後、Claude Code で/performing-bluetooth-security-assessmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
Bluetooth セキュリティ評価の実施
概要
このスキルでは、Python の bleak ライブラリを使用した Bluetooth Low Energy (BLE) のセキュリティ評価について説明します。BLE デバイスは IoT、ヘルスケア、フィットネス、スマートホームのアプリケーションで広く使われており、その多くは脆弱なセキュリティ制御、またはセキュリティ制御がない状態で出荷されています。この評価では、暗号化されていない GATT キャラクタリスティック、機密データをブロードキャストしているデバイス、既知の脆弱なデバイスのフィンガープリント、適切に保護されていないペアリング構成を特定します。
エージェントは bleak の asyncio API を使用して、周囲の BLE デバイスを検出し、対象デバイスに接続し、すべての GATT サービスとキャラクタリスティックを列挙して、各キャラクタリスティックのセキュリティ特性を分析します。認証なしで機密データへの読み取りまたは書き込みアクセスを許可しているキャラクタリスティックにフラグを付け、既知の脆弱なプロファイルに一致するデバイスを特定します。
使用するタイミング
- Bluetooth セキュリティ評価を伴うセキュリティ評価を実施する場合
- 関連するセキュリティイベントに対してインシデント対応手順に従う場合
- 定期的なセキュリティテストまたは監査活動を実施する場合
- 実地テストを通じてセキュリティ制御を検証する場合
前提条件
- Python 3.9 以降
- bleak ライブラリ (
pip install bleak) - BLE に対応した Bluetooth アダプター (Bluetooth 4.0 以降)
- Linux: D-Bus の権限を持つ BlueZ 5.43 以降
- Windows: Bluetooth に対応した Windows 10 バージョン 1709 以降
- macOS: CoreBluetooth を備えた macOS 10.15 以降
手順
-
BLE デバイスのスキャン: BleakScanner を使用して、範囲内にあるアドバタイジング中のすべての BLE デバイスを検出します。デバイス名、アドレス (MAC)、RSSI 信号強度、アドバタイズされたサービス UUID を取得します。
-
対象デバイスの特定: 検出されたデバイスを、名前のパターン、アドレス、または最小信号強度でフィルタリングします。デフォルトまたは既知の脆弱な名前をブロードキャストしているデバイスにフラグを付けます。
-
接続と GATT サービスの列挙: BleakClient を使用して対象デバイスに接続し、すべての GATT サービスを反復処理します。各サービスについて、UUID、説明、および含まれるキャラクタリスティックを記録します。
-
キャラクタリスティックのプロパティ分析: 各キャラクタリスティックについて、そのプロパティ (read、write、write-without-response、notify、indicate) を調べます。認証または暗号化を必要とせずに読み取りまたは書き込みアクセスを公開しているキャラクタリスティックにフラグを付けます。
-
既知の脆弱な UUID の確認: 検出されたサービスおよびキャラクタリスティックの UUID を、暗号化が必要であるべき既知の脆弱または機密性の高いサービス (Heart Rate、Blood Pressure、Device Information、Battery Level) のデータベースと比較します。
-
暗号化されていないデータの露出の検出: 保護されているべきキャラクタリスティックの読み取りを試みます。機密データに対する認証なしの読み取りが成功した場合、セキュリティ制御が欠けていることを示します。
-
セキュリティレポートの生成: すべての検出結果を、重大度の分類と改善の推奨事項を含む構造化された 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
}