iMessageを送信するだけでiPhoneの機密データにアクセスできるゼロデイ脆弱性「Triangulation」の詳細が公開、秘密のハードウェア機能が利用されていたことも明らかに
2023年6月に判明・修正されたApple製デバイスへのゼロクリック攻撃を可能にする脆弱(ぜいじゃく)性「Triangulation」について、この脆弱性を発見したセキュリティ企業のカスペルスキーが分析結果を発表しました。
Operation Triangulation: The last (hardware) mystery | Securelist
https://securelist.com/operation-triangulation-the-last-hardware-mystery/111669/
https://arstechnica.com/security/2023/12/exploit-used-in-mass-iphone-infection-campaign-targeted-secret-hardware-feature/
TriangulationはiMessageを送信するだけでマイクやカメラを含むデバイス内の機密データにアクセス可能になる脆弱性で、カスペルスキーによると少なくとも2019年から4年間に渡って悪用されているのが確認できたとのこと。この脆弱性はiPhoneだけでなく、Mac・iPod・iPad・Apple TV・Apple Watchに対しても攻撃可能でした。感染を検出するのは高度な知識を持つ人でも非常に困難とされています。
Appleがゼロデイ脆弱性を修正したセキュリティアップデートを実施、すでに悪用された可能性あり - GIGAZINE
2023年12月27日にカスペルスキーはTriangulationの分析結果を公表しました。攻撃チェーンは下図の通りとなっています。
チェーンの各段階において、攻撃は以下の様に行われるとのこと。
1:攻撃者が悪意のある添付ファイルをiMessageで送信
アプリケーションはユーザーに何も知らせることなくこのファイルを処理します。
2:添付ファイルがADJUST TrueTypeフォント命令にあるリモートコード実行の脆弱性CVE-2023-41990を悪用
この脆弱性はパッチによって削除されるまで90年代初頭から存在し続けていたとのこと。
3:JavaScriptで記述された権限昇格エクスプロイトが実行される
ROP/JOPとNSExpression/NSPredicateクエリ言語で記述された複数のステージを使用し、JavaScriptCoreライブラリにパッチを行います。このJavaScriptコードは難読化されており、minifyされているものの約1万1000行ものコード量となっており、JavaScriptCoreおよびカーネルメモリの解析と操作を行うとのこと。
4:ネイティブAPI関数を実行する機能を取得
JavaScriptCoreのデバッグ機能であるDollarVM()を使用してJavaScriptCoreのメモリを操作し、ネイティブAPI関数を実行する機能を取得します。新旧両方のiPhoneをサポートしており、ポインタ認証コード(PAC)をバイパスする仕組みも備わっているとのこと。
5:ユーザーレベルでのデバイスの物理メモリ全体への読み取り・書き込みアクセスを取得
XNUカーネルのメモリマッピングシステムコールおよび整数オーバーフロー脆弱性CVE-2023-32434を悪用し、ユーザーレベルでのデバイスの物理メモリ全体への読み取り・書き込みアクセスを取得します。
6:ページ保護レイヤーをバイパス
メモリマップドI/Oレジスタを使用してページ保護レイヤーをバイパスします。この脆弱性はCVE-2023-38606として修正されました。
7:痕跡の消去と検証
この段階でデバイスに対してスパイウェアの実行などあらゆる操作が可能となっていますが、Triangulationの攻撃者はここで一度侵入の痕跡を消去し、Safariを非表示モードで起動して被害者を検証するためのウェブページへアクセスするように設定していたとのこと。
8:マルウェアのインストール
検証に「合格」すると、CVE-2023-32435を使用してシェルコードが実行されます。このシェルコードによってCVE-2023-32434およびCVE-2023-38606という別のカーネルエクスプロイトが実行され、攻撃者はroot権限を取得すると同時にスパイウェアをインストールします。
今回の攻撃チェーンのうち、攻撃者がページ保護レイヤーをバイパスするために使用したメモリマップドI/Oのアドレスの中にデバイスツリーに存在しないものがあったとのこと。このアドレスを使用するとハードウェアベースのメモリ保護システムをバイパスして任意の物理アドレスに任意のデータを書き込み可能になります。このアドレスはファームウェアやチップのハードウェアレジスタでは使用されておらず、カスペルスキーの研究者はデバッグやテストの目的で使用するために組み込まれたか、もしくは誤って組み込まれた機能だと推測しています。
カスペルスキーの研究者はソースコードやカーネルイメージ、ファームウェアなどあらゆる場所を調査しましたがメモリマップドI/Oのアドレスに関する記述は存在せず、Triangulationの攻撃者がどのようにしてこのアドレスの使用方法を知ったのかは謎だと述べています。
なお、Triangulationについてロシア連邦保安庁(FSB)は「アメリカの情報機関がAppleと協力し、ロシアの外交官から情報を得るためにマルウェアを仕込んだ」との主張を行っていますが、Appleは疑惑を否定しています。
「Appleがロシアをスパイする目的でアメリカ政府に協力した」とロシア連邦保安庁が主張、「Apple製デバイスはスパイウェア天国」 - GIGAZINE