システム管理モードの詳細: SMM 分離がプラットフォームを強化する方法

news

プラットフォーム ファームウェアが正常で信頼できることを確認することは、ハイパーバイザーで保護されたコードの整合性 (HVCI) や Windows Defender Credential Guard などの強力なプラットフォーム セキュリティ機能が期待どおりに機能していることを保証するための基本です。 Windows 10 は、Windows ブートローダーが起動する前に UEFI (Unified Extensible Firmware Interface) マルウェアのような不正なコードがルート化されないようにする、ハードウェア ベースのルート オブ トラストを活用することでこれを実現します。

このような低レベルの脅威からハイパーバイザー、ひいては残りの OS を防御するための鍵は、システム管理モード (SMM) を保護することです。これは、ハイパーバイザーよりも高い実効特権で実行される x86 ベースのプロセッサの実行モードです。 SMM は従来からメモリやデバイス リソースに自由にアクセスできるため、OS やハードウェアにアクセスするための攻撃経路として知られています。 SMM は、悪意のあるコードがより高い権限を持つ別のコードをだまして特定のアクティビティを実行させる混乱した代理攻撃のような脅威に対して特に脆弱です。 SMM で完全なコードを作成しても、安全なカーネル コードへのトランポリンなどの動作の影響を受ける可能性があります。

「Ring -2」と呼ばれることもある SMM は、OEM が NV RAM などのハードウェアと対話し、ハードウェア機能をエミュレートし、ハードウェア割り込みまたはエラータを処理し、その他の機能を実行するために使用します。 SMM は、タイマーまたは特定のメモリ、レジスタ、またはハードウェア リソースへのアクセスによってトリガーされる割り込みハンドラーの形式で実行されます。 OEM ドライバーとランタイム ファームウェア サービスは、SMM を明示的にトラップして、特定のハードウェア機能を制御する場合があります。

巧妙な攻撃が SMM を介してシステムを制御するのを阻止するには、OS が SMM の動作を強制または監視する必要があります。 Intel と AMD は、Secured-core PC と System Guard の一部として、SMM がアクセスできるリソースを強制および報告することで、OS から SMM を分離するメカニズムを開発しました。

SMM分離

SMM の分離は、次の 3 つの部分で実装されます。OEM は、何にアクセスする必要があるかを示すポリシーを実装します。チップ ベンダーは、このポリシーを SMI に適用します。チップ ベンダーは、このポリシーへの準拠を OS に報告します。

システム管理モードでの隔離のプロセスを示す図

OEM によって提供されるポリシーは、SMI ハンドラーがアクセスする必要があるリソースの詳細を示すリストです。このポリシーは、後で詳しく説明するチップセット ベンダー固有の実施メカニズムによって検証および実施されます。 OS はポリシーの内容を制御できません。記載されているポリシーの施行が保証されているだけです。

Trusted Computing Base (Tcb) Launch は、Dynamic Root of Trust (DRTM) の Windows 実装で導入され、チップ ベンダーのレポート メカニズムから強制ポリシーを取得します。リソース アクセスはプラットフォームのニーズに固有であるため、Tcb Launch は OEM の SMM アクセス ポリシーを Windows SMM の分離要件のいくつかのレベルと比較して、提供される分離のレベルを決定します。 OEM のポリシーによって達成された分離レベルは、証明のために測定され、OS に報告されます。

分離レベルは、SMI がアクセスできるものに対する制限の強化と、システムに必要な強制機能で構成されます。分離要件の例として、OS が所有するメモリに SMI がアクセスできないことが挙げられます。さらに、これらの要件には、次のリソースに対する制限が含まれる場合があります。

  1. SMM ページ構成のロックダウン
  2. 静的ページ テーブル
  3. モデル固有レジスタ (MSR) アクセス
  4. IO ポート アクセス
  5. プロセッサー状態保存アクセス

最小要件が満たされていない場合に、セキュア コア PC を使用する顧客に対して一貫したセキュリティの約束を保証するために、DRTM の測定値は制限され、ローカルおよびリモートの認証は失敗します。 SMM 分離は DRTM と関連付けられています。DRTM がないと、SMM の影響から保護されないため、OS はブート環境によって評価されたものを信頼できないからです。 DRTM の間は SMI が一時停止されるため、DRTM によって確立された新しいルート オブ トラストは、SMM アクセス ポリシーのセキュリティを評価できます。

これらの保護は、Windows がローカル シークレットを保護するために利用するだけでなく、リモート構成証明ツールもこの情報を利用して、特定のデバイスのセキュリティ体制を判断できます。この認証レポートは、特定の機能の組み合わせが存在しない場合など、機密性の高いネットワーク ファイルへのアクセスを防止するために使用できます。

SMM アーキテクチャを示す図

AMD ソリューション (SMM スーパーバイザー)

UEFI ブート フェーズ中に、SMM スーパーバイザーは UEFI ドライバーとして読み込まれます。このドライバーは、AMD によって署名され、DRTM の起動時にプラットフォーム セキュリティ プロセッサ (PSP) によって認証されます。認証に失敗すると、DRTM は失敗します。 (また、PSP によるファームウェア アンチ ロールバック保護の下にあります。)

