クアルコムのEDLモードを標的とするエクスプロイト、一部のXiaomi、OnePlus、Nokia、その他のデバイスに影響

Qualcomm デバイスには EDL モードがあり、OEM がリリースした適切なツールを持っていれば悪用できるようです。

Qualcomm チップセットを搭載したデバイスには、 Pリムリー Bおっとoader (PBL) は通常 Android システムを起動しますが、EDL モードとして知られる代替ブート モードも備えています。 EDLモードはクアルコムの E緊急事態 D自己負荷 Mode を許可します オリジナルの E設備 Mメーカー (OEM) がデバイスにフラッシュ ソフトウェアを強制的に適用します。 これは変更できず (読み取り専用モード)、デバイスのストレージを完全に制御できます。 OnePlus や Xiaomi を含む多くの OEM は、EDL モードを利用するツール (プログラマと呼ばれる) をリリースしています。 これはデバイスのブリックを解除するための Firehose として知られるプロトコルであり、Nokia などの企業の他のツールも流出しています。 Firehose は、デバイスのメモリ内のデータを調べる機能に加えて、デバイスをフラッシュするための多数のコマンドを利用できます。 セキュリティ研究者 ローイー・ヘイ (@roeehay) そして ノーム・ハダッド から アレフ研究 このモードを使用して重大なデバイスの脆弱性を発見した場合、攻撃者は事実上攻撃を許可されます。 フルデバイスアクセス.

注意することが重要です このエクスプロイトにはデバイスへの物理的なアクセスが必要ですが、それでも非常に危険であり、パッチを適用できない可能性があります。. 攻撃者は、EDL モードに付与されたアクセス レベルを利用して、Nokia 6 のセキュア ブートをバイパスし、 信頼の連鎖を実現し、Android OS を含むブート シーケンスのあらゆる部分で完全なコード実行を実現します。 自体。 これは他のデバイスでも同様に機能すると理論づけられており、研究者らはデータを失うことなく複数の Xiaomi デバイスのロックを解除してルート化することにも成功しました。

このエクスプロイトの影響を受けるデバイスは何ですか?

まず、影響を受けるデバイスです。

影響を受けるデバイスのリスト。

  • LG G4
  • ノキア 6 (d1c)
  • ノキア5
  • Nexus 6 (シャム)
  • Nexus 6P(アングラー)
  • Moto G4 プラス
  • OnePlus 5 (チーズバーガー)
  • ワンプラス 3T
  • ワンプラス3
  • ワンプラス2
  • ワンプラス X
  • 1 + 1
  • ZTE アクソン 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Note 5A (アグライト)
  • Xiaomi Note 5 Prime (ugg)
  • Xiaomi Note 4 (ミド)
  • Xiaomi Note 3 (ジェイソン)
  • Xiaomi Note 2 (サソリ)
  • Xiaomi ミックス (リチウム)
  • Xiaomi Mix 2 (カイロン)
  • Xiaomi Mi 6 (サジット)
  • Xiaomi Mi 5s (山羊座)
  • Xiaomi Mi 5s Plus (ナトリウム)
  • Xiaomi Mi 5x (ティファニー)
  • Xiaomi Mi 5 (ジェミニ)
  • Xiaomi Mi 3 (カンクロ)
  • Xiaomi Mi A1 (ティソ)
  • Xiaomi Mi Max2 (酸素)
  • Xiaomi Redmi Note 3 (ケンゾー)
  • Xiaomi Redmi 5A (リバ)
  • Xiaomi Redmi 4A (バラ色)

続きを読む

Android スマートフォンの悪用

典型的な Android Qualcomm 携帯電話の起動シーケンス

どのように悪用されるかを説明する前に、まず一般的な Android デバイスの起動シーケンスを理解することが重要です。 の Sソフトウェア Bおっとoader (SBL) は、imem にロードされる前に信頼性がチェックされる、デジタル署名されたブートローダーです。 imem は、デバッグと DMA に使用される高速オンチップ メモリです (d正しい メートル思い出 あるccess) トランザクションに使用され、Qualcomm チップセットが独自に所有しています。

一部のデバイスには eバツ引っ張りやすい BおっとSBL の代わりにロード (XBL) を使用しますが、ブート プロセスはほぼ同じです。 次に、SBL または XBL は、fastboot を実装する ABOOT を起動します。 これに続いて、TrustZone (ハードウェアベースのセキュリティ) も搭載されます。 TrustZone は、ハードウェアベースのルート証明書を使用して ABOOT の信頼性をチェックします。 SBL (場合によっては XBL) は、不正に署名された (または署名されていない) ABOOT を拒否するように設計されています。

認証されると、ABOOT は Linux カーネルを起動する前に /boot と /recovery の信頼性をチェックします。 いくつかのシステムの準備が完了すると、コードの実行がカーネルに転送されます。 ABOOT は一般に「Android ブートローダー」として知られており、デバイスのブートローダーのロックを解除すると、ABOOT でこの信頼性チェックが無効になります。

標準的な Android デバイスの起動シーケンスを視覚化します。 // ソース: アレフ研究

EDLモードへのアクセス

