BluetoothとBLEへの攻撃
Bluetoothデバイスを傍受し、悪用する方法を学びます。
「BluetoothとBLEへの攻撃」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
Bluetoothの攻撃対象領域
Bluetoothは、ヘッドセット、ロック、医療機器、フィットネストラッカー、車載インフォテインメント、産業用センサーなど、あらゆる場所で使われています。このブランドには、2つの異なる技術が含まれます。
- Bluetooth Classic (BR/EDR) — スループットが高く、音声やファイル転送に使用されます。
- Bluetooth Low Energy (BLE) — 低消費電力で、IoT、ウェアラブルデバイス、スマートロックに使用されます。
両者は無線の動作、ペアリング、プロトコルスタックが異なるため、一方への攻撃がもう一方にも適用できることはほとんどありません。BLEはIoTの主流であり、安全でない状態で導入されることが多いため、現代の評価の大半で焦点となっています。
BLEの通信方法
BLEは2.4 GHz帯で、40チャンネルにわたって動作します。そのうち3つ(37、38、39)は検出に使用されるアドバタイジングチャンネルで、残りの37チャンネルが接続中のデータを伝送します。
中核となるデータモデルはGATT(Generic Attribute Profile)です。
- サービスは、関連する機能をまとめたものです。
- キャラクタリスティックは、読み取り、書き込み、または購読が可能な個々のデータ項目です。
- それぞれにUUIDとハンドルがあります。
GATTテーブルを列挙すると、デバイスが公開している内容を正確に把握できます。これがBLE評価の中心となります。
デバイスの検出と列挙
偵察は、アドバタイジングパケットをスキャンして通信範囲内に何があるかを把握し、続いて接続してGATTデータベースを列挙することから始まります。
Linuxでは、BlueZスタックとbluetoothctl、hcitool、gatttoolなどのツールを使ってデバイスをスキャンし、調査できます。スマートフォン用のnRF Connectも、優れたグラフィカルな代替手段です。
# Scan for advertising BLE devices
sudo hcitool lescan
# Interactive scan and connect
bluetoothctl
scan on
connect AA:BB:CC:DD:EE:FF
# Enumerate the full GATT database
gatttool -b AA:BB:CC:DD:EE:FF --primary
gatttool -b AA:BB:CC:DD:EE:FF --characteristicsBLEトラフィックのスニッフィング
デバイスとアプリの間の通信を観察するには、無線上の通信をスニッフィングします。BLEはチャンネル間をホップするため、スニファーは接続を追跡しなければなりません。
- Wireshark用のnRF SnifferプラグインとnRF52840ドングルの組み合わせが、標準的な低コストのキャプチャツールです。
- Ubertooth Oneは、BLEと一部のClassicトラフィックの両方をキャプチャできます。
- 最初のハンドシェイクを捉えるため、接続イベント中にキャプチャしてください。
Wiresharkは、キャプチャしたパケットをアドバタイジングデータ、接続要求、GATT操作に分解します。これにより、アプリが何を読み取り、何を書き込んでいるかを正確に把握できます。
BLEペアリングとその弱点
BLEのセキュリティは、ボンディング時に選択されたペアリング方式に依存します。
- Just Works — ユーザーによる検証がなく、設計上マン・イン・ザ・ミドル攻撃に対して脆弱です。安価なIoT機器で非常によく使われています。
- Passkey Entry — 6桁のコードを使用します。より安全ですが、実装が不適切だと総当たり攻撃が可能です。
- Numeric Comparison — 両方のデバイスに表示された番号を照合して確認します(LE Secure Connections)。
レガシーペアリング(4.2より前)は暗号学的に弱く、キャプチャしたハンドシェイクから鍵を復元できます。LE Secure ConnectionsはECDHを使用し、堅牢と見なされる唯一の方式です。
レガシーペアリングのクラッキング
デバイスがBLEのレガシーペアリングを使用している場合、キャプチャしたペアリングのやり取りに対して総当たり攻撃を行い、Temporary Key、最終的にはLong Term Keyを復元できます。
crackleツールを使うと、ペアリングイベントのpcapに対してこの処理を自動化できます。鍵を復元できれば、キャプチャ内にある以前の暗号化トラフィックを復号できます。
# Recover keys from a captured legacy pairing
crackle -i pairing_capture.pcap
# Decrypt the traffic using a recovered Long Term Key
crackle -i encrypted.pcap -o decrypted.pcap -l <recovered_ltk>能動的な攻撃:なりすましと書き込み
多くのBLEデバイスは、接続できる相手を無条件に信頼します。書き込み可能なキャラクタリスティックを列挙すると、認証なしでコマンドを直接発行できることがあります。
- 認証なしの書き込み — 制御用キャラクタリスティックに細工した値を送信すると、スマートロックのロックを解除したり、リレーを切り替えたりできます。
- デバイスのなりすまし — 周辺デバイスのMACアドレスとアドバタイジングを複製し、被害者のアプリにそのデバイスだと思わせます。
- GATTacker / Mirage — GATTトラフィックをプロキシすることで、周辺デバイスとの間にマン・イン・ザ・ミドル攻撃を行うフレームワークです。
典型的な指摘事項は、ロック解除コマンドが固定の平文書き込みで、誰でもリプレイできるスマートロックです。
プロキシによるマン・イン・ザ・ミドル攻撃
BLEのMITMプロキシは、対象の周辺デバイスを複製し、被害者のアプリを複製側に接続させたうえで、実際のデバイスにトラフィックを中継します。これにより通信全体が露出し、リアルタイムで変更できるようになります。
MirageやGATTackerなどのフレームワークは、アドバタイジングの複製と2つの無線のブリッジを自動化します。通信中のGATT操作をすべてキャプチャ、変更、またはリプレイできます。
# Clone and MITM a BLE peripheral with Mirage
mirage ble_mitm TARGET=AA:BB:CC:DD:EE:FF
# Scan and enumerate as part of recon
mirage ble_scan
mirage ble_info TARGET=AA:BB:CC:DD:EE:FFBluetooth Classicに関する考慮事項
Bluetooth Classicにも、固有の問題の歴史があります。代表的な例として、スタックレベルのリモートコード実行の脆弱性群であるBlueBorneと、暗号鍵を総当たり攻撃可能な長さまで短くするKNOB(Key Negotiation of Bluetooth)があります。
- 多くのヘッドセットや車載キットは、今でも弱いPINやデフォルトのPINを受け入れます。
- SDPによるサービス検出から、デバイスの機能やファームウェアに関する手がかりが漏れる可能性があります。
- 古いスタックには、既知のCVEに対するパッチが適用されていない場合があります。
Classicでは、評価の焦点はスタックのバージョン、ペアリングの強度、既知の脆弱なファームウェアとなります。
通信距離と追跡に関するプライバシー
常にアドバタイジングを行うBLEデバイスは、プライバシーと追跡に関するリスクを生みます。固定されたMACアドレスがあると、観察者は場所をまたいで人物を追跡できます。
- MACアドレスのランダム化は、追跡を防ぐためにアドレスを定期的に変更しますが、多くのデバイスでは実装が不十分であったり、まったく実装されていなかったりします。
- 識別可能なアドバタイジングペイロード(固定された名前やメーカー固有データ)があると、MACアドレスをランダム化していてもデバイスを再特定できます。
- 長距離用の指向性アンテナにより、実際のスニッフィング距離は公称10メートルを大幅に超えることがあります。
追跡される可能性を評価することは、BLEのプライバシーレビューにおける正当かつ重要な作業です。
Bluetoothデバイスの堅牢化
BLE評価で一般的に推奨される防御策は次のとおりです。
- Numeric Comparisonを使用するLE Secure Connectionsを採用し、重要な機能でJust Worksを使用した状態で出荷しないでください。
- リンク上にアプリケーション層の暗号化と認証を追加し、MITM攻撃者がコマンドをリプレイしたり偽造したりできないようにしてください。
- ロック解除などの制御コマンドには、セッションごとのノンスまたはローリングコードを実装してください。
- 適切なMACアドレスのランダム化を有効にし、識別につながるアドバタイジングデータを削除してください。
- Bluetoothスタックに、BlueBorne、KNOBなどの問題に対するパッチを適用した状態に保ってください。
繰り返し得られる教訓は、接続されたクライアントを無条件に信頼するアプリケーションでは、リンク層のセキュリティだけでは不十分だということです。
クイックチェック
BLEのペアリングセキュリティについて理解度を確認しましょう。
まとめ
これで、BluetoothおよびBLEデバイスをエンドツーエンドで評価できるようになりました。
- BLEは40チャンネルを使用し、サービスとキャラクタリスティックから成るGATTモデルを通じてデータを公開します。
- 偵察では、アドバタイジングをスキャンし、BlueZのツールまたはnRF ConnectでGATTデータベースを列挙します。
- nRF52840またはUbertoothによるスニッフィングで、プロトコル分析用のデータをWiresharkに取り込みます。
- Just Worksとレガシーペアリングは脆弱です。crackleを使うと、キャプチャしたレガシーのハンドシェイクから鍵を復元できます。
- 能動的な攻撃では、認証なしの書き込みや、Mirage、GATTackerなどのMITMプロキシが悪用されます。
- 防御には、LE Secure Connectionsに加え、アプリケーション層の認証とローリングコマンドが必要です。
次は、接続型プロトコルから離れ、RFIDとNFCを使った非接触タグに進みます。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「BluetoothとBLEへの攻撃」レッスンは無料ですか?
はい。「BluetoothとBLEへの攻撃」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「BluetoothとBLEへの攻撃」で何を学びますか?
Bluetoothデバイスを傍受し、悪用する方法を学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「BluetoothとBLEへの攻撃」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- RFとSDRの基礎
- BluetoothとBLEへの攻撃
- RFIDとNFCのセキュリティ
- 信号のキャプチャとリプレイ