Jamfは12月5日(米国時間)、「Jamf Threat Labs: Fake Lockdown Mode proof of concept」において、侵害したiPhoneでロックダウンモードを偽装できるかを検証し、その実験結果を伝えた。

  • Jamf Threat Labs: Fake Lockdown Mode proof of concept

    Jamf Threat Labs: Fake Lockdown Mode proof of concept

iPhoneのロックダウンモードはジャーナリストや政府関係者などサイバー攻撃の標的となりやすい人物を保護することを目的とした機能とされる。ロックダウンモードが有効な場合、特定のアプリ、Webサイト、そのほかの機能は厳しく制限され、一部のエクスペリエンスは利用できなくなる。また、JavaScriptのJITコンパイルも機能しなくなるため、Webアプリケーションのパフォーマンスは最大で95%低下するとされる。

過去に確認されたサイバー攻撃において、特定の攻撃はロックダウンモードで防止できることがわかっており、その有効性はすでに確認されている。しかしながら、ロックダウンモードにも問題点があり、侵害された後でロックダウンモードを有効にしても攻撃を阻止することはできないとされる。このため、すでにトロイの木馬に感染している状態でロックダウンモードを有効にしても意味はない。

今回、Jamfは侵害された状態のiPhoneにおいてロックダウンモードの設定を無効化し、さらにロックダウンモードが有効に機能しているかのように見せかけることができるかを実験。この実験に成功すれば、攻撃者はロックダウンモードを有効にしていると利用者を安心させた状態で侵害やデータの窃取を継続可能になる。実験ではロックダウンモードを設定するAPIをフックして無力化する手法を使用している。通常、ロックダウンモードを設定するとデバイスが強制的に再起動されるが、実験ではデバイスではなくユーザ空間を再起動することでロックダウンモードが機能しているかのように見せかけている。

  • ロックダウンモードの設定の代わりにユーザ空間を再起動する処理 - 提供:Jamf

    ロックダウンモードの設定の代わりにユーザー空間を再起動する処理 引用:Jamf

ロックダウンモードを有効化していると、Safariにはロックダウンモードが有効であることを示す表示が行われる。これはロックダウンモードの状態を取得するAPI「+[WBSUIFeatureAvailability isLockdownModeEnabledForSafari]」に依存しており、実験ではこの関数をフックして応答を改竄することで実際の状態に関係なく、Safariに任意のロックダウンの状態を認識させている。

また、ロックダウン状態を表示するラベルを更新する関数をフックすることで、常にロックダウンが有効なように見せかけることもできる。Jamfはロックダウンモードを偽装するデモ動画を公開し、実験に成功したことを示している。

iOS 17以降はロックダウンモードがカーネル側で実装され、独自のバックグラウンドデーモンとカーネル拡張機能によって制御されている。このため、ロックダウンモードを変更するにはデバイスを再起動する必要があり、ユーザー空間の再起動ではロックダウンモードを無効化できないとされる。iOS 17のこの変更は同様の攻撃に対してある程度のセキュリティ強化につながると評価されている。

現在のところ、この手法を用いた攻撃は確認されていない。しかしながら、ロックダウンモードの仕組みを正しく理解して利用しないと、今後同様の手法により攻撃を受ける可能性があるとして注意が呼びかけられている。