仮想化ベースのセキュリティシステムリソースの保護

仮想化ベースのセキュリティ (VBS) では、ハードウェアの仮想化とWindowsハイパーバイザーを使用して、カーネルが侵害される可能性があると想定されるOSの信頼のルートとなる分離された仮想環境を作成します。 Windowsでは、この分離された環境を使用してさまざまなセキュリティソリューションをホストし、オペレーティングシステムの脆弱性からの保護を大幅に強化し、保護を無効にしようとする悪意のある悪用を防ぐことができます。 VBSは、重要なシステムとオペレーティングシステムのリソースを保護したり、認証されたユーザーの資格情報などのセキュリティ資産を保護したりするための制限を適用します。

VBS の背景の詳細については、「仮想化ベースのセキュリティ (VBS)」を参照してください。

VBS は信頼モデルを変更する

VBS はプラットフォームのセキュリティを大幅に向上させますが、VBS は Windows PC の信頼の境界も変更します。 VBSを使用すると、Windowsハイパーバイザーは、VBSのセキュリティで保護された環境の基礎となる、基になるハードウェアの多くの側面を制御します。 ハイパーバイザーは、Windowsカーネルが悪意のあるコードによって侵害される可能性があると想定する必要があります。そのため、セキュリティ資産を侵害する可能性のある方法で、カーネルモードで実行されているコードから主要なシステムリソースが操作されないように保護する必要があります。

プロセッサ MSRs について

ハイパーバイザーが悪用から保護する必要のある重要なシステム リソースの 1 つの領域は、プロセッサ モデル固有のレジスタ (MSRs) です。 最新のプロセッサでは、多数の MSRs がサポートされており、その多くがプロセッサの動作の主要な側面を制御しています。 MSRs は、カーネル モード コードの読み取り/書き込みのみが可能です (つまり、CPL0)。 MSRs が制御する設定を変更すると、悪意のあるカーネル モード コードによってシステムの動作が変更され、攻撃者は制御を得て、セキュリティを侵害できるようになる可能性が生じます。 さらに、多くの MSRs には、トレースや診断データなど、システムの操作に関するデータが含まれており、これを使用してセキュリティ資産の表示や計算を行うこともできます。 そのため、ハイパーバイザーは、VBS のセキュリティ体制を損なう可能性がある MSRs の誤用を識別し、保護する必要があります。

MSRs にはインデックスからアクセスします。これは MSR ごとの一意の識別子です。 従来、多くの MSRs はアーキテクチャとして確立されてきました。つまり、それらの存在と機能は、複数のプロセッサの世代間で構造的に一貫性が保たれています。 この場合、ドキュメント化された MSR インデックスと定義を持つ既知の MSR を使用して、公開されている既知の一連の機能を制御できます。 ただし、プロセッサ間で異なる MSRs もあります。MSR インデックスが時間の経過と共に目的が変更され、新しいコントロール セットを参照するように再定義される場合があります。 これらのコントロールの知識を、広く流通している商用ソフトウェアでエンコードして管理することは困難であるため、システム レベルのソフトウェアではかなり問題になります。

MSRs へのアクセスの保護

堅牢なセキュリティ プラットフォームを提供するために、MSRs は悪意のあるカーネル モード コードによる誤用から保護する必要があります。 これを強制するために、ハイパーバイザーはすべての MSR へのアクセスを監視および制御します。 ハイパーバイザーは、既知のMSRインデックスの一覧を保持し、カーネルモードコードがMSRsまたはMSRs内の特定のビットにアクセスできるようにします。これは、適切で安全と見なされます。 ハイパーバイザーは、ハイパーバイザーに不明な MSR へのアクセス、または公開された定義によってセキュリティ リスクを表すと認識されているすべての MSR へのアクセスをブロックして、します。 場合によっては、部分的なアクセスが許可されることがあります。

ハイパーバイザーが MSR へのアクセスをブロックした場合、イベント ビューアーの Windows システム ログにイベントが記録され、アクセス試行の詳細が示されます。

MSRs によって制御されている関数は膨大な数であるため、ソフトウェアにそれを開始した MSR へのアクセスを防止したときの副作用を予測することはできません。 適切に記述されたソフトウェアは、エラーとエラーのケースを適切に処理する必要がありますが、これは常にそうではありません。

MSR アクセス イベントの確認

VBS が有効であり実行されている場合、ハイパーバイザーは特定の MSRs へのアクセスのみをブロックします。 ハイパーバイザーが MSR へのアクセスをブロックしているかどうかを確認するには、Windows システム ログで、Microsoft-Windows-Hyper-V-Hypervisor からイベント ID Windows 12550 を確認します。 イベント ログ エントリの詳細には、次の情報が含まれます。

Id : 12550
説明: Hyper-vは、制限されたMSRへのアクセスを検出しました
詳細:

  • Msr
  • IsWrite
  • MsrValue
  • AccessStatus
  • Pc
  • ImageBase
  • ImageChecksum
  • ImageTimestamp
  • ImageName

サポートされている Windows のバージョン

VBSは、Windows 10およびWindows Server 2016以降のすべてのバージョンのWindowsでサポートされています。