Windows 11では、VBS(仮想化ベースのセキュリティ)と呼ばれるセキュリティ機能が搭載されている。一部でパフォーマンスに影響を与えるといった情報もあるが、どのような条件で有効化されるのかを含めて検証してみた。
VBSをざっくり理解する
Windows 11に搭載されている仮想化ベースのセキュリティ(VBS : Virtualization Based Security)は、Hyper-Vなどで知られる仮想化機能を利用して、隔離された安全な環境でセキュリティ機能などを実行できる機能だ。
仕組みなどの詳細は、以下の関連記事を参照していただくとして、ここではざっくり説明しておく。
VBS(機能名は「コア分離」)は、簡単に言うと、OSより特権レベルの高いVSM(Virtual Secure Module)と呼ばれる隔離された仮想マシンを用意し、そこにセキュリティチェック機能や重要なセキュリティ資産(資格情報)などを配置する機能となる。
Windows 11で話題になっているのは、VBSの機能のひとつであるHVCI(Hypervisor-Enforced Code Integrity)だ。機能名としては「メモリ整合性」となる。これは、ドライバやコードの署名をチェックして、正当なコードのみが実行されるようにチェックする機能だ。
万が一、Windowsがマルウェアに感染しても、独立したチェック機能であるVSMにアクセスすることはできないため、このチェック機能そのものが無効化されるような心配がないうえ、VSM上の重要なシステムリソースにアクセスすることもできない。
言わば、門で不審者の出入りをチェックする番人のような存在だが、この番人は所属する組織から干渉されない完全に独立した存在で、しかも地位も高い。このため、番人そのものが買収などによって無力化されてしまう心配がないことになる。
この機能のややこしいのは、略称が色々登場することだ。まとめておくと以下のようになる。
- VBS(Virtualization Based Security)
仮想化機能を活用したセキュリティ機能全般を指す。機能名は「コア分離」 - VSM(Virtual Secure Module)
仮想化によって隔離されたシステムセキュリティ資産の格納とメモリの領域 - HVCI(Hypervisor-Enforced Code Integrity)
機能名は「メモリ整合性」。VBSの機能のひとつ。コードの整合性をチェックする機能
どういう場合に有効化されるか
Windows 11では、VBSが動作要件を決定するための間接的な要素のひとつとなっているが、「メモリの整合性」こと、VBSのHVCI機能が標準で必ず有効になるわけではない。
Microsoftが公表しているドキュメント「ハイパーバイザーで保護されたコード整合性の有効化」には、以下のような記述があり、新規インストールでのみ標準で有効化されるとなっている。
- 規定の有効化
Windows 11 以降では、互換性のあるシステムに新しいインストールを行なうと、既定でメモリの整合性が有効になります。 - 注意
自動有効化は、既存のデバイスのアップグレードではなく、クリーンインストールにのみ関連します。
ちなみに、この互換性のあるシステムというのは、以下の条件を備えている場合となる。
- プロセッサ
Intel 11 世代のコアプロセッサ以降、AMD Zen 2 アーキテクチャ以降、Qualcomm Snapdragon 8180 以降 - メモリ
最小 8 GB - ストレージ
64 GB 以上の SSD - ドライバ
HVCI 互換ドライバーがインストールされている必要があります - BIOS
仮想化を有効にする必要があります
また、ドキュメントには「Intel 11 世代のコアデスクトッププロセッサは、現在の既定の有効化ロジックには含まれていません」という注記もある。
現状、アップグレードユーザーが多い状況やIntel CPUユーザーが少なくないことを考えると、標準で「メモリ整合性」が有効にならないユーザーが多いのも納得できるところだ。
手動でVBSとHVCIを有効化する
では、手動で有効化するには、どうすればいいのかというと、まず上記の要件を満たしているかを確認する。ひとつずつチェックしてもいいが、「システム情報」アプリを使ってチェックするのが簡単だ。
なお、チェックする場合は、VBSとHVCIの動作を個別に確認することもできるので、「仮想化ベースのセキュリティ」の項目だけでなく、「仮想化ベースのセキュリティのxx」の項目の確認も重要だ。
「仮想化ベースのセキュリティの利用可能なセキュリティプロパティ」に利用できる機能の一覧が表示され、「~構成済みサービス」でセットアップされた項目が表示され、「~実行中サービス」に現在実行されているサービスが表示される。
要件を満たしていない場合(UEFIの仮想化機能がオフ)
以下のように「仮想化ベースのセキュリティ」が「無効」で、しかも「Hyper-Vファームウェアで仮想化が有効」も「いいえ」になっている場合は、UEFIで仮想化機能(Intel VTなど)が無効になっている。UEFIで仮想化を有効化しておこう。
なお、一部のPCではUEFIで仮想化の機能が非表示になっている場合がある(Surface Go 2など)。この場合、ファームウェアをアップデートすることで、自動的に仮想化が有効化される場合がある。
このほか、要件を満たしていない場合としては、後述するHVCI非対応のドライバーがインストールされている場合もある。
要件を満たしているがVBSが無効
以下のように「仮想化ベースのセキュリティ」が「無効」で、「Hyper-V ファームウェアで仮想化が有効」が「はい」になっている場合、ハードウェアとしての要件は満たしているが、VBSそのものはオフになっている。
この場合、Windowsも仮想化されず、ハイパーバイザーなしで動作している状態となる。HVCIだけでなく、VBSそのものや、ハイパーバイザーがパフォーマンスに与える影響を検証する場合は、この状態を基準にする必要がありそうだ。
なお、ハイパーバイザーが存在するかどうかは、PowerShellで「(gcim Win32_ComputerSystem).HypervisorPresent」を実行することで確認できる。
また、「メモリ整合性」を「オン」にした場合は当然だが、「オフ」の場合であっても、Windows Subsystem for LinuxやWindowsサンドボックス、将来提供予定のAndroidアプリの動作など、仮想化が必須の機能をインストールすると、自動的にハイパーバイザーが有効化され、VBSも有効になる。
VBSは有効だがHVCIは無効
以下のように「仮想化ベースのセキュリティ」が「実行中」となっているものの、「仮想化ベースのセキュリティの実行」が表示されない場合は、VBSそのものは有効(当然ハイパーバイザーも有効)だが、HVCIは無効になっている。
これは、ハードウェア要件を満たしており、かつWindows 11で、WindowsサンドボックスやHyper-V、WSLなどがインストールされている場合の例となる。
VBSもHVCIも有効
VBSもHVCIも有効になっている場合は、以下のように「仮想化ベースのセキュリティ」が「実行中」で、「仮想化ベースのセキュリティの実行」に「ハイパーバイザーによるコードの整合性の強制」と表示される。
条件を満たしていることを確認できたら、WindowsセキュリティからHVCIを有効化することができる。「Windowsセキュリティ」の「デバイスセキュリティ」から、「コア分離」にある「メモリ整合性」をオンして再起動すればいい。
なお、ここでドライバのチェックが実施される。HVCI非対応のドライバーがインストールされている場合は、ドライバを更新してからでないとHVCIを有効化できない。
また、プラットフォームによっては、下記画面のように「メモリアクセス保護」や「ファームウェア保護」の項目も表示される。
「メモリアクセス保護」はシステム情報上では「カーネルDMA保護」と表示される項目となる。Thunderboltなどを外部端子からPCIアクセス可能なデバイスでメモリへのダイレクトアクセスを保護するために利用する機能となる。
一方、「ファームウェア保護」だが、こちらはPCのスタートアッププロセスを保護する機能だ(System Guard Secure Launch)。筆者のテスト環境(富士通 LIFEBOOK U939/B)では、これをオンにするとOSが起動しなくなり、システムの復元を使って復元することになった。オンにする場合は慎重に。
コメント