世界を動かす技術を、日本語で。

あなたのBluetoothデバイスが明らかにすること

概要

  • Bluehood はBluetoothの情報漏洩リスクを可視化するスキャナー
  • 一般的なデバイスが意図せず 個人情報や生活パターン を発信
  • WhisperPair脆弱性 などBluetoothの危険性が顕在化
  • プライバシー保護ツールでさえ Bluetooth常時ON を要求
  • Bluehoodの導入方法・使い方・意義を解説

Bluehood:Bluetooth情報漏洩の可視化ツール

  • Bluehood はPython製Bluetoothスキャナー
  • 近隣デバイスの検知・出現パターンの解析機能
  • パッシブスキャン のみで接続不要、傍受型
  • デバイス種別やベンダー、BLEサービスUUIDで識別
  • 出現・消失の時刻を記録、滞在時間や相関関係を可視化
  • ランダムMACアドレス (プライバシー保護用)を自動フィルタリング
  • Webダッシュボード で解析結果を閲覧可能
  • Docker または直接インストールに対応
  • データは SQLite に保存、ntfy.shで通知も可能

Bluetoothがもたらす見過ごされがちなリスク

  • スマートフォン・PC・ウェアラブル・車両・医療機器など多くが 常時Bluetooth発信
  • 「何も隠すことがない」論では済まされない 日常的な情報漏洩
  • 例:配達員や近隣住民の行動パターン、家族の帰宅時間、訪問者の頻度などを 傍受のみで把握可能
  • Raspberry Pi や一般的なノートPCで容易に実現可能

ユーザーが制御できないBluetoothデバイスの存在

  • 補聴器ペースメーカー など医療機器はBluetooth Low Energy(BLE)を常時発信
  • 車両や物流機器も 運転者が無効化できない Bluetoothシステムを搭載
  • 一部スマートウォッチやペット用GPSタグ、フィットネス機器も Bluetooth必須設計

プライバシー志向ツールとBluetoothのジレンマ

  • BriarBitChat など、検閲回避・災害時通信のためBluetoothを活用するプライバシーツール
  • 通信の自由や匿名性を守る代償として Bluetooth常時ON が前提
  • 「プライバシー保護」と「存在の発信」という トレードオフ

行動パターンの可視化と悪用リスク

  • Bluetoothスキャンで 在宅・不在・訪問者・生活習慣 を推測可能
  • 例:家族の帰宅時間、定期的な来訪者、配達員の行動パターンの特定
  • 犯罪やトラブル発生時に 過去の記録から関係デバイスを特定 も可能
  • デジタルな足跡 が無自覚に残される現実

Bluehoodの使い方

  • Docker利用手順
    • git clone https://github.com/dannymcc/bluehood.git
    • cd bluehood
    • docker compose up -d
    • ダッシュボード:http://localhost:8080
  • 手動インストール例
    • Arch系:sudo pacman -S bluez bluez-utils python-pip
    • Debian/Ubuntu系:sudo apt install bluez python3-pip
    • pip install -e .
    • sudo bluehood
    • Bluetoothスキャンには 管理者権限 が必要
    • root実行、Pythonへのcapability付与、systemdサービス利用が選択可能

Bluehoodの意義と結論

  • Bluehoodは ハッキングツールではなく教育的デモ
  • 自分自身がどれほど 情報を発信しているかを可視化
  • 悪意がなくても、 基本的な技術知識だけで多くの個人情報を傍受可能
  • 「無線機能の常時有効化」がもたらす 見えないリスクの理解
  • Bluetoothは 必要性と利便性 のトレードオフ
  • Bluehoodを試すことで Bluetooth利用習慣の見直し を促進
  • ソースコードはGitHub公開、フィードバック・貢献歓迎

Hackerたちの意見

ちょっと脱線するけど、昔の携帯電話が普及し始めた頃、地下鉄にはWiFiや3Gがなかったんだよね。よくBluetoothをオンにして、近くのデバイスを探して、名前や見た目を照らし合わせて遊んでた。みんなが「JohnのiPhone」や「Samsung A55」みたいなつまらない名前を使う前の話で、個性的な名前をつけるのが楽しかったんだよね。これやったことある人いる?

うん、100%同じことやってた!人が何て名前をつけてるか見るのが面白かったし、当時からそのメタデータを使ってデバイスを追跡できるって思ってた。でも、もっと面白かったのはMacアドレスを見て、メーカーを確認して、珍しいデバイスを探すことだったな。

逆にやってるよ。自分のWiFiホットスポットやBluetoothを「MetPoliceUnit355」に設定して、周りの人の反応を見てる。

そうそう、でもすぐにお店がBluetoothで広告を大量に流せることに気づいて、すぐにBluetoothをオフにしなきゃいけなくなったところもあったよ。

彼らとコミュニケーションを試みたことある? https://en.wikipedia.org/wiki/Bluejacking

ハハ、デバイス名やWi-Fiホットスポットはいつも変えてるよ…「[エージェンシーの略称]監視バン #43/44/など」って感じで。

