「usbliter8」と名付けられた新たなBootROM脆弱性が、A12、S4/S5、A13 SoCを搭載するAppleデバイスに影響を与えることが判明しました。
このエクスプロイトは、Synopsys DWC2 USBコントローラのハードウェアレベルのバグとファームウェア設定の欠陥を連鎖させ、アプリケーションプロセッサのブートチェーン全体の侵害を実現します。変更不可能なROMコードに起因するため、影響を受けるハードウェアに対するソフトウェアパッチによる修正は不可能です。
この脆弱性の根源は、DWC2 USBコントローラが受信USBセットアップパケットのDMA(ダイレクトメモリアクセス)を管理する仕組みにあります。コントローラはリングバッファ機構を使用して、最大3つの連続したセットアップパケットをメモリに格納します。
4つ目のセットアップトランザクションを受信すると、書き込みポインタをリセットするためにDOEPDMAレジスタが固定値24バイト分デクリメントされます。
致命的な欠陥はここにあります。コントローラは4バイト単位で格納される小さなパケットも受け付けるため、ポインタのインクリメント量が固定の24バイトデクリメントと必ずしも一致しません。
この不一致により、12バイト単位のバッファアンダーフローが引き起こされ、USBへの物理的なアクセスを持つ攻撃者が任意のSRAMデータを上書きできます。
A12およびA13では、USB DART(デバイスアドレス解決テーブル)がSecureROMにおいてバイパスモードに設定されており、これらの境界外書き込みを防ぐメモリ分離の壁が存在しません。
研究者らは、A11については各パケット処理後にUSBドライバがDMAアドレスを手動でリセットするため、脆弱性の影響を受けないことを確認しています。A14以降の世代はSecureROMでDARTが正しく設定されており、新しいシリコンではこのバグを悪用することができません。
A12およびS4/S5では、悪用手法は比較的シンプルです。DMAバッファはヒープ上でUSBタスクのスタックと隣接しているため、アンダーフローによって保存されたリンクレジスタ(LR)を直接上書きできます。
続いてコンパクトなROPチェーンがDMAの転送先アドレスをブートトランポリン(EL0やEL1からは書き込み不可ですが、DMAからは完全にアクセス可能な領域)に向け、攻撃者が制御するシェルコードを注入した上で実行をリダイレクトし、EL1権限の取得を実現します。
A13では、ポインタ認証(PAC)によってLRの直接改ざんが難しくなっています。そのため研究者らは、DARTヒープ構造の制御された上書き、16バイトのゼロ書き込みプリミティブ、そしてグローバルなパニック深度カウンタを狙った0xF書き込みを組み合わせた多段階の手法を採用しました。
これにより、パニック発生時に再起動ではなく無限ループに陥るよう誘導します。USBタスクの実行状態に合わせてDMA書き込みのタイミングを精密に調整することで、タスクのコンテキストを十分な時間保持し、BSS上のUSB IRQハンドラエントリを上書きして、引数も制御された完全なプログラムカウンタ(PC)制御を実現しました。
PCを制御した後、エクスプロイトはROM内のiBootジャンプ関数に存在するSVC 0トランジションにコードフローをリダイレクトし、EL0からEL1への権限昇格を実現します。
A13ではSRAMがほぼ全面的に破損した状態からのクリーンアップが複雑なため、チームはSecureROM全体を再起動し、パッチ済みROMイメージをSRAMの先頭にコピーしてMMU経由で元のROM仮想アドレス空間に再マップすることで、PCに相対したメモリアクセスが正常に動作するよう保証しています。
エクスプロイト成功後に得られる能力は非常に大きなものです。SoCデモーションにより本番モードを一時的に下げてデバッグ機能のロック解除が可能となり、未署名iBootのブートにより署名検証なしで任意のiBootイメージを読み込むことができます。
カスタムUSBリクエストハンドラはDFUセッション全体を通じて持続的に注入され、ツールチェーンとの互換性を確保するための標準的な悪用マーカーとして「PWND」文字列がUSBシリアル番号に付加されます。
usbliter8は変更不可能なBootROMコードのハードウェア上の欠陥を悪用するため、ファームウェアのアップデートで修正することは不可能です。
iPhone XS/XRからiPhone 11シリーズ、および関連するApple WatchやiPadモデルを含む、影響を受けるA12およびA13搭載デバイスは、使用期間を通じて永続的に脆弱性を抱え続けることになります。
AppleのSecure Enclave Processor(SEP)はユーザーデータを保護する追加のセキュリティ境界を提供していますが、研究者らはusbliter8がSecure Enclaveを間接的に狙うための、より広範な攻撃ベクターを開く可能性があると指摘しています。
この研究は公開前にApple製品セキュリティチームと調整が行われており、研究チームはAppleがプロセス全体を通じて迅速かつ建設的に対応したことを評価しています。
翻訳元: https://cyberpress.org/new-iphone-bootrom-flaw/