かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  メモ. 仮想化ベースのセキュリティ(VBS)の有効化方法(最新版)と最近気づいた問題、疑わしい犯人|Windowsトラブル解決

 

 

メモ. 仮想化ベースのセキュリティ(VBS)の有効化方法(最新版)と最近気づいた問題、疑わしい犯人|Windowsトラブル解決

2024年12月13日配信
2025年04月25日更新
執筆者:山内 和朗

 Windows 10とWindows Server 2016で導入されたカーネル保護機能「仮想化ベースのセキュリティ(VBS)」は、メモリの整合性(旧称デバイスガード)や資格情報ガードのベース技術です。当初は、仮想マシン(VM)を実行すのとは別のHyper-Vのもう1つの機能として登場しました。現在でもそうであるとつい最近まで疑問にも思ていませんでしたが、最近のWindowsバージョンではHyper-Vの役割に依存しないセキュリティ機能になっていました。

 

仮想化ベースのセキュリティ(VBS)とは

 

 「仮想化ベースのセキュリティ(VBS)」は、ハードウェア(プロセッサ)の仮想化機能Windowsのハイパーバイザーを利用して、OSを通常のカーネル(Systemプロセス)と、分離された環境で動作するセキュアカーネル(Secure Sytemプロセス)に分割します。Windowsは、通常のOS環境からはアクセスが制限されるセキュアカーネルのサービス(分離されたローカルセキュリティ機関である「LsaIso.exe」など)を介して、OSの脆弱性からの保護を強化し、悪意のあるコードの実行を防止します。VBSのこの分離された環境は、メモリの整合性(旧称デバイスガード)や資格情報ガード(Credential Guard)など、高度なセキュリティ機能のベースにもなっています。VBSの詳細およびハードウェア要件については、以下の公式ドキュメントで確認してください。

仮想化ベースのセキュリティ (VBS)|Windows ハードウェア開発者(Microsoft Learn)

 

 VBSが導入されたWindows 10とWindows Server 2016では、VBSはWindowsのハイパーバイザーである「Hyper-V」の機能の一部であり、Hyper-Vの役割をインストールすると、それだけでVBSが有効(実行中、オン)になりました。Windows Server 2019でもそれは変わりませんでした。VBSが有効になっているかどうかは、「システム情報」ツール(msinfo32.exe)で確認することができます。「Windows Admin Center(WAC)」を利用可能な場合は、管理対象のサーバーの「セキュリティ」ツールの「Secured-core」タブから確認することができます(画面1)。

 

画面1 Windows Server 2019以前は、Hyper-Vの役割をインストールするだけで、VBSが有効になった
画面1 Windows Server 2019以前は、Hyper-Vの役割をインストールするだけで、VBSが有効になった

 

Windows 11/Windows Server 2022以降のVBS

 

 Windows 11では、VBSのハードウェア要件を満たすデバイス(Windows 11のシステム要件で概ねカバーされます)で、(Hyper-Vの有無に関係なく)VBSが既定で有効になるようです。

 Windows Server 2022以降では、VBSは既定で有効になりません。以下のポリシー設定を有効にし、プラットフォームのセキュリティレベル(「セキュアブート」または「セキュアブートとDMA保護」)を選択して再起動するか、レジストリを設定して再起動することで、VBSを有効にすることができます。こちらも、Hyper-Vの役割に関係なく、VBSが有効化されます。

 

コンピューターの構成¥管理用テンプレート¥システム¥Device Guard¥仮想化ベースのセキュリティを有効にする

 

 レジストリ設定で有効化する場合は、コマンドプロンプトやPowerShellで以下のコマンドラインを実行します。2行目の「3」はプラットフォームのセキュリティレベル「セキュアブートとDMA保護」の設定です。「セキュアブート」の設定にするには「1」に置き換えます。プラットフォームのセキュリティレベル「セキュアブートとDMA保護」が推奨されますが、DMA保護に対応したデバイスである必要があります。

 

C:¥> reg add "HKLM¥SYSTEM¥CurrentControlSet¥Control¥DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f
C:¥> reg add "HKLM¥SYSTEM¥CurrentControlSet¥Control¥DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 3 /f
C:¥> shutdown /r /t 0

プレーンテキストで表示

 

画面2 「仮想化ベースのセキュリティを有効にする」ポリシー設定またはレジストリを直接設定してVBSを有効化する
画面2 「仮想化ベースのセキュリティを有効にする」ポリシー設定またはレジストリを直接設定してVBSを有効化する

 WACの利用環境がある場合は、管理対象のサーバーの「セキュリティ」ツールの「Secured-core」タブで「仮想化ベースのセキュリティ(VBS): 未構成」を選択し、「有効にする」をクリックするだけで、簡単にVBSを有効化できます(画面3)。このワンクリックによる有効化は、Windows Server 2019以前に対しては利用できません。

 

画面3 WACの「セキュリティ」にある「Secured-core」タブからVBSをワンクリックで有効化する(要再起動)
画面3 WACの「セキュリティ」にある「Secured-core」タブからVBSをワンクリックで有効化する(要再起動)

 

 なお、Windows 11バージョン22H2以降、およびWindows Server 2025からは、VBSが有効になると、既定で資格情報ガード(Credential Guard)が有効になります。これも、Windows Server 2025の新機能の1つです。

 