うーん…2006年、面接を受けてた時のこと。面接官がファイルをBluetoothで送るって言って、「電話の名前は何?」って聞かれた。2006年はToolの『10,000 Days』がリリースされた年で、俺はそれを楽しんでて、ちょっとエッジな感じで、デバイスの名前を『Vicarious』の歌詞から付けたんだよね。確か、名前のスペースにぴったり収まって、すごく嬉しかった。

「ILikeToWatchThingsDie」って名前でね。素晴らしい。結局、仕事もゲットできたよ!

約10年前にHomeAssistantを使ってBluetoothデバイスを監視してたんだ。デフォルトでMacアドレスを記憶して、見えるときと見えないときを記録してくれるから、ペアリングとか必要ないんだよね。カスタム名もあれば保存してくれるし。で、デフォルトのダッシュボードは、隣の「KatieのiPhone」が家にいるときといないときのビューを自動生成してたんだけど、最終的にはそれを削除した。

似たような話だな。「Home Assistantが隣のBluetooth歯ブラシを拾って、いつ歯を磨いてるか見えるようになった」

「Bluetoothが常にオンであるという考えが普通になってしまった。電話、ノートパソコン、スマートウォッチ、ヘッドフォン、車、さらには医療機器まで、常に存在を発信している。プライバシーの懸念に対する標準的な反応は、たいてい『隠すものがなければ、恐れるものもない』ってことだ。送信するものは何でも、自分をプロファイリングするために使われる可能性がある。友達の中には、半分忙しい道の近くの農場に住んでいる人がいるけど、他の農場からは遠すぎてWiFiを受信できない。彼らは、出現したり消えたりするWiFiアクセスポイントを記録しているルーターを見せてくれた。『Audi』や『BMW』、『Tesla』などの名前のアクセスポイントがたくさんあって、Bluetoothデータが漏れているのと似ている。これらのデータを「匿名解除」してナンバープレートにリンクさせれば、誰がいつ通り過ぎたかを簡単に特定できるって話になった。ショッピングモールは、WiFiやBluetoothの信号を使って、モール内の移動パターンを追跡していることが多いと思う。どのセクションで一番時間を過ごしているか、どの店舗で立ち止まっているかも分かるんだ。」

「Audi」や「BMW」、「Tesla」と名付けられたアクセスポイントがめっちゃあったよ。これが、Wigleを使ってスマホでウォードライビングする時の一番面白いところの一つだね。車に乗ってる人にカットオフされた後に、「Jennifer's Equinox」や「Jacks Suburban」のSSIDが見えることがよくある。見かける車のBluetoothやWi-Fiは、識別情報がいろいろ含まれてることが多い。Appleがデフォルトで「Jacks iPhone」や「iPad」になってて、設定が終わるまで名前を変えられないのもほぼ同じくらいひどい。企業はデフォルト設定で私たちを守ろうとしてるわけじゃないし、大多数のユーザーはこの事実に目を覚ます必要があるよ。

スマホのBluetoothはオフにしてるんだけど、時々またオンになってることに気づく。編集:iOS

デバイスを見つけて、プロファイルを作成して、接続されている限り位置を追跡できるAndroidアプリがあるよ。だから、通りすがりの人をプロファイリングできて、またそのプロファイルが通過すると通知も来るんだ。名前は忘れちゃったけど。

「ショッピングモールは、こういった信号(Wi-Fi、Bluetooth)を使って、モール内での移動パターンを追跡していると思う。多くの場所がこれをやってる。モール内のデパート、ターゲット、さらにはスーパーでも。」

テスラが追跡されてることについて心配しなくていいよ。Bluetoothを通じて、これが存在してたのは少なくとも7年前からだしね。[1](HNでも言及されてたし)。テスラはそれを知ってるし(これも7年前から)、マスクは「ナンバープレートも追跡できるから気にしない」って感じだよ。俺は駅で使ったり、電車やバスで高速道路を通るときに反応があったりする。信号待ちや渋滞で止まってるときは特に面白いよ、視覚的に確認できるからね。ここで学べる唯一の教訓は、2019年にマスクが過大評価されてるってことだね。でも、その教訓は『The PayPal Wars』って本からも学べるよ、これは15年前の話だから。

「ショッピングモールは、よくこういう信号(Wi-FiやBluetooth)を使って、モール内の移動パターンを追跡してると思う。どのセクションで一番時間を過ごしてるか、どの店舗で立ち止まってるかもわかる。EUでは禁止されてるけど。」

「ショッピングモールは、よくこういう信号(Wi-FiやBluetooth)を使って、モール内の移動パターンを追跡してると思う。どのセクションで一番時間を過ごしてるか、どの店舗で立ち止まってるかもわかる。」 そうそう、シスコが2011年にこういう製品を出してたのを覚えてるよ。三角測量を使って、顧客を店内の正確な位置に特定できて、どの棚の前で時間を過ごしてたかもわかるんだよね。それから15年経った今、技術はもっと怖くて侵入的になってると思う。

