iOSとmacOSのアップデート見逃すと危険 今すぐやるべき理由

iOSとmacOSのアップデートを先延ばしにしてはいけません。常に最新バージョンにすべき理由とは?

iOSのバージョン、iPadOS(16.3)、macOS(Ventura 13.2)では、CVE-2023-23530およびCVE-2023-23531の脆弱性が修正されました。これらのバグの性質と危険な理由、またPegasusスパイウェアとの関連性、iOS、iPad、およびmacOSのこれらのアップデートおよび今後のセキュリティアップデートを見逃してはならない理由について説明します。

NSPredicate、ForcedEntry、Pegasusなど

常に更新されるアップデートの重要性を理解するには、まずは背景を知る必要があります。Appleのオペレーティングシステム用アプリのソフトウェア基盤は、Foundationフレームワークと呼ばれ、Appleによる説明は次の通りです。

「Foundationフレームワークは、データストレージや永続性、テキスト処理、日付と時刻の計算、ソートとフィルタリング、ネットワークなど、さまざまなアプリやフレームワークの機能のベースレイヤーを提供します。Foundationで定義されているクラス、プロトコル、データタイプは、macOS、iOS、watchOS、tvOS SDK全体で使用されています。」

2年と少し前になりますが、2021年1月、iOSのセキュリティリサーチャーとして知られるCodeColorist氏が公開したレポートで、NSPredicateクラスおよびNSExpressionクラス(いずれもFoundationフレームワークの構成要素)の実装により、これらを悪用して任意のコードの実行が可能であることが示されました。偶然にも、これらのクラスはデータのソートおよびフィルタリングを担うものとなっています。今回のブログ記事で取り上げる内容に関して重要なのは、これらのクラスを使用すると、コードのデジタル署名の確認が行われることなく、デバイス上でスクリプトを実行できることです。

CodeColorist氏が気付いたことを要約すると、このようなスクリプトによって、アプリのアイソレーションを含むAppleのセキュリティメカニズムを回避できる可能性があることです。これにより、他のアプリからデータ(ユーザーがやり取りしたメッセージやギャラリー内の写真など)を窃取する悪質なアプリの記述が可能になります。

2022年3月には、そのようなアプリの実際の実装について記載したペーパーが公開されました。これは「ForcedEntry」ゼロクリックエクスプロイトと呼ばれ、悪名高いマルウェアPegasusの拡散に使用されました。このマルウェアは、NSPredicateおよびNSExpressionに内在する脆弱性を悪用することで、サンドボックス回避ができ、本来であればすべてのiOSアプリは厳格に定義された一定の境界内で動作しますが、その境界を越えてデータや機能にアクセスすることができます。

CodeColorist氏の理論的な調査結果とForcedEntryというエクスプロイトの実践的な調査の後を追うように、Appleはいくつかのセキュリティ対策や制限を実装しました。しかし、新たな調査結果で、それらの対策は容易に回避できることが示されています。

CVE-2023-23530とCVE-2023-23531が危険な理由

CVE-2023-23530およびCVE-2023-23531の脆弱性は、これらの制限を回避するための新たな手段となっています。1つ目のCVE-2023-23530に関しては、問題に対するAppleの対処方法の不完全さを逆手に取ることで制限を回避できます。具体的には、Appleは、NSPredicateに明らかなセキュリティリスクをもたらすクラスやメソッドを多数列挙した拒否リストを作成しました。ここで問題となったのは、この拒否リストに含まれていないメソッドを使用して、リストの内容を一掃することが可能であり、それにより、すべてのメソッドおよびクラスが使用可能になることです。

2つ目の脆弱性のCVE-2023-23531は、iOSおよびmacOS内のプロセス間のやり取り、およびデータ受信側のプロセスが受け取る情報をフィルター処理する方法に関するものです。簡単に言うと、データを送信するプロセスでコンテンツ検証済みのタグを付加することができ、受信側のプロセスにNSPredicateを使用する悪質なスクリプトを与えることで、検証なしでの実行が可能になる場合があります。

リサーチャーによれば、これら2つのセキュリティチェックを回避する手法により、その他のいくつかの特定の脆弱性を悪用することが可能になります。攻撃者がこれらの脆弱性を利用することで、ユーザーデータや危険なオペレーティングシステム機能へのアクセス、さらにはアプリケーション(システムアプリケーションを含む)のインストールも可能になります。つまり、CVE-2023-23530およびCVE-2023-23531を使用することで、ForcedEntry型のエクスプロイトを作成することができます。

CVE-2023-23530およびCVE-2023-23531の機能を実証するため、リサーチャーらは、悪質なアプリによってiPad上のSpringBoard(iOSのホーム画面を管理する標準アプリケーション)内のコードを実行できることを示す動画を作成しています。これに関して、SpringBoardには昇格された特権、および、カメラ、マイク、通話履歴、写真と位置情報のデータを含む複数のアクセス権限があります。それだけでなく、デバイスの完全なワイプさえ可能です。

iOSおよびmacOSのセキュリティへの影響

ここで強調しておきたいのは、CVE-2023-23530およびCVE-2023-23531による危険性はあくまで理論上のもので、実際にこれらの脆弱性が悪用された事例は記録にありません。また、iOS 16.3およびmacOS Ventura 13.2のアップデートで問題は修正されているため、速やかにインストールすればおそらく問題ないでしょう。

とは言え、今回のAppleによる脆弱性の修正がどの程度成功しているかはわかりません。これらの修正を回避する方法が見つかる可能性もあります。いずれにしても、Wiredでの談話によれば、リサーチャーらは、このクラスの新たな脆弱性は今後も引き続き出現するだろうと確信しています。

ハッキングを成功させるには、NSPredicateを使用してiOSでスクリプトを実行できるだけでは十分でないことは覚えておいてください。攻撃者が被害者のデバイスで何かを行うには、何らかの方法でそのデバイスに侵入する必要があります。そのために、ForcedEntryの場合は、ほかの脆弱性を利用して、ウイルスに感染しているPDFを問題のないGIFファイルのように見せかけてiMessageでターゲットデバイスに滑り込ませるなどの方法が使用されています。

このような脆弱性は、APT攻撃で使用される可能性があります。これについては別の記事で、カスペルスキーのグローバル調査分析チーム(GReAT)のディレクターであるCostin Raiuが、Pegasusクラスのマルウェアから身を守る方法およびその対策が有効な理由について、詳しく説明しています。そのアドバイスを簡単にまとめました。

• iPhoneやiPadの再起動の頻度を高くします。攻撃者がiOSへの永続的な侵入経路を手に入れるのは困難であり、多くの場合、再起動によってマルウェアを排除できます。
• 可能であればiMessageとFaceTimeを無効にします。これらのアプリは、iOSデバイスに攻撃を仕掛けるための侵入口になります。
• Safariではなく、たとえばFirefox Focusなど、別のブラウザーを使用します。
• メッセージ内のリンクを開かないようにします。
• すべてのデバイスに信頼できる保護機能をインストールします。
• 最後に、OSは常に最新に保ちましょう。iOS、iPadOS、macOSのアップデートのリリースにこれまで以上に注意を払うようにしましょう。

ヒント