[論文レビュー] Frankenstein: Advanced Wireless Fuzzing to Exploit New Bluetooth Escalation Targets
Frankenstein は、仮想化環境で特許権のあるファームウェアを実行することにより、Bluetooth チップにおけるオーバー・ザ・エア(OTA)脆弱性の高速で繰り返し可能かつデバッグ可能な発見を可能にするファームウェアエミュレーションベースのファズィングフレームワークである。このフレームワークは、Broadcom および Cypress の Bluetooth スタックにおいてゼロ・クリック RCE 脆弱性を特定した。これには、Wi-Fi 共存の欠険と Bluetooth 5.2 標準仕様の設計上の欠陥が含まれており、チップに依存しない Android の RCE(BlueFrag)を明らかにした。
Wireless communication standards and implementations have a troubled history regarding security. Since most implementations and firmwares are closed-source, fuzzing remains one of the main methods to uncover Remote Code Execution (RCE) vulnerabilities in deployed systems. Generic over-the-air fuzzing suffers from several shortcomings, such as constrained speed, limited repeatability, and restricted ability to debug. In this paper, we present Frankenstein, a fuzzing framework based on advanced firmware emulation, which addresses these shortcomings. Frankenstein brings firmware dumps "back to life", and provides fuzzed input to the chip's virtual modem. The speed-up of our new fuzzing method is sufficient to maintain interoperability with the attached operating system, hence triggering realistic full-stack behavior. We demonstrate the potential of Frankenstein by finding three zero-click vulnerabilities in the Broadcom and Cypress Bluetooth stack, which is used in most Apple devices, many Samsung smartphones, the Raspberry Pis, and many others. Given RCE on a Bluetooth chip, attackers may escalate their privileges beyond the chip's boundary. We uncover a Wi-Fi/Bluetooth coexistence issue that crashes multiple operating system kernels and a design flaw in the Bluetooth 5.2 specification that allows link key extraction from the host. Turning off Bluetooth will not fully disable the chip, making it hard to defend against RCE attacks. Moreover, when testing our chip-based vulnerabilities on those devices, we find BlueFrag, a chip-independent Android RCE.
研究の動機と目的
- 閉形式の Bluetooth ファームウェアにおけるリモートコード実行(RCE)脆弱性を発見するための OTA ファズィングの限界(低速、再現性の低さ、デバッグの困難さ)を解消すること。
- ホストOSとの相互運用性を維持したまま、ファームウェアをエミュレートし、生の無線フレームを注入することで、フルスタックかつ現実的なエクスプロイトを可能にすること。
- Apple、Samsung、Raspberry Pi デバイスに広く採用されている Bluetooth チップにおけるゼロ・クリック RCE 脆弱性を特定・公開すること。
- Bluetooth 5.2 標準仕様および共存メカニズムに内在する設計上の欠陥を明らかにし、Bluetooth チップ境界を越えて特権昇格を可能にするものである。
- ファームウェアレベルの RCE を通じて、Android デバイスにおける永続的でチップに依存しないリモートエクスプロイト(例:BlueFrag)の実現可能性を示すこと。
提案手法
- QEMU のユーザーモードエミュレーションを用いて、逆アセンブルを必要とせずに、仮想化環境で特許権のある Bluetooth ファームウェアイメージを実行する。
- フレーム受信後にスナップショットベースの回復を導入することで、ファズィングを高速化し、ホストOSとの状態の一貫性を維持する。
- エミュレートされたチップの仮想モデムに生の無線フレームを注入し、ファームウェアの挙動を引き起こし、クラッシュを引き起こす入力を監視する。
- C 言語プログラミング環境を用いてファームウェアイメージと対話することで、仮説の検証とコードパス解析を可能にする。
- 従来の OTA ファズィングでは検出できないが、危険な RCE 脆弱性(クラッシュしないもの)をエミュレーションによって分析する。
- ファームウェアエミュレーションとハードウェア共存分析を組み合わせ、Wi-Fi/Bluetooth のリソース共有を悪用して特権昇格を実現する。
実験結果
リサーチクエスチョン
- RQ1ファームウェアエミュレーションは、閉形式の Bluetooth ファームウェアに対する高速で繰り返し可能かつデバッグ可能な OTA ファズィングを可能にするか?
- RQ2ペアリングやユーザーの操作なしに利用可能な、Bluetooth チップにおける RCE 脆弱性は何か?
- RQ3Bluetooth ファームウェアの脆弱性が、チップ境界を越えて Wi-Fi または OS カーネルに特権昇格をもたらす可能性はどの程度か?
- RQ4Broadcom のコンボチップのような共存メカニズムは、Wi-Fi サブシステムに対するリモートエクスプロイトを可能にするか?
- RQ5Bluetooth 5.2 に仕様レベルの欠陥があり、リンクキーの抽出やリモートコード実行を可能にするものがあるか?
主な発見
- Frankenstein は、OTA メソッドと比較してファズィング速度が 100 倍以上向上し、ホストOSとのリアルタイム対話とフルスタックのバグ検出を可能にした。
- Broadcom および Cypress の Bluetooth スタックに、ゼロ・クリック RCE 脆弱性が 3 つ発見された。これは、BLE に 1 つ、クラシック Bluetooth に 2 つであり、そのうち 1 つは iPhone 11 でカーネルクラッシュを引き起こした。
- Wi-Fi/Bluetooth 共存の欠陥が発見され、共有 RF リソースを悪用することで、複数のデバイス(iPhone や Samsung Galaxy S8 を含む)でリモートでのカーネルクラッシュが可能になった。
- Bluetooth 5.2 標準仕様に、ホストからリンクキーを抽出可能にする設計上の欠陥が特定され、長期的な認証バイパスが可能になった。
- Android に BlueFrag RCE 脆弱性が発見され、ファームウェア固有のパッチなしに複数のデバイスで動作するチップに依存しないリモートコード実行チェーンを実証した。
- 責任ある公開プロセスにおいて深刻な遅延が判明した:CVE-2019-11516 は Broadcom 内部で 2018 年 2 月から知られていたが、Samsung Galaxy S8 では 2019 年 9 月までパッチが適用されず、組み込みファームウェアにおけるパッチ適用の深刻な課題を示した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。