「これらのデータを「非匿名化」してナンバープレートにリンクさせることができるので、いつ誰が通り過ぎたかを簡単に特定できるという話をしました。OpenALPRを使ってナンバープレートを直接読み取ることもできる。すべての条件(特に夜間や高速)で信頼性を持ってカメラを設定するのは手間がかかるけど、一度設定すれば、Wi-Fiアクセスポイントを持ってる車だけでなく、通り過ぎる車を検出できる。法律でナンバープレートを持つことが求められてる以上、これは近くにいる人やカメラを置ける人にとっては公の情報と見なされるべきだと思う。人々が簡単に取得できる形で漏れ出すのは理想的ではないけど(例えばESP32を使って)、それは種類の問題ではなく程度の問題だよね。でも、医療機器については、他のいくつかのことに関しては同意するよ。それは良くないね。」

GrapheneOSのAndroidバージョンは、一定時間操作がないとBluetoothとWi-Fiを無効にするんだ。F-DroidにはBluetoothオフアプリもあるよ。https://f-droid.org/en/packages/com.mystro256.autooffbluetoo... それと、車にはAirtagのクローン(iOSモードのLoshall)も入れてるんだけど、これが到着時間を漏らしてるかも。水道メーターも今はBluetooth対応になってるし。

ショッピングモールでは、こういう信号(Wi-FiやBluetooth)を使って、客の移動パターンを追跡してることが多いと思う。どのセクションで一番時間を過ごしてるかとか、どの店舗で立ち止まってるかもわかるんだ。EUでは、明示的に許可を求めない限り、これは禁止されてるよ。集計データは取れるけど、個人のプロファイルを作ることはできないんだ。

これ、もっと安くできるよ。あなたの車の4つのタイヤは、それぞれユニークなIDを発信してタイヤの空気圧を報告してるんだ。その受信機は安いし(車だからね)、TPMSにはこれをランダム化したり安全にする機能がないから。

Bluetoothにはマックランダム化が絶対に必要だよね。WiFiのマックランダム化は歓迎だけど、ほとんどの人がBluetoothアクセサリーを持ってて、常に一貫した識別子を発信してるから、あまり意味がないんだよね。

ランダムなBluetooth MACはもう可能だよ。iOSデバイスは何年も前から、ランダムなWi-Fi MACと一緒にやってる。

「Bluetoothは必死にMACのランダム化が必要だ。」 BluetoothにはすでにしっかりしたMACランダム化スキームがあるよ。「解決可能なプライベートアドレス」を調べてみて。要するに、電話がヘッドフォンを見つけたり、その逆もできるんだ。どちらかがランダムアドレスを持っててもね。アドレスは再生成されたり、一定の間隔(例えば15分)でローテーションすることができる。アドレスの最初の部分はノンス(pRand)で、残りはpRandの24ビットハッシュとアイデンティティ解決キー(IRK)から成る。だから、相手はアドレスを受動的に聞いて、正しいハッシュを持ってるかどうかを確認するだけ。これが人々が思ってるほど堅牢だとは思わないな。確かに、誰かを追ってて、一つのアドレスが消えて、別のアドレスが現れる(ローテーション)と、新旧のアドレスが同じデバイスに属してると推測するのは簡単だよ。Androidの開発者にそのローテーションをグローバルに同期させるように短期間説得しようとしたこともある。ランダムなMACがペアで現れて、特定のタイミングやペイロードサイズのパターンがあれば、それが特定のデバイス(例えばiPhoneとApple Watch)だとある程度確信を持って言えるかもしれない。でも、それには高度な機器が必要だね。ほとんどのBluetooth LE通信は非暗号化の周波数ホッピング方式だから。最後に、ラジオフィンガープリンティングは学術界では広く知られてるけど、特別な機器が必要なんだ。

「150日の開示ウィンドウに合意した」。これって、GoogleのProject Zeroが修正を公開するまでの期間より長くない?

これとhttps://github.com/ArgeliusLabs/Chasing-Your-Tail-NGの違いって何だろう?

それ、Bluetoothには全然対応してない気がするんだけど、どうかな?

これは視覚的な手がかりを集めるのとあまり変わらないよね。配達バンが到着するのが見えるし、ドライバーの顔も見えるし、通行人も同じ。最大の違いは、カメラは目立たなきゃいけないけど、Bluetooth受信機は見えないし検出もされないってこと。しかも、もっと安いしね。

自宅オフィスから配達ドライバーのパターンを受動的に検出するって部分はすごいね。BLEがチャットするのは知ってたけど、デバイスペア(電話 + 時計)を関連付けて動きのプロファイルを構築できるなんて、本当に不気味だよ。どのデバイスが必要ないときに放送してるかを監査したくなるね。

「AdGuardでネットワーク全体の広告をブロックする」って言ってたけど、Piholeでブロックする方がいいよ。

Ring: アイデアありがとう。「Ring Face-Offを紹介します。侵入時に顔を隠すマスクをしていても問題ありません。泥棒が私たちのRingネットワークに顔を見せるまで追跡します。」