iOSとmacOSの両方で、コード署名をバイパスして任意のコードを実行できるようになる脆弱(ぜいじゃく)性が発見されました。この脆弱性を悪用することで、攻撃者はiOS・macOS搭載端末の写真・通話履歴・メッセージなどにアクセスすることが可能になります。

Trellix Advanced Research Center Discovers a New Privilege Escalation Bug Class on macOS and iOS

https://www.trellix.com/en-us/about/newsroom/stories/research/trellix-advanced-research-center-discovers-a-new-privilege-escalation-bug-class-on-macos-and-ios.html

初代iPhoneにiOSが搭載されて以来、Appleは自社製のモバイル端末で実行できるソフトウェアに慎重に制限を課してきました。具体的には、iPhoneではAppleが信頼する開発者証明書によって署名されたアプリケーションのみが実行可能となっており、AppleScriptのようなスクリプト言語はiOSには存在しません。コードを動的に実行する機能はほぼ完全に削除されているため、悪意のあるプログラムを実行するための方法を見つける必要があるエクスプロイトに対して、強力な障壁が形成されているといえます。そして、AppleがmacOSにiOSの機能を移植するにつれ、macOSにおいてもコード署名を厳密に強制するようになっていきました。

しかし、サイバーセキュリティ企業・Trellixの研究部門であるTrellix Advanced Research Centerの脆弱性チームが、iOSおよびmacOSでコード署名をバイパスして複数のプラットフォームアプリケーションのコンテキストで任意のコードを実行できるようにすることができるという新しい脆弱性を発見しました。この脆弱性により、iOSとmacOSの両方で権限の昇格およびサンドボックス回避が可能となります。この脆弱性が悪意のあるアプリケーションやエクスプロイトに利用されれば、ユーザーのメッセージ・位置情報・通話履歴・写真といった機密情報にアクセスされる可能性があるとのこと。なお、この脆弱性の重大度は中から高で、CVSSスコアは「5.1〜7.1」です。

以下のツイートに埋め込まれている動画は、Trellixが発見した脆弱性を用いて悪意のある攻撃者が通知や位置情報を盗み取る様子をわかりやすく示したもの。





2021年、Citizen LabはiPhone向けのスパイウェア・Pegasusで利用されたゼロクリックエクスプロイトの「FORCEDENTRY」を発表しました。Citizen LabがGoogle社内のゼロデイ脆弱性の発見を任務とするセキュリティチームである「Project Zero」と協力してFORCEDENTRYを分析した結果、FORCEDENTRYはiOSが画像を描画するために使用するフレームワーク・Core GraphicsのPDF処理に存在する脆弱性を標的にすることで複数のコードを実行可能としていることや、サンドボックス回避のメカニズムを有していることが明らかになっています。

要人監視などに用いられたスパイウェア・Pegasusで利用されたiPhone向けのゼロクリックエクスプロイトは「技術的に最も洗練されたエクスプロイト」とGoogleのProject Zeroが指摘 - GIGAZINE



このサンドボックス回避メカニズムには、開発者が任意のオブジェクトのリストをフィルタリングできるようにするNSPredicateが含まれていました。NSPredicateの構文は完全なスクリプト言語であるため、iOSでコードを動的に生成して実行することが可能です。これにより、macOSおよびiOSのプロセス間セキュリティを完全に破ることができる全く新しい脆弱性が生まれることになったとTrellixは説明しています。

Trellixが発見した脆弱性は、デバイス上の動作に関するデータを収集するプロセスである「coreduetd」に存在しています。メッセージやSafariといった適切な資格を持つプロセスでコードを実行し、悪意のあるNSPredicateを送信することで、このプロセスの権限でコードを実行することができるようになるとのこと。このプロセスはmacOSではroot権限で実行されるため、攻撃者はユーザーのカレンダー・連絡先・写真にアクセスすることが可能となります。また、同じ影響を持つ非常によく似た問題が関連プロセスの「contextstored」にも存在するため、攻撃者が脆弱なXPCサービスを使用することでデバイスへのアクセスが多いプロセスからコードを実行できるというFORCEDENTRYのような挙動を引き起こすことが可能になるとのこと。

iOSの「appstored」およびmacOSの「appstoreagent」デーモンにも脆弱なXPCサービスがあり、これらのデーモンと通信できるプロセスを制御する攻撃者は、脆弱性を悪用してシステムアプリを含む任意のアプリケーションをインストールすることが可能となります。

これらの脆弱性は資格を必要としない、任意のアプリでアクセス可能なサービスにも存在しています。Trellixが脆弱性を最初に見つけたのは「OSLogService」で、これはXPCサービスであり、syslogから潜在的に重要な情報を読み取るために利用される可能性があるとのこと。さらに、攻撃者はiPadのUIKitCoreのNSPredicateの脆弱性を悪用することで、位置情報・カメラ・マイク・通話履歴・写真などの機密データにアクセスしたり、これらのデータを端末上から削除したりすることも可能になる模様。

なお、上記の脆弱性はAppleがリリースしたmacOS 13.2およびiOS 16.3で修正されており、「問題解決のために弊社と迅速に協力してくださったAppleに感謝します」とTrellixは記しています。