4年間続いたiPhoneバックドアキャンペーン、高度なエクスプロイトチェーンを使用
(arstechnica.com)- Operation Triangulationは少なくとも4年間にわたり、iMessageだけでiPhoneを感染させたキャンペーンで、Kaspersky社員の端末やロシア国内の外交公館・大使館関係者のiPhoneが影響を受けたとされる
- 感染は、ユーザーが何もしなくても処理される悪意のあるiMessage添付ファイルから始まり、再起動で感染が消えると新たなメッセージを送って再感染させる方式で維持された
- Kasperskyはこのチェーンが4件のゼロデイを使ったと分析しており、AppleはCVE-2023-32434、CVE-2023-32435、CVE-2023-38606、CVE-2023-41990をすべて修正した
- 最大の核心となる突破口は、文書化されていないハードウェア機能の脆弱性で、攻撃者はiPhoneのハードウェアベースのメモリ保護を回避し、カーネル改変や悪性コード注入の制限を超えられた
- 攻撃主体は特定されておらず、NSAやApple関与の疑惑についてKasperskyは証拠がないとし、Appleは協力の主張を否定した
Operation Triangulationの感染手法
- Operation Triangulationは、Kasperskyがマルウェアとそれを配布したキャンペーンに付けた名称
- 感染はiMessageメッセージで配信され、受信者が何もしなくても複雑なエクスプロイトチェーンが実行された
- インストールされたスパイウェアは、攻撃者の制御サーバーに機密データを送信した
- マイク録音
- 写真
- 位置情報
- その他の機密データ
- 感染は再起動をまたげなかったが、攻撃者は端末が再起動した直後に新しい悪意あるiMessageを送り、感染を維持した
- 感染の検出は、高度なフォレンジック専門知識を持つ人にとっても非常に困難
- 感染指標の一覧は、KasperskyのTriangulation validators/modulesページで確認できる
4件のゼロデイと影響範囲
- Kasperskyは、Triangulationが4件の重大なゼロデイ脆弱性を使用したと分析している
- Appleは4件の脆弱性をすべて修正した
- これらの脆弱性と秘密のハードウェア機能は、iPhone以外の複数のAppleプラットフォームにも存在していた
- Mac
- iPod
- iPad
- Apple TV
- Apple Watch
- Kasperskyが回収したエクスプロイトは、これらの端末でも動作するよう意図的に開発されており、Appleは該当プラットフォームも修正した
- Appleは関連コメントを拒否した
文書化されていないハードウェア機能
- 攻撃者が標的にした未知のハードウェア機能が、Operation Triangulationの中核要素であることが確認された
- この機能の脆弱性は、攻撃者がApple端末のハードウェアベースのメモリ保護を回避するうえで決定的な役割を果たした
- この保護機構は、カーネルメモリを操作できる状態になった後でも、次の行為を防ぐよう設計されていた
- 他プロセスへの悪性コード注入
- カーネルコードの改変
- 機密カーネルデータの変更
- Kasperskyの研究者は、Triangulationに感染した端末を数か月にわたりリバースエンジニアリングした末に、この機能を把握した
- 攻撃者が使用した一部のMMIOアドレスは、ハードウェア構成を機械可読で記述するdevice treeに存在しなかった
- ソースコード、カーネルイメージ、ファームウェアを追加調査しても、該当MMIOアドレスへの言及は見つからなかった
- Boris Larinは、攻撃者が未知のハードウェアレジスタに任意のデータ、対象の物理アドレス、データハッシュを書き込むことで、ハードウェアベースのメモリ保護を回避しているとまとめた
- Kasperskyは、この機能がAppleエンジニアまたは工場向けのデバッグ・テスト目的だったか、誤って含まれた可能性を示したが、ファームウェアがこの機能を使用していないため、攻撃者がどう把握したのかは確認できなかった
エクスプロイトチェーンの流れ
- チェーンはまず、AppleのTrueTypeフォント実装の脆弱性であるCVE-2023-41990を利用してリモートコード実行を達成した
- この段階ではreturn oriented programmingとjump oriented programmingを使い、現代的なエクスプロイト防御を回避した
- 実行権限は最小限のシステム権限レベルだった
- 次の段階はiOSカーネルを標的にした
- CVE-2023-32434はXNUのメモリ破損脆弱性
- CVE-2023-38606は秘密のMMIOレジスタの脆弱性で、Page Protection Layerの回避を可能にした
- その後、チェーンはSafariの脆弱性であるCVE-2023-32435を利用してシェルコードを実行した
- 生成されたシェルコードは再びCVE-2023-32434とCVE-2023-38606を使ってrootアクセス権を取得し、最終的なスパイウェアのペイロード導入へとつながった
- Kasperskyによるチェーン要約には次の特徴が含まれる
- 悪意あるiMessage添付ファイルは、ユーザーに表示されないままアプリ内で処理された
- Apple専用のTrueTypeフォント命令ADJUSTを利用したリモートコード実行が含まれる
- JavaScriptエクスプロイトは難読化され、約11,000行規模で、JavaScriptCoreとカーネルメモリの解析・操作に大半のコードが使われた
- JavaScriptCoreのデバッグ機能DollarVMを活用してJavaScriptCoreメモリを操作し、ネイティブAPI関数を実行した
- 旧型・新型iPhoneの両方をサポートするよう設計され、新型モデル向けエクスプロイトのためのPointer Authentication Code回避も含まれていた
- 最終段階のカーネルエクスプロイトはmach object file形式で、規模と機能が大きく、多様な事後エクスプロイト用ユーティリティを含んでいたが、その大半は使用されなかった
攻撃主体と残る疑問
- Kasperskyは、攻撃者が文書化されていないハードウェア機能をどう知ったのか確認できていない
- Boris Larinは、過去のファームウェアまたはソースコード公開時の偶発的露出や、ハードウェアのリバースエンジニアリングの可能性を検討している
- この機能の正確な目的は、依然として不明
- この機能がiPhoneの基本構成なのか、ARM CoreSightのようなサードパーティ製ハードウェアコンポーネントによって有効化されたものなのかも確認されていない
- ロシアのNational Coordination Center for Computer Incidentsは2023年6月、この攻撃がNSAのより広範なキャンペーンの一部だと主張し、FSBはAppleがNSAと協力したと主張した
- Appleの担当者は協力の主張を否定した
- Kasperskyの研究者は、NSAまたはAppleの関与を裏付ける証拠はないとみている
- Larinは、Operation Triangulationの独自性が既知のキャンペーンパターンと一致しないため、現時点では既知の脅威アクターに確定的に帰属させることはできないと述べた
- Larinは、KasperskyがAdobe、Apple、Google、Microsoft製品で30件を超える実際に悪用されたゼロデイを発見・報告してきたが、今回のチェーンはこれまで見た中で最も洗練された攻撃チェーンだと評価した
1件のコメント
Hacker Newsでの意見
技術ジャーナリズムで出会った多くの人たちのように見出しで釣ることに執着するタイプではまったくなく、Arsは彼を擁していて幸運だ