Predatorスパイウェア、iOSのSpringBoardをフックしてカメラ・マイクの録音インジケーターを完全隠蔽

雑記

米国制裁対象の監視企業Intellexaが開発した商用スパイウェア「Predator」が、iOSのカメラ・マイク使用時に表示される録音インジケーター(緑色・オレンジ色のドット)を完全に無効化できることが、Jamf Threat Labsの詳細な技術分析により明らかになった。この手法はiOS 14〜17に対応しており、ユーザーが監視されていることに一切気づけない極めて高度なステルス技術である。

この記事のポイント

  • Predatorは「HiddenDot」モジュールを使い、SpringBoardのセンサー通知を完全に遮断してカメラ・マイクのインジケーターを非表示にする
  • Objective-Cのnil メッセージング特性を悪用し、ARM64のx0レジスタをNULLに書き換えることでセンサー更新をサイレントに破棄する
  • VoIP盗聴モジュールやカメラアクセスチェック迂回モジュールなど、複数の監視機能が連携して動作する

HiddenDotの仕組み:たった1つのフックで全センサーを隠蔽

Predatorの核心技術は「HiddenDot::setupHook()」と呼ばれる関数にある。この関数はiOSのホーム画面を管理するプロセス「SpringBoard」内のSBSensorActivityDataProviderクラス、具体的には_handleNewDomainData:メソッドをフックする。このメソッドはカメラやマイクが起動された際にUIレイヤーにセンサー状態の変更を通知する役割を担っているが、Predatorはこの通知を遮断する。

技術的には、ARM64プロセッサのx0レジスタ(Objective-Cではselfオブジェクトを指す)をNULLに書き換える。Objective-Cではnilオブジェクトへのメッセージ送信はエラーを発生させず、単純に無視される(no-op)。この言語仕様を巧みに利用し、センサー更新は何のエラーも出さずにサイレントに破棄される。結果として、画面右上に表示されるはずの緑色(カメラ)やオレンジ色(マイク)のドットが一切表示されなくなる。

UMHookerによるクロスプロセス注入

HiddenDotモジュールをSpringBoardに注入するために使われるのが「UMHooker」コンポーネントである。UMHookerはMach例外処理メカニズムを利用してクロスプロセスフッキングを実現する。具体的な攻撃手順は以下の通りだ。

  1. カーネルエクスプロイトによりコード実行権限を取得
  2. UMHookerがMach例外ハンドリングを使いSpringBoardプロセスに注入
  3. ブレークポイントスキャンにより_handleNewDomainData:メソッドの位置を特定
  4. 該当メソッドをNULLを返すスタブに置き換え
  5. 以降、すべてのセンサーイベントがサイレントに無視される

重要な点として、この手法自体はiOSの新たな脆弱性を悪用するものではなく、事前に獲得したカーネルレベルのアクセス権を前提としている。つまり、すでにデバイスが侵害された状態で、監視活動を隠蔽するための「ポストエクスプロイト」技術である。

VoIP盗聴とカメラ迂回モジュール

Predatorはインジケーター隠蔽だけでなく、複数の監視モジュールを搭載している。VoIP盗聴モジュールはmediaserverdプロセスにフックし、AudioConverterNewおよびAudioConverterConvertComplexBuffer+52関数を傍受する。取得した音声バッファをNEON SIMD命令でfloat32 PCMからint16形式に変換し、マルチチャンネル音声をダウンミックスした上でExtAudioFileWrite()で書き出す。このモジュール自体にはインジケーター抑制機能がないため、オペレーターはまずHiddenDotを有効化する必要がある。

さらに「CameraEnabler」モジュールは、命令パターンマッチングとPointer Authentication Code(PAC)のリダイレクションを使ってカメラアクセスチェックを迂回する。

検出方法と防御策

Jamf Threat Labsは管理デバイスにおける検出指標を以下のように示している。

  • SpringBoardプロセスの予期しないメモリマッピング
  • Apple以外の例外ポートの存在
  • センサーハンドラー内のブレークポイント命令
  • mediaserverdが一時パスに音声ファイルを書き出す挙動
  • マイク使用が確認されているにもかかわらずインジケーターが表示されない状態

知っておくと便利なTips

  • 高リスクユーザーはiOSの「ロックダウンモード」を有効化すべき。攻撃対象領域を大幅に縮小できる
  • iOSは常に最新バージョンにアップデートし、既知のカーネル脆弱性を塞ぐことが最も基本的な防御
  • 企業環境ではSpringBoardの例外ポートを監視し、mediaserverdのファイル活動を追跡することが推奨される
  • 不審なリンクや添付ファイルを開かないことが、そもそもの感染を防ぐ第一歩である

まとめ

今回のJamf Threat Labsの分析は、商用スパイウェアの技術的洗練度がいかに高いレベルに達しているかを改めて示した。Predatorはカーネルレベルの侵害を前提とするため、一般ユーザーが直接標的になる可能性は低いが、ジャーナリスト、活動家、政府関係者などの高リスク対象にとっては深刻な脅威である。iOSの録音インジケーターは本来ユーザーのプライバシーを守る重要な仕組みだが、カーネルアクセスを持つ攻撃者にはバイパス可能であるという事実は、モバイルセキュリティの多層防御の重要性を浮き彫りにしている。Appleは現時点でこの特定の手法に対するパッチを発行していないが、最新のiOSアップデートとロックダウンモードの併用が最善の防御策となる。


📎 元記事: https://www.bleepingcomputer.com/news/security/predator-spyware-hooks-ios-springboard-to-hide-mic-camera-activity/

コメント

タイトルとURLをコピーしました