1 ポイント 投稿者 GN⁺ 2023-12-28 | 1件のコメント | WhatsAppで共有

'Operation Triangulation' 攻撃チェーン

  • 悪意ある iMessage 添付ファイルを送信し、ユーザーに気付かれないままアプリケーション内で処理させる。
  • この添付ファイルは、文書化されていない Apple 専用の ADJUST TrueType フォント命令にあるリモートコード実行脆弱性 CVE-2023-41990 を悪用する。
  • リターン指向/ジャンプ指向プログラミングと、NSExpression/NSPredicate クエリ言語で書かれた多段階処理を使って JavaScriptCore ライブラリ環境にパッチを当て、JavaScript で書かれた権限昇格エクスプロイトを実行する。
  • JavaScript エクスプロイトは完全に判読不能なほど難読化されており、サイズも最小化されている。約 11,000 行のコードの大半は、JavaScriptCore とカーネルメモリの解析および操作に割かれている。
  • JavaScriptCore のデバッグ機能 DollarVM($vm) を利用し、スクリプトから JavaScriptCore のメモリを操作し、ネイティブ API 関数を実行できる能力を獲得する。
  • 旧型・新型の iPhone の両方をサポートするよう設計されており、最新モデルの脆弱性を悪用するための Pointer Authentication Code(PAC) バイパスも含まれる。
  • XNU のメモリマッピングシステムコール (mach_make_memory_entry および vm_map) にある整数オーバーフロー脆弱性 CVE-2023-32434 を悪用し、ユーザーレベルからデバイスの全物理メモリへの読み書きアクセスを獲得する。
  • ハードウェアのメモリマップド I/O(MMIO) レジスタを使用して Page Protection Layer(PPL) を回避する。これは CVE-2023-38606 によって緩和された。
  • すべての脆弱性の悪用後、JavaScript エクスプロイトはデバイス上で任意の処理を実行できるようになり、スパイウェアを直接実行する代わりに IMAgent プロセスを起動してデバイス上のエクスプロイト痕跡を消去するペイロードを注入するか、Safari プロセスを不可視モードで実行して次段階を含む Web ページへ転送する。
  • Web ページには被害者を確認するスクリプトがあり、検査を通過すると次段階である Safari エクスプロイトを受け取る。
  • Safari エクスプロイトは CVE-2023-32435 を使用してシェルコードを実行する。
  • シェルコードは Mach オブジェクトファイル形式の別のカーネルエクスプロイトを実行する。これは CVE-2023-32434 および CVE-2023-38606 と同じ脆弱性を使用する。サイズと機能の面で非常に大規模だが、JavaScript で書かれたカーネルエクスプロイトとは完全に異なる。関連部分は両エクスプロイトで共有しているものの、コードの大半はカーネルメモリの解析と操作に割かれている。さまざまな侵入後ユーティリティを含むが、そのほとんどは使用されていない。
  • エクスプロイトは root 権限を獲得し、スパイウェアをロードする別の段階を実行する。

謎と CVE-2023-38606 脆弱性

  • 最近の iPhone モデルには、カーネルメモリの機微な領域に対する追加のハードウェアベースのセキュリティ保護機能がある。
  • この保護機能は、攻撃者がカーネルメモリの読み書きを可能にしたとしても、デバイスを完全には制御できないようにするためのものだ。
  • 攻撃者は、Apple が設計した SoC の別のハードウェア機能を使って、このハードウェアベースのセキュリティ保護を回避した。
  • 攻撃者は、データ、宛先アドレス、データハッシュを、ファームウェアで使用されていないチップ上の未知のハードウェアレジスタに書き込む方法で、ハードウェアベースのメモリ保護を回避した。
  • この未知のハードウェア機能は、おそらく Apple のエンジニアや工場がデバッグやテスト目的で使うことを意図していたか、あるいは誤って含められたものと推定される。

技術的詳細

  • SoC 上のさまざまな周辺機器は、CPU がそれらを動作させるために使用できる特殊なハードウェアレジスタを提供する。
  • これらのハードウェアレジスタは CPU がアクセスできるメモリにマップされており、「メモリマップド I/O(MMIO)」として知られている。
  • Apple 製品(iPhone、Mac など)の周辺機器 MMIO アドレス範囲は、DeviceTree という特殊なファイル形式に保存されている。
  • 攻撃で使用された MMIO の大半は、DeviceTree で定義されたどの MMIO 範囲にも属していない。
  • 攻撃者がファームウェアで未使用の MMIO をどのように突き止めたのか、またどの周辺機器がこの MMIO アドレスに属するのかは不明である。
  • これらの MMIO レジスタは GPU コプロセッサに属することが確認されている。
  • 攻撃者はこれらの MMIO レジスタを使って Page Protection Layer(PPL) を回避し、ページテーブルエントリのパッチ適用に利用した。
  • ハッシュ計算の方法により、攻撃で使われたこのハードウェア機能は、要求された位置に対してデータの直接メモリアクセス(DMA) 操作を実行できる。