一部のデバイスには単純なハードウェアの組み合わせ (またはさらに悪いことに、多くのデバイスには単純な独自の fastboot コマンドが存在します) が備わっています。 Xiaomi デバイスなど)、Nokia デバイスなどの他のデバイスでは、デバイスのメインにある「テスト ポイント」として知られるピンをショートさせる必要があります。 ボード。 また、2017 年 12 月のセキュリティ パッチが適用される前は、多くのデバイス (Nexus 6 および 6P を含む) で「adb reboot edl」を実行するだけで EDL モードに入ることが可能でした。 この問題はその後修正されました。

テスト ポイントは、デバイスのメインボードの下部に描かれた黄色のボックスに表示されます。 // ソース: アレフ研究

他のデバイスでは、いわゆる「ディープ フラッシュ」ケーブルを使用することもできます。これは、システムに代わりに EDL モードで起動するように指示するために、特定のピンが短絡された特別なケーブルです。 古い Xiaomi デバイスは、Nokia 5 および Nokia 6 とともにこの方法を利用できます。 他のデバイスも、SBL の検証に失敗した場合に EDL モードで起動します。

ディープフラッシュケーブル

EDL モードを利用して OnePlus 3/3T にフルアクセスを取得する

EDL モードは、デバイス上でさまざまな方法で利用できますが、主にデバイスを強制的にフラッシュすることでデバイスのブロックを解除することができます。 上で説明したように、最悪の場合のシナリオとして、メーカーによって正式に署名されていないソフトウェアが ABOOT によって拒否されるため、理論的には誰でもこのモードにアクセスするのは安全です。 これは事実ですが、研究者らが示した概念実証エクスプロイトでは、OnePlus 3 または 3T とそのファイルを完全に制御することが実際に可能です。

これは、OnePlus が古いバージョンの ABOOT (Android ブートローダー)、デバイスのブートローダーのロックを解除し (起動時にユーザーに警告が表示されることなく)、無効にします。 dm_verity。 dm_verity は検証済みブートとも呼ばれ、Android デバイスの安全な起動シーケンスの一部です。 2 つのコマンドは次のとおりです。

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Firehose プロトコルを利用する以下の簡単な 4 ステップのプロセスを観察してください。

  1. まず、デバイスを EDL モードで起動します。 これは、OxygenOS 5.0 以前の adb を使用するか、単純なハードウェア キーの組み合わせを使用して実行できます。
  2. OxygenOS 4.0.2 以下の古いシステム イメージをダウンロードします。
  3. firehose 経由で aboot.bin をフラッシュします (前述したように、aboot.bin は fastboot を実装していることを思い出してください)
  4. セキュアブートを無効にしてブートローダーのロックを解除できるようになります。 デバイスを拭かずに 上記の 2 つの fastboot コマンドを使用するだけです。

覚えているのではないかと思いますが、OnePlus は約 1 年前に 2 つの危険な fastboot コマンドを残していることが判明しました。1 つはブートローダーのロックを解除し、もう 1 つはセキュア ブートを無効にするものでした。 攻撃者であることは事実ですが、 デバイスに悪意のあるソフトウェアをインストールできない、彼らはできます デバイスをダウングレードする 持つため 古い、攻撃ソフトウェアに対して脆弱. 上記の fastboot コマンドを実行するだけで、攻撃者は 全権アクセス デバイスに。

以上で、ブートローダーのロックが解除され、セキュア ブートがオフになり、データの損失はまったくありません。 攻撃者がこれをさらに一歩進めたい場合は、ユーザーが決して知らないデバイスへの root アクセスを可能にする悪意のあるカスタム カーネルをフラッシュする可能性があります。

Firehose は Qualcomm Sahara プロトコルを通じて動作します。このプロトコルは OEM 署名済みプログラマを受け入れ、上記の攻撃が実行される方法です。 デバイスに接続すると、USB 経由の SBL として機能します。 ほとんどのプログラマーが使用するのは、 消防ホース 研究者らはこれを利用してデバイスを完全に制御できるようにしました。 研究者らはこれを次の目的にも利用しました。 変更したイメージをフラッシュするだけで Xiaomi デバイスのロックを解除できます これでブートローダーのロックが解除されました。 次に、root アクセスを許可するカスタム カーネルをフラッシュし、SELinux を許可モードで起動し、暗号化されたユーザーデータ イメージをデバイスから抽出しました。

結論

OEM がこれらのプログラマーをクアルコムからリリースする理由は不明です。 Nokia、LG、Motorola、Google のプログラマーは解放されるのではなく漏洩したが、研究者たちはなんとか Nokia 6 の信頼チェーン全体を破壊し、同様の方法でデバイスへの完全なアクセスを取得します。 搾取。 彼らは、これらのプログラマーをサポートするあらゆるデバイスに攻撃を移植できると確信しています。 可能であれば、OEM はハードウェア qFuse を利用する必要があります。これは、デバイスのハードウェアがロールバックされたときに溶断することでソフトウェアのロールバックを防ぎ、ロールバックが発生したことをユーザーに警告できます。 興味のある方は、以下の研究論文全文をご覧ください。また、Nokia の活用法全体も読むことができます。


出典: アレフリサーチ