Credential Guard の構成|Windows(Microsoft Learn)

 

Windows Server 2022以降のVBSはHyper-Vと共存できないの?

 

 これは、Windows Server 2025 Previewでとある検証を行っている際に気付いたことなのですが、どうやらWindows Server 2022以降では、VBSとHyper-Vの役割は共存できないケースがあるようなのです。仕様なのか不具合なのかは分かりません。

 例えば、VBSがオンになっているサーバー(入れ子になった仮想化が有効なHyper-V VM)でHyper-Vの役割を有効化しようとすると、「BIOSで仮想化のサポートが無効になっているため、Hyper-Vをインストールできません」と表示され、Hyper-Vを有効化できないのです(画面4)。

 

画面4 Windows Server 2022以降でVBSが有効になっていると、Hyper-Vの役割を有効化できない
画面4 Windows Server 2022以降でVBSが有効になっていると、Hyper-Vの役割を有効化できない

 Hyper-Vの役割を有効化するためには、先にVBSを無効化する必要がありました(画面5)。

 

画面5 VBSがオンになっているサーバーにHyper-Vの役割をインストールするために、VBSを無効化する必要があった
画面5 VBSがオンになっているサーバーにHyper-Vの役割をインストールするために、VBSを無効化する必要があった

 Hyper-Vの役割を有効化したサーバーで、「システム情報」ツールを確認するとVBSは「実行中」となります。しかし、WACで状態を確認すると「実行中ですが構成されていません」と表示されます(画面6)。そこで「有効にする」をクリックして再起動すると(またはポリシー設定やレジストリ設定の方法で)、「有効化(停止中)」になります。一方、「システム情報」ツールを確認するとVBSは「実行中」のまま変化はありません(画面7)。Hyper-Vが有効になっているとき、「タスクマネージャー」でプロセスの一覧を確認すると、「Secure System(セキュアカーネルのこと)」や「LsaIso.exe」の存在が確認できるので、VBSの基本的なセキュリティ機能が動いていないというわけではないようです。

 

画面6 Hyper-Vが有効になっている場合、WACでは「実行中ですが構成されていません」と表示される
画面6 Hyper-Vが有効になっている場合、WACでは「実行中ですが構成されていません」と表示される

 

画面7 Hyper-Vが有効になっている環境でWACからVBSを有効にすると、VBSの状態は「有効(停止中)」になる
画面7 Hyper-Vが有効になっている環境でWACからVBSを有効にすると、VBSの状態は「有効(停止中)」になる

 

物理環境では問題は再現せず、問題はHyper-Vの入れ子になった仮想化にある?

 

 ちなみに、Windows Server 2025と共通のOSビルドである、Windows 11バージョン24H2の物理デバイスでは、VBSが有効になっており、Hyper-Vも問題なく利用できています。Windows Serverはすべて入れ子になった仮想化(Nested Virtualization)を有効にしたHyper-V VMで検証したことだったので、入れ子になった仮想化の影響の可能性あります(入れ子になった仮想化が有効なAzure VMでも同様の状況です)。

 

 しかし、Windows Server 2025をまだ物理環境にインストールまたはアップグレードしたことはありません。そこで、以下の連載の方法でネイティブブートVHDXを使用して、入れ子になった仮想化が有効では問題があるWindows Server 2025のVMのイメージ(VHDXファイル)から物理サーバーを起動して検証しました。すると、想像通り、物理環境ではVBSとHyper-Vが問題なく共存することができました(画面8)。

 

vol.68 VMのゲストOSイメージで物理サーバーを起動して評価する|Windows Server 2025大特集(5)

 

画面8 ネイティブブートVHDXで起動した物理サーバー環境ではVBSとHyper-Vの共存は問題なし
画面8 ネイティブブートVHDXで起動した物理サーバー環境ではVBSとHyper-Vの共存は問題なし

 先ほど、“とある検証”と言いましたが、それはWindows Server 2025の新機能の1つである「ホットパッチ」(現在、プレビュー)の検証時のことでした。Windows Server 2025では、これまでAzure VM(Azure Stack HCIを含む)でのみ利用可能だったホットパッチが、Azure以外の物理サーバーで稼働するStandard/DatacenterでもAzure Arcを通じて利用可能になります。Hyper-Vの役割を有効化したサーバー(ただし、入れ子になった仮想化が有効なHyper-V VM)でそれをテストしようとしたところ、Azure ArcのホットパッチではVBSが使用するための前提条件になっていました(画面9)。そこから、“Hyper-Vが有効なのになぜVBSが有効になっていないのか?(古い知識)”“Hyper-VのサーバーでVBSを有効にできないのはなぜ?(仕様なのか不具合なのか?)”“msinfo.exeで「実行中」なのだからWACの状態は誤表示ではなかったのか?(ホットパッチをオンにということは...)”ということになって、今回の記事へとつながったわけです。そして、もしこれが仕様なのだとしたら、Hyper-Vのサーバーでホットパッチは利用できないということになってしまいます。しかし、問題はHyper-V(およびAzure)の入れ子になった仮想化の機能にある可能性が極めて高いことがわかりました。

 

画面9 Windows Server 2025 Standard/Datacenterでホットパッチを使用するには、VBSの有効化が必須
画面9 Windows Server 2025 Standard/Datacenterでホットパッチを使用するには、VBSの有効化が必須

 

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_ws2025

最新記事