GN⁺の見解

  • この研究は、iPhone を標的とした非常に高度な攻撃チェーンを明らかにしている。これはセキュリティ研究者にとって極めて重要な発見であり、Apple 製品のセキュリティ強化に貢献しうる。
  • 攻撃者がファームウェアで未使用のハードウェア機能をどのように突き止めたのかは、依然として謎のままである。これはハードウェアセキュリティ研究の重要性を強調している。
  • この記事は、ソフトウェアおよびハードウェアセキュリティに関心のある人々にとって非常に興味深い内容を提供する。高度に複雑な攻撃手法と、それを分析する過程は、セキュリティ研究の深さと必要性を示している。

1件のコメント

 
GN⁺ 2023-12-28
Hacker Newsの意見
  • MMIO悪用で驚くべき点

    • 攻撃者は非常に高い研究能力を持っていたか、あるいはより可能性が高いのは、Appleを侵害して内部のハードウェア文書を入手していたこと。
    • Appleはこの機能が危険だと認識しており、それを隠したうえでデジタル署名機能によって追加保護していた。
    • シリコンの分解とリバースエンジニアリングなしにこの機能を見つけるのは不可能なので、開発者を侵害して内部文書を盗んだ可能性がある。
    • Safari経由で別の脆弱性チェーンを使って再侵害するやり方は、内部的にかなり分離された大規模組織を示唆している。
    • 研究者たちがロシア人である点を考えると、これはNSAやGCHQの仕事である可能性が高い。
    • マルウェアは広告トラッキングを有効化でき、セキュリティ研究者がよく使うクラウドiPhoneサービスのホスティングを検出できる。
    • iOS/macOSマルウェアプラットフォームは10年以上かけて開発されており、画像バイトをアップロードせずに、端末上で写真の物体認識やOCRのためにMLを利用する。
    • セキュリティによる隠蔽は効果がないという主張には同意しない。このプラットフォームは10年間知られずに使われてきた。
  • Steve WeisのTwitter要約

    • iMessage脆弱性は驚異的で、90年代から存在するTrueType脆弱性、2件のカーネル脆弱性、ブラウザ脆弱性、そしてリリース済みソフトウェアでは使われていない未文書のハードウェア機能が含まれる。
  • Coresightについての説明

    • Coresightはバックドアではなく、すべてのARM CPUのデバッグ機能である。
    • Appleのメモリ保護機能と連携するために必要なCoresightの拡張のように見える。
    • 公開文書がないにもかかわらず、何千人ものAppleエンジニアが、これを活用できる改変版gdbや他のツールにアクセスできるはずだ。
  • MMIOレジスタ発見可能性についての推測

    • すべてのレジスタアドレスを無作為に探索してMMIOレジスタを発見できた可能性についての疑問。
    • タイミング差だけでも有効なアドレスだと分かったはずで、20ビットハッシュであれば総当たりで解けたはずだ。
  • チップのデバッグ機能でデータハッシュを使う理由への疑問

    • 本番環境では無効化されるべきデバッグ機能で、ハッシュを使う目的への疑問。
    • 電子エンジニアではないが、デバッグ機能は干渉を最小限にするため、単純かつ高速に動作するのが最善だ。
    • サプライチェーン攻撃者がこれをすべてのAppleチップに仕込めた可能性は極めて低い。
  • ハッシュアルゴリズムの特徴に関する観察

    • すべてのデータが0のときハッシュ値も0になり、単一ビットに対してはsboxテーブル内の単一値を持つ。
    • このようなハッシュアルゴリズムは、内部文書がなくてもリバースエンジニアリング可能だったかもしれない。
  • 攻撃者の労力への感嘆

    • このような攻撃者たちは、自分たちの仕事について正当に評価されないことに不満を感じるのだろうか、という疑問。
  • 攻撃者が利用した機能についての説明

    • 攻撃者はハードウェアベースのメモリ保護を回避して、特定の物理アドレスにデータを書き込める。
    • ファームウェアで使われていないチップ上の未知のハードウェアレジスタに、データ、宛先アドレス、データハッシュを書き込む方式である。
  • 新たに発見された脆弱性の重要性

    • 新しい脆弱性を得ることよりも、自分の脆弱性が侵害されうるかを知ることのほうが重要だ。
    • 防諜作戦を防ぐことができる。