📡

Bluehood — BLEスキャナーで見るBluetoothプライバシー

ラズベリーパイ1台で隣人の通勤パターンまで把握可能?

Bluetoothを常にオンにして生活するのが当たり前の時代だ。スマートフォン、イヤホン、スマートウォッチ、車 — すべてが常にBLE信号をブロードキャストしている。Bluehoodはこれらの信号を収集し、「Bluetoothがオンだとどんな情報が漏れるのか」を直接見せるPythonプロジェクトだ。

何を検出できるか

Bluehoodをパッシブモードで動かすとこんなことがわかる:

  • 配達員の到着時刻と同じ配達員かどうか(同じBLEデバイスの繰り返し出現)

  • 隣人の通勤パターン(毎日同じ時間に消えたり現れたりするデバイス)

  • 関連デバイスの組み合わせ(スマートフォン + スマートウォッチ = 同一人物)

  • 訪問者の滞在時間と頻度

ラズベリーパイやノートPC1台で十分。

コード構造分析

Bluehoodのコアは3つのレイヤー:

1. BLEスキャナー(scanner.py

bleakライブラリでBLE広告パケットを継続収集。BleakScannerdetection_callbackを登録し、デバイス検出ごとにコールバック実行。MACアドレス、RSSI(信号強度)、デバイス名、メーカー情報、BLEサービスUUIDを抽出。

from bleak import BleakScanner

async def scan():
    scanner = BleakScanner(detection_callback=on_device_found)
    await scanner.start()

2. データ保存(database.py

SQLiteに検出記録を保存。テーブル構造はデバイスごとの初検出・最終検出時刻、総検出回数、RSSI履歴を含む。ランダムMACアドレス(最新デバイスのプライバシー機能)はフィルタリングオプション提供。

3. パターン分析 + Webダッシュボード

時間帯別ヒートマップ、滞在時間グラフ、関連デバイス検出(同時に現れるデバイス = 同一人物の可能性大)。FlaskベースのWeb UIでリアルタイムモニタリング。ntfy.sh経由の新規デバイス検出時プッシュ通知も対応。

ユーザーが制御できないデバイス

問題はユーザーが制御できないデバイス:

  • 補聴器:遠隔調整・診断用BLE常時アクティブ

  • ペースメーカー:医療用インプラントもBLE信号送出(コミュニティで父のペースメーカーがnRF Connectアプリに検出されたという事例も)

  • 車両:診断・管理用BLE継続送信。Teslaなどはteslaradar.comのような追跡サイトも存在

  • TPMS:タイヤ空気圧センサーも固有IDを常にブロードキャスト

プライバシーツールの逆説

Briarはインターネット切断時でもBluetooth/WiFiメッシュでメッセージを同期するアプリ。活動家・ジャーナリストの通信保護が目的だが、使うにはBluetoothをオンにする必要がある。

BitChatは完全なBLEメッシュベースの分散型メッセンジャー。インターネット・サーバー・電話番号不要だが、BLE有効化が必須。

保護手段が同時に露出経路になるという矛盾。

MACアドレスランダム化の限界

BLEにはすでに「resolvable private address」方式のランダム化がある。定期的にMACアドレスを変更するが、ローテーションのタイミングを追跡すれば依然同じデバイスを推定可能。iPhone + Apple Watchのように常に一緒に現れるパターンもデバイス識別に利用できる。

実行方法

Dockerまたは手動インストール。Bluetoothアダプタがある任意のデバイスで実行可能。

git clone https://github.com/dannymcc/bluehood
cd bluehood
docker compose up -d

root権限またはsystemdサービスで実行。Webダッシュボードでリアルタイムモニタリング。

キーポイント

1

bleakライブラリでBLE広告パケット継続収集 → MAC、RSSI、デバイス名、サービスUUID抽出

2

SQLiteにデバイスごとの初/最終検出時刻、回数、RSSI履歴を保存

3

時間帯別ヒートマップ + 関連デバイス分析で行動パターンを推論

4

Flask Webダッシュボードでリアルタイムモニタリング + ntfy.shプッシュ通知

ユースケース

自分のBLEデバイスがどんな情報を露出しているか確認 Bluetoothプライバシー教育・デモツール セキュリティ監査 — 組織内BLEデバイスインベントリ