Microsoft は、システム整合性保護をバイパスする可能性のある新しい macOS の脆弱性、Shrootless を発見しました

news

Microsoft は、攻撃者が macOS のSystem Integrity Protection (SIP) をバイパスし、デバイス上で任意の操作を実行できる脆弱性を発見しました。また、攻撃者が特権を昇格させて影響を受けるデバイスをルート化できる同様の手法も発見しました。 Microsoft Security Vulnerability Research (MSVR) によるCoordinated Vulnerability Disclosure (CVD) を通じて、これらの調査結果を Apple と共有しました。現在CVE-2021-30892として特定されているこの脆弱性の修正は、2021 年 10 月 26 日に Apple によってリリースされたセキュリティ更新プログラムに含まれていました。

SIP は macOS のセキュリティ テクノロジーであり、root ユーザーがシステムの整合性を損なう可能性のある操作を実行することを制限します。この脆弱性は、SIP 保護をバイパスする資格のあるプロセスを評価しているときに発見されました。この脆弱性は、ポスト インストール スクリプトを含む Apple 署名付きパッケージのインストール方法にあることがわかりました。悪意のあるアクターが、インストール プロセスをハイジャックする特別な細工がされたファイルを作成する可能性があります。攻撃者は、SIP の制限を回避した後、悪意のあるカーネル ドライバー (ルートキット) をインストールしたり、システム ファイルを上書きしたり、持続的で検出不能なマルウェアをインストールしたりする可能性があります。

この OS レベルの脆弱性と、必然的に発見されるその他の脆弱性により、攻撃者が悪用できる可能性のある攻撃ベクトルの数が増えます。ネットワークがますます多様化するにつれて、Windows 以外のデバイスを侵害しようとする脅威の数も増加しています。 Microsoft Defender for Endpoint on Macを使用すると、組織は可視性を高め、macOS デバイス上の脅威を検出できます。このような可視性は、 Microsoft Defender for Endpointに組み込まれています。これにより、さまざまなプラットフォームにわたる脆弱性と脅威を検出、管理、対応、および修復できる “一元化されたウィンドウ” が組織に提供されます。

このブログ投稿では、SIP に関するいくつかの情報を共有し、以前に開示された SIP バイパスの一般的なタイプを調べ、発見した独自のものを紹介します。

SIPの概要

Apple が macOS Yosemite で最初に導入した SIP (「ルートレス」とも呼ばれる) は、Apple サンドボックスを利用してプラットフォーム全体を保護することにより、システムをルートから本質的にロックダウンします。内部的には、次の NVRAM 変数によって制御されます。

  • csr-active-config:有効な保護のビットマスク
  • csr-data:ネットブート構成を保存します

これらの変数は、非リカバリ モードで正当に変更することはできません。したがって、SIP を無効にする唯一の正当な方法は、リカバリ モードで起動して SIP をオフにすることです。 SIP をオンまたはオフにするには、組み込みのcsrutilツールを使用して行います。このツールは、SIP ステータスも表示できます。

SIP ステータスを示す csrutil のスクリーンショット

図 1: SIP ステータスを表示する csrutil。非リカバリ OS から SIP を無効にすることはできません。

csr-active-configビットマスク NVRAM 変数は、SIP が提供するさまざまな保護を記述します。網羅的なリストではありませんが、以下にいくつかの名誉ある言及を示します。残りはXNU ソース コードで自由に調べることができます。

 

csr-active-config NVRAM ビット 説明
CSR_ALLOW_UNTRUSTED_KEXTS 信頼されていないカーネル拡張機能のロードを制御します
CSR_ALLOW_UNRESTRICTED_FS 制限されたファイルシステムの場所への書き込みアクセスを制御します
CSR_ALLOW_TASK_FOR_PID Apple プロセスのタスク ポートの取得を許可する (つまり、 task_for_pid API を呼び出す) かどうかを制御します。
CSR_ALLOW_UNRESTRICTED_NVRAM 無制限の NVRAM アクセスを制御
CSR_ALLOW_KERNEL_DEBUGGER カーネルのデバッグを許可するかどうかを制御します

これらの保護のいずれかを侵害すると、攻撃者が SIP を完全にバイパスする可能性があります。一部のシナリオには次のようなものがあります。

  • 信頼されていないカーネル拡張機能をロードすると、カーネルが危険にさらされ、その拡張機能がチェックなしで操作を実行できるようになる可能性があります
  • ファイルシステム チェックをバイパスすると、カーネル拡張機能が SIP をそれ自体に完全に適用できるようになる可能性があります
  • NVRAMを自由に変更すると、SIP自体を制御できます

ファイルシステムの制限

何年にもわたって、Apple は制限を改善することにより、攻撃に対して SIP を強化してきました。最も注目すべき SIP 制限の 1 つは、ファイルシステムの制限です。これは、レッドチームや悪意のあるアクターにとって特に重要です。デバイスの重要なコンポーネントに与えることができる損害の量は、無制限にデータをディスクに書き込む能力に直接基づいているからです。

