iOSの新しい種類のバグを発見した研究者は、依然として「広範囲にわたる」潜在的な脆弱性を調査しているc

iOSの新しい種類のバグを発見した研究者は、依然として「広範囲にわたる」潜在的な脆弱性を調査しているc
iOSの新しい種類のバグを発見した研究者は、依然として「広範囲にわたる」潜在的な脆弱性を調査しているc
新しいiOSのセキュリティバグ

AppleはiOS 16.3とmacOS 13.2をリリースしてから約1か月後、これらのアップデートに伴う追加のセキュリティ修正について詳細を発表しました。iOSとmacOSの脆弱性のうち2つを発見したTrellixチームは今回、「大規模な新しい種類のバグ」を発見した経緯について詳細を明らかにしました。新たな脆弱性はAppleによってすぐに修正されましたが、TrellixはiPhoneとMac上のメッセージ、写真、位置情報などを危険にさらす可能性のある「広範囲にわたる」潜在的な脆弱性を「現在も調査中」であると述べています。

今週初め、Appleはセキュリティページを更新し、iOS 16.3でこれまで詳細が明らかにされていなかった3つの脆弱性が修正されたことを明らかにしました。ところが、そのうち2つはセキュリティ企業Trellixによって、iOSのサンドボックス外で任意のコードを実行できる「新しい種類のバグ」に分類されていることが判明しました。

Trellix の上級研究員 Austin Emmitt 氏は、詳細なブログ投稿 (Macworld 経由) で、彼のチームがどのようにして新しいタイプの欠陥を発見したかを詳しく説明しました。

興味深いことに、その歴史は数年前の2021年に遡ります。当時、2部構成のエクスプロイトを用いた0クリックリモート攻撃であるFORCEDENTRYがPegasusマルウェアのインストールに利用されていました。その動作の詳細が明らかになると、エミット氏と彼のチームは、iOSサンドボックスをバイパスする方法に研究の焦点を当てました。

パート1ではPDF解析コードの最初のエクスプロイトについて説明し、パート2ではサンドボックスからの脱出について解説しました。最初のエクスプロイトには多くの注目が集まりましたが、私たちがより関心を寄せたのは2つ目のエクスプロイトです。これは、コード署名を完全に回避し、別のプロセスで任意のコードを動的に実行する方法を説明していたからです。このエクスプロイトには、開発者が任意のオブジェクトのリストをフィルタリングできる、一見無害そうなクラスであるNSPredicateが関係していました。しかし、実際にはNSPredicateの構文は完全なスクリプト言語です。iOS上で動的にコードを生成・実行する機能は、これまでずっと公式機能として提供されていました。しかし、これはほんの始まりに過ぎませんでした。この機能によって、macOSとiOSのプロセス間セキュリティを完全に破る全く新しいバグクラスが明らかになったのです。

実は、2021年初頭にCodeColoristによるNSPredicateの仕組みを悪用したプロジェクト「See No Eval」が存在していました。その後、Appleはこれらの脆弱性を修正するパッチをリリースしましたが、Trellixは調査の中で、Appleの修正を回避する新たな方法を発見しました。

これらの緩和策では、セキュリティを明らかに脅かす可能性のある特定のクラスやメソッドの使用を防ぐために、大規模なブラックリストを使用していました。しかし、これらの新しい緩和策はバイパス可能であることが判明しました。制限されていないメソッドを使用することで、これらのリストを空にすることができ、以前から利用可能だったメソッドをすべて有効にすることができました。このバイパスは、AppleによってCVE-2023-23530として登録されました。さらに重要なのは、NSPredicateVisitorのほぼすべての実装がバイパス可能であることが判明したことです。

Trellix が新しい種類のバグで最初に発見した脆弱性は、coreduetd にありました。coreduetd は「デバイス上の動作に関するデータを収集するプロセス」です。その仕組みは次のとおりです。

メッセージやSafariなど、適切な権限を持つプロセスでコード実行権限を持つ攻撃者は、悪意のあるNSPredicateを送信し、このプロセスの権限でコードを実行できます。このプロセスはmacOS上でルートとして実行され、攻撃者はユーザーのカレンダー、アドレス帳、写真にアクセスできるようになります。CoreDuet関連プロセスであるcontextstoredにも、同様の影響を持つ非常に類似した問題が存在します。この結果はFORCEDENTRYと類似しており、攻撃者は脆弱なXPCサービスを利用して、デバイスへのアクセス権を持つプロセスからコードを実行できます。

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

研究者らは、同じ種類のバグにおいて、「権限を必要とせず、どのアプリからでもアクセスできる」脆弱性も発見しました。そのうちの1つは「Syslogから潜在的に機密性の高い情報を読み取る」ことができ、もう1つは「位置情報、カメラとマイク、通話履歴、写真、その他の機密データにアクセスし、デバイスを消去できる高度な権限を持つアプリであるSpringBoard内でコード実行を実現する」ことができました。

エミット氏は、チームが発見した脆弱性を迅速に修正してくれたAppleに感謝していると述べています。iOS 16.3とmacOS 13.2をインストールしたユーザーは、発見された2つの脆弱性に対して安全ですが、「この2つの手法によって、現在も調査中の広範な潜在的な脆弱性が明らかになりました」とエミット氏は指摘しています。

すべての技術的な詳細については、Austin Emmitt による完全な事後分析をご覧ください。

havebin.com を Google ニュース フィードに追加します。 

FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。