SMM Supervisor は、SMI エントリ ルーチン (SMI がトリガーされた後に実行される最初のコード ブロック) を提供および初期化します。このルーチンは、DRTM の起動時に AMD によって署名され、PSP によって認証されます。 DRTM イベントが発生すると、PSP は、SMI エントリがこの認証済みブロックに対して適切に構成されていることも確認します。この認証が失敗すると、DRTM も失敗します。

SMM スーパーバイザーは、SMM スーパーバイザー コード ブロック、内部データ、ページ テーブル自体、例外ハンドラー、およびプロセッサの保存状態を含む重要なページをスーパーバイザー ページとしてマークし、現在の特権レベル 0 (CPL0、最も特権レベル) からのみアクセスできます。

SMI がトリガーされた直後に、SMI エントリ ルーチンは、サード パーティの SMI ハンドラを実行する前に、システムを CPL3 (最小特権レベル) で実行するように降格します。 CPL3 環境から、MSR、IO、スーパーバイザ ページへのアクセス、CR3 などの重要なレジスタ変更、および「hlt」や「cli」などの特権命令はすべて、CPU ハードウェアによって強制される一般保護違反として終了します。

CPL3 の下の SMI ハンドラーが特権データにアクセスして登録できるようにするために、SMM スーパーバイザーは syscall インターフェイスを提供して、サードパーティの SMI ハンドラーがそのような要求を行えるようにします。 SMM スーパーバイザに常駐する syscall インターフェイスのバックエンドは、SMM セキュア ポリシーによって制御されます。上記のポリシーは、CPL3 からアクセスできる MSR、IO、またはメモリ領域を決定するためにプラットフォームごとにカスタマイズできる拒否リストです。 SMM セキュア ポリシーは、DRTM イベント中に OS セキュア ローダーに報告され、検証されます。

インテル ハードウェア シールド

Intel vPro® プラットフォームの一部である Intel® Hardware Shield は、CPU ハードウェアとファームウェアを使用して、プラットフォームの SMM アクセス ポリシーを適用します。これらの機能は、新しい CPU ハードウェア機能を既存の CPU 機能と組み合わせて使用することで進化し、関連するマイクロアーキテクチャ フローを強化し、関連するファームウェアのハードニングをサポートする新しいレジスタ ロックを提供します*

  • 8 世代 Intel® Core™ vPro® プロセッサを搭載した Intel vPro® プラットフォームでは、メモリに関する SMM 権限を減らし、メモリ構成をロックするために、ファームウェアの強化とハードウェア ロックされた静的ページ テーブルのサポートが導入されました。これらの新しいロックには、CR3 ロック、MSEG ロック、SMBASE ロックなどがあります。
  • 9 世代 Intel Core vPro プロセッサを搭載した Intel vPro プラットフォームでは、Intel 署名付き SMM モジュールが追加されており、Intel® Trusted Execution Technology (Intel® TXT) を使用して、PCR17 経由で Intel® Hardware Shield のコンポーネントを使用して SMM メモリ構成を証明できます。このモジュールは、最初に、SMM アクセス ポリシーを実施するために使用される強化された SMM コードの整合性を検証します。次に、これとポリシーの詳細を OS に報告します。したがって、OS は SMM の信頼性を検証し、SMI ハンドラーからの干渉の可能性なしにプラットフォームの SMM アクセス ポリシーを評価できます。
  • 10 世代 Intel Core vPro プロセッサを搭載した Intel vPro プラットフォームは、検証済みの CPL0 SMM コンポーネントを強化して、ポリシーの適用を MSR、IO ポート、および SMM 状態の保存に拡張するために、SMI ハンドラーを使用して特権分離を作成しました (アクセス ポリシーはプラットフォームによって異なる場合があります)。レポート メカニズムが拡張され、これらの機能も含まれるようになりました。

*絶対に安全な製品やコンポーネントはありません。

セキュア コア PC は、顧客がセキュア ローンチと SMM 保護を取得するための最も簡単なエクスペリエンスを提供します。

次のサポートが存在する場合、SMM 保護と System Guard Secure Launch を有効にすることができます。

  • Intel、AMD、または ARM の仮想化拡張機能
  • トラステッド プラットフォーム モジュール (TPM) 2.0
  • Intel の場合: BIOS での TXT サポート
  • AMD の場合: Windows システム イメージに SKINIT パッケージを統合する必要があります。
  • Qualcomm の場合: DRTM TrustZone アプリケーションを実装し、SMC メモリ保護をサポートします。
  • カーネル DMA 保護 ( 詳細はこちら)

詳細な構成情報と要件については、 こちらを参照してください。セキュアコア PC では、仮想化ベースのセキュリティがサポートされており、SMM 保護を備えた System Guard Secure Launch などのハードウェア ベースのセキュリティ機能が既定で有効になっています。セキュア コア PC には OEM から適切な構成が提供され、最も安全な Windows 10 システムへの最も簡単なパスが提供されるため、お客様は必要な機能の構成について心配する必要はありません。現在入手可能なセキュア コア PC の製品ラインの詳細をご覧ください

 

参照: https://www.microsoft.com/en-us/security/blog/2020/11/12/system-management-mode-deep-dive-how-smm-isolation-hardens-the-platform/

Comments

Copied title and URL