ファイル/System/Library/Sandbox/rootless.confは通常、SIP で保護されるファイルを制御します。上記のファイル自体も SIP で保護されていますが、 -Oフラグを指定してlsを使用して実行すると、同様に保護されているファイルを一覧表示できます。 SIP で保護されたファイルには、「制限付き」マーカーが付いています。

-O オプションを指定した /usr のスクリーンショット

図 2: -O オプションを使用して /usr を一覧表示します。 /usr/local は SIP で保護されていませんが、/usr/sbin は保護されています。

拡張属性com.apple.rootlessを持つファイルも同様に SIP で保護されています。もちろん、その拡張属性を正当にファイルに追加する方法はありません。そうしないと、マルウェアが自らの保護のために SIP を使用する可能性があります。ファイルシステムの制限は、攻撃者を制限する優れた方法です。たとえば、 /Systemディレクトリとそのサブディレクトリの多くは SIP で保護されています。

悪意のある LaunchDaemon 登録をブロックする SIP のスクリーンショット

図 3: SIP は永続化のために頻繁に使用される悪意のある LaunchDaemon 登録をブロックします。

ルートレス資格

ファイルシステムの制限は非常に強力であるため、Apple はいくつかの例外的なケースを考慮する必要があります。たとえば、システムの更新には、SIP で保護されたディレクトリへの無制限のアクセスが必要です。したがって、Apple は、設計により SIP チェックをバイパスする特定の資格セットを導入しました。これらの権利は、特定の SIP チェックに微調整されており、Apple のみがそれらを割り当てることができます。当然のことながら、Apple はこれらの権限を自社のプロセスにのみ割り当てます。

私たちの調査では、脆弱性ハンターの標的にもなっている 2 つの強力な権利に焦点を当てました。

 

資格 説明
com.apple.rootless.install SIP ファイルシステム チェックを完全にバイパス
com.apple.rootless.install.heritable 子プロセスにcom.apple.rootless.installを継承します

「com.apple.rootless.install」資格のあるプロセスのスクリーンショット

図 4: 「com.apple.rootless.install」資格のあるプロセスの例

注目すべき SIP バイパスの概要

私たちが発見する前に、過去に報告された興味深い SIP バイパスの脆弱性がいくつかありました。このセクションでは、これらの脆弱性をいくつかのクラスに分類し、それぞれの例を示します。これは完全なリストではないことに注意してください。たとえば、SIP はユーザーランドのみを保護するため、カーネル自体に関連する脆弱性は除外しました。

動的ライブラリの悪用

以前は、資格のあるプロセスは引き続き任意の動的ライブラリをロードできました。そのような例の 1 つが 2016 年に発表され、アプリのローカルにあるlibBaseIA.dylibが資格のあるバイナリによって使用され、悪意のあるコードに感染する可能性がありました。その時点で、SIP バイパスは悪意のある dylib に完全に実装される可能性があります。

取り付け

Apple は、OSX 10.11.2 のセキュリティ アップデートで、MacDefender マルウェアにも悪用されたセキュリティ バグを修正しました。この脆弱性により、悪意のある .dmg ファイルが (hdiutil を使用して) SIP で保護されたフォルダーにマウントされ、SIP ファイルシステムの制限が完全に回避される可能性があります。

資格の乱用

資格のあるプロセスは、セキュリティ バイパスの原因にもなっています。注目すべき例の 1 つは、資格のある fsck_csユーティリティを使用したバイパスです。このバイパスは、 fsck_csがシンボリック リンクをたどり、提示されたファイルシステムを修正しようとするという事実を利用していました。

したがって、攻撃者は/dev/diskXから/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plistを指すシンボリック リンクを作成し、前者で fsck_cs を呼び出す可能性があります。 Info.plistファイルが破損すると、オペレーティング システムはカーネル拡張機能の除外を制御できなくなり、SIP がバイパスされます。

「Shrootless」脆弱性

SIP 保護をバイパスする資格のある macOS プロセスを評価しているときに、強力なcom.apple.rootless.install.heritable資格を持つデーモンsystem_installdに遭遇しました。この権限により、 system_installdの子プロセスはすべて SIP ファイルシステムの制限をバイパスできます。

system_installd 資格のスクリーンショット

図 5: system_installd 資格。 「com.apple.rootless.install.heritable」に注意してください

Microsoft Defender for Endpoint には侵害後のコンポーネントがあるため、 system_installdのすべての子プロセスを調べることにしました。驚いたことに、攻撃者がその機能を悪用して SIP をバイパスできるケースがいくつか見られました。

