Kaspersky Labはこのほど、「Operation Triangulation: The last (hardware) mystery|Securelist」において、iPhoneを標的とした「三角測量作戦(Operation Triangulation)」と呼ばれる攻撃手法を明らかにした。この攻撃は添付ファイル付きのメッセージをiMessageに送信するだけで機能するゼロクリック攻撃とされる。
サイバー攻撃「三角測量作戦」の手順
Kaspersky Labによるとこの攻撃では4つのゼロデイの脆弱性が悪用されており、次の手順でデバイスを侵害するという。
- 攻撃者は悪意のある添付ファイル付きメッセージをiMessageに送信する。iMessageはユーザーに何の兆候も示すことなく処理する
- 添付ファイルは文書化されていないApple専用のADJUST TrueTypeフォント命令にあるリモートコード実行(RCE: Remote Code Execution)の脆弱性(CVE-2023-41990)を悪用する
- その後、いくつかの工程を経てJavaScriptで記述された権限昇格エクスプロイトを実行する。このエクスプロイトは難読化されているが、約11,000行の長さがあり、JavaScriptCoreのメモリを操作してネイティブAPI関数を実行する機能を得る。このエクスプロイトは新しいiPhoneのポインタ認証コード(PAC: Pointer Authentication Code)をバイパスする機能を持つ
- 次にXNUのメモリマッピングシステムコールの脆弱性(CVE-2023-32434)を悪用し、ユーザーレベルでデバイスの物理メモリ全体へのアクセスを取得する
- ハードウェアメモリマップドI/O(MMIO: Memory Mapped Input/Output)レジスタを操作してページ保護レイヤー(PPL: Page Protection Layer)をバイパスする(CVE-2023-38606)
- 以上でデバイスを自由に侵害可能となるが、このエクスプロイトは不要となったペイロードを削除し、続けてSafariを侵害(CVE-2023-32435)するエクスプロイトを実行する
- いくつかの工程を経てカーネルエクスプロイトを実行、管理者権限を取得し、マルウェアをロードする処理へ移行する
「三角測量作戦」で悪用される4つの脆弱性
この攻撃で悪用される脆弱性は次のとおり。これら脆弱性は修正済みであり、Appleからセキュリティアップデートが提供されている。
- CVE-2023-41990 - フォントファイルの処理で任意のコードを実行される不具合
- CVE-2023-32434 - XNUのメモリマッピングシステムコールに存在する整数オーバーフローの不具合。カーネル権限で任意のコードを実行できる可能性がある
- CVE-2023-38606 - アプリが機微なカーネルの状態を変更できる不具合
- CVE-2023-32435 - Webコンテンツの処理において任意のコードを実行できる不具合
Kaspersky Labは上記の脆弱性のうち、3番目の「CVE-2023-38606」について不自然な点があると指摘している。近年のiPhoneにはカーネルメモリの機密領域に対するハードウェアレベルでのセキュリティ保護が追加されている。この保護により、CVE-2023-32434を悪用した攻撃を実行しても、カーネルの機密領域へのアクセスはできない。そこで攻撃者はこの保護機能を回避してデバイスを完全に制御するためにCVE-2023-38606を悪用した。
しかし、この脆弱性はAppleが設計したSystem on a Chip(SoC)の未知の機能を悪用している。ファームウェアが使用していない未知のハードウェアレジスタにアクセスし、ハードウェアレベルのメモリ保護を維持したまま特定の物理アドレスにデータを書き込む。これはAppleのエンジニアなど一部の関係者しか知り得ない機能で、攻撃者がどのようにして知り得たのかはわからないとしている。
ハードウェアによるセキュリティ機能は実装の存在や使い方を非公開にする「隠蔽によるセキュリティ」に依存することが多い。Kaspersky Labはソフトウェアと比較してハードウェアはリバースエンジニアリングの難易度は高いが、不可能ではないため欠陥のあるアプローチだとして否定的な見解を述べている。