
Broadcom および Cypress チップ向けの Bluetooth 実験フレームワーク
Broadcom チップは、すべての iPhone、MacBook、Samsung Galaxy S シリーズ、旧型の Google Nexus シリーズ、旧型の ThinkPad、Raspberry Pi、さまざまな IoT デバイス、その他多くのデバイスを含む、約10億台のデバイスで使用されています。2016年、Cypress は Broadcom の IoT 部門を買収しました。以降、Broadcom が Apple や Samsung などの非 IoT 顧客を維持したため、ファームウェアのバリアントはわずかに分岐しました。しかし、ファームウェアの相互作用と更新メカニズムは同じままでした。私たちは、オペレーティングシステムがこのファームウェアにパッチを適用し、それと相互作用する方法をリバースエンジニアリングしました。それに基づいて、ファームウェアにパッチを適用できる Bluetooth 実験フレームワークを開発しました。これにより、リンク層でのパケットの注入や監視など、フルスタックのソフトウェア定義無線実装でのみ可能だったさまざまな機能を実現できます。
InternalBlue は、Secure Mobile Networking Lab(SEEMOO)での私たち自身の研究に使用されただけでなく、KNOB および BIAS 攻撃プロトタイプは InternalBlue の LMP メッセージを使用して実装され、SweynTooth 攻撃も LCP メッセージの作成に InternalBlue を使用して実験を行いました。btlejack や Ubertooth などのツールとは異なり、InternalBlue は中間者(Machine-in-the-Middle)攻撃を実行することを目的としていないことに注意してください。ただし、InternalBlue を実行しているデバイスは任意のパケットを送信でき、既存の接続にこれらのパケットを注入することもできます。モニタリング中は、InternalBlue を実行しているデバイスが受信したすべてのパケットがキャプチャされ、パケットロスは発生しません。InternalBlue は、暗号化された接続やクラシック Bluetooth の解析に関しても問題はありません。セキュリティ研究のための特定の機能リクエストがある場合は、お気軽にチケットを開いてください。
セキュリティ研究に加えて、InternalBlue は Bluetooth Low Energy のパフォーマンス統計や改善などのさらなる解析の可能性も開きます。Bluetooth スタック内で改善できるものはすべて、既製のデバイス上で直接テストできます。
私たちの最近の研究には Frankenstein があります。これは、スレッドスイッチや仮想モデム入力を含むファームウェアをエミュレートします。エミュレートされたファームウェアは Linux ホストに接続できます。したがって、このアプローチはフルスタックです。主にファジングに使用し、ホストの応答をトリガーする必要がある脆弱性を発見しました。Frankenstein は別のリポジトリにありますが、物理デバイス上で状態スナップショットなどを取得するために InternalBlue に依存しています。
さらに、私たちはちょうど Polypyus を公開しました。これは IDA や Ghidra に依存せずに、バイナリのみでのバイナリ差分解析を可能にします。ただし、さらなる解析のための適切な開始点を特定することで、そのワークフローに統合されます。私たちはすでにさまざまな Broadcom Wi-Fi および Bluetooth ファームウェアで試用しています。
CVE-2020-6616 の解析中に実施した乱数生成器の測定をお探しですか? それらはこちらにあります。
また、iOS および Android 上の Frida を使用した、より動的な HCI フックもいくつかあります。これを MitM 攻撃時のユーザーインターフェースの警告動作の調査に使用しました。ただし、他の多くの実験にも役立つ可能性があります。
Spectra 👻🌈 の影響により、ドライバの初期化後は RAM の書き込みおよび読み出しコマンドが無効になります。これに対する回避策は、対応する Android および iOS の手順に記載されています。必要に応じて、他のデバイス用のバイパスも後日提供されます。
Copyright 2018-2021 The InternalBlue Team
ここに、無償で、本ソフトウェアおよび関連する文書ファイル(以下「本ソフトウェア」)のコピーを入手したすべての人に対し、本ソフトウェアの使用、複製、変更、結合、公開、配布、サブライセンス、および/または本ソフトウェアのコピーの販売を含め、制限なく本ソフトウェアを扱う権利を許可します。また、本ソフトウェアが提供されるすべての人に対しても、以下の条件に従うことを条件として、これを許可します。
上記の著作権表示およびこの許可表示は、本ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。
本ソフトウェアは「現状のまま」で提供され、明示的または黙示的を問わず、商品性、特定目的への適合性、および非侵害性の保証を含むがこれらに限定されない、いかなる種類の保証もありません。いかなる場合も、著作者または著作権保有者は、契約行為、不法行為、またはその他の方法にかかわらず、本ソフトウェアまたは本ソフトウェアの使用またはその他の取引に起因または関連して生じたいかなる請求、損害、その他の責任も負わないものとします。