たとえば、Apple 署名付きパッケージ (.pkg ファイル) をインストールする場合、そのパッケージはsystem_installdを呼び出し、それが前者のインストールを担当します。パッケージにインストール後のスクリプトが含まれている場合、 system_installdはデフォルトのシェル (macOS ではzsh ) を呼び出してスクリプトを実行します。興味深いことに、 zshは起動時にファイル/etc/zshenvを探し、見つかった場合は、非対話モードであっても、そのファイルからコマンドを自動的に実行します。したがって、攻撃者がデバイス上で任意の操作を実行する場合、完全に信頼できる方法は、悪意のある/etc/zshenvファイルを作成し、 system_installdzshを呼び出すのを待つことです。

完全に機能する概念実証 (POC) エクスプロイトを作成するために、次のアルゴリズムを実装しました。

  1. インストール後スクリプトを含むことが知られている Apple 署名付きパッケージを ( wgetを使用して) ダウンロードします。
  2. 親プロセスをチェックする悪意のある/etc/zshenvを仕掛けます。 system_installdの場合、制限された場所に書き込みます
  3. インストーラーユーティリティを呼び出してパッケージをインストールする

以下の図 6 に示すように、POC エクスプロイトは、カーネル拡張の除外リストを上書きすることができました。

CVE-2021-30892 の概念実証エクスプロイトのスクリーンショット

図 6: カーネル拡張機能の除外リストを任意のデータで上書きする POC エクスプロイト

攻撃手法としてのzshenv

調査中に、 zshenvが SIP バイパスに使用される以外に、一般的な攻撃手法としても使用される可能性があることもわかりました。 /etc/zshenvには、 ~/.zshenvの下の各ユーザー プロファイルに相当するものがあることがわかりました。これは、同じ機能と動作を持ちますが、書き込みに root 権限を必要としません。

通常、 zshenvは次のように使用できます。

  • 持続メカニズム。 zshが起動するのを単に待つことができます ( /etcの下でグローバルに、またはユーザーごとに)。
  • 特権メカニズムの昇格。管理者ユーザーがsudo -sまたはsudo <command>を使用して root に昇格しても、ホーム ディレクトリは変更されません。したがって、 ~/.zshenvファイルを管理者として配置し、後で管理者がsudoを使用するのを待つと、 ~/.zshenvファイルがトリガーされ、root に昇格します。

Microsoft Security Vulnerability Research (MSVR) を介して、調整された脆弱性開示 (CVD) を通じて調査結果を Apple に共有しました。この問題を解決するためのプロフェッショナリズムと迅速な対応について、Apple 製品セキュリティ チームに感謝します。

脆弱性管理と動作監視によるデバイス セキュリティの強化

macOS デバイスの SIP などのセキュリティ テクノロジは、デバイスに組み込まれたベースライン保護と、マルウェアやその他のサイバーセキュリティの脅威に対する最後の防衛線の両方として機能します。残念なことに、悪意のある攻撃者は、まったく同じ理由で、これらの障壁を破る革新的な方法を見つけ続けています。彼らはデバイスを完全に制御し、従来のセキュリティ ソリューションに検出されることなく、必要なファイルやプロセスを実行できます。

CVE-2021-30892 脆弱性に関するマイクロソフトの調査は、これを実証しています。これは、組織がMicrosoft Defender for Endpoint のような、 脅威と脆弱性の管理を通じて脆弱性を迅速に発見して修復できるようにするセキュリティ ソリューションの必要性を強調しています。これにより、防御側はデバイスの脆弱性と構成ミスをリアルタイムで検出し、脅威の状況、ビジネス コンテキスト、およびその他の要因に基づいて、すぐに対処する必要があるものに優先順位を付けることができます。

さらに、Microsoft Defender for Endpoint は、高度な行動分析と機械学習を使用して、POC エクスプロイトが可能な SIP で保護された任意のファイルを上書きするなど、デバイス上の異常なアクティビティを検出します。前のセクションで示した例では、 zshがカーネル拡張の除外リストを上書きするのは異常です。そのため、Defender for Endpoint はそれを検出します。概念を拡張した Defender for Endpoint には、システム起動デーモン、 rootless.confファイルなど、機密性の高いファイル アクセスに対する同様の検出機能があります。

最後に、この調査は、セキュリティ研究者、ソフトウェア ベンダー、およびより大きなセキュリティ コミュニティの間のコラボレーションの重要性を強調しています。クロスプラットフォームの脅威が増加し続ける中、脆弱性の発見、調整された対応、およびその他の形式の脅威インテリジェンス共有により、使用しているプラットフォームやデバイスに関係なく、ユーザーのコンピューティング エクスペリエンスを保護する保護テクノロジが強化されます。

Microsoft Defender for Endpoint が、すべてのプラットフォームにわたって完全なエンドポイント セキュリティ ソリューションを提供する方法について説明します

 

ジョナサン・バー・オア

Microsoft 365 Defender 研究チーム

参照: https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/

Comments

Copied title and URL