仮想化ベースセキュリティ(VBS)とは?分離された仮想環境でOSとデバイスを守る仕組みを徹底解説
仮想化ベースセキュリティ(Virtualization-based Security:VBS)は、コンピューター上のプロセスを基盤となるオペレーティングシステム(OS)、場合によってはハードウェアから抽象化し、プロセス同士を互いに隔離する技術です。その目的は、マルウェアなどの攻撃からOSとデバイスを保護することにあります。
VBSは、隔離された仮想環境を作成し、一定の制限を強制することで、OSの脆弱性やマルウェアなどの悪用行為からシステムリソースやセキュリティソリューション(ユーザーのログイン資格情報など)を守るという考え方に基づいています。この隔離環境は、OSの他の部分から切り離されたメインメモリ上の領域であり、OSにとっての「信頼のルート(root of trust)」として機能します。
VBSは、Windowsハイパーバイザーを利用して隔離環境を構築します。ハイパーバイザーは「Windowsは悪意のあるコードなどによって侵害される可能性がある」という前提に立ち、重要なシステムリソースの保護を目指します。そのためにハードウェア仮想化を有効化し、システムプロセスをホストしてデータを保存する仮想マシン(VM)を作成します。つまり、これらのプロセスをコンピューターのOS上で直接実行するのではなく、VM内で動作させるのです。
VBSの前提は、「隔離されたプロセスやアプリケーションが攻撃を受けても、攻撃がVMの外へ波及しない」というものです。攻撃者は、あるプロセスの脆弱性を悪用して別のアプリケーションからデータを盗んだり、ランサムウェアでコンピューター全体を乗っ取ったりすることができません。
Windowsにおける仮想化ベースセキュリティとは
Microsoftが初めてVBSを搭載したのはWindows 10で、Windows Defender Device GuardおよびCredential Guardの機能とともに導入されました。Device GuardとCredential Guardは、Windows 10のVBS固有の機能である仮想セキュアモード(Virtual Secure Mode:VSM)を利用しています。VSMは、コンピューターのハードウェアに直接インストールされたMicrosoft Hyper-Vハイパーバイザーを使用し、特定のプロセスを実行してそのデータをOSから独立した形で保存します。
Device Guardは、設定可能なコード整合性(Configurable Code Integrity)、VSM保護コード整合性(VSM Protected Code Integrity)、プラットフォームおよびUEFIセキュアブート(Platform and UEFI Secure Boot)という3つの機能セットであり、信頼されていないコードがWindows 10マシン上で実行されるのを防ぎます。これらの機能により、信頼されたコードと署名済み・検証済みのファームウェアのみがコンピューター上で実行できるようになり、IT管理者は特定のプロセスを隔離して追加の保護層を設けることもできます。一方、Credential GuardはVSMを利用してユーザーログイン情報、パスワード、その他の認証データを隔離・保護し、マシンや他のシステムへの不正アクセスを防止します。
VBSは、Windows 10およびWindows Server 2016以降のすべてのバージョンでサポートされています。Windows 11もVBSをサポートしており、Windows 11ではVBSとメモリ整合性などの主要なセキュリティ機能が既定で有効になっています。Windows 10と同様に、Windows 11のVBSも隔離されたメモリ領域を作成し、さまざまなセキュリティソリューションを安全に保管します。これにより、その環境がOSの信頼のルートとして機能し、この環境内に存在するリソースのみが信頼されることが保証されます。
VBSが保護するリソースとセキュリティソリューション
VBSとWindowsハイパーバイザーは、複数のシステム・OSリソースおよびセキュリティソリューションを保護することを目指しています。その一つがモデル固有レジスタ(Model-Specific Registers:MSR)です。MSRはプロセッサ内の制御レジスタで、デバッグ、パフォーマンス監視、プロセッサの動作の一部制御によく使用されます。
MSRが侵害され、それが制御する設定が改ざんされると、システム全体が危険にさらされる可能性があります。このような事態が発生すると、システムが意図しない動作をしたり、脅威アクターがシステムやそのセキュリティ資産への不正アクセスを得たりする恐れがあります。
こうした問題を防ぐため、ハイパーバイザーはVBSを使用し、以下の方法でMSRを悪意のあるカーネルモードコードから保護し、不正利用を阻止します。
- すべてのMSRへのアクセスを監視・制御する
- カーネルモードコードには、安全であることが判明しているMSRのみへのアクセスを許可する
- (ハイパーバイザーにとって)未知のMSRへのアクセスをブロックする
- ブロックされたMSRへのアクセス試行を検知した際は、イベントビューアーのWindowsシステムログにイベントを記録して通知する
さらにVBSは、認証済みのユーザー資格情報とWindowsセキュリティを担うコードを、セキュアな仮想環境内に配置することで保護します。
仮想化ベースセキュリティとメモリ整合性
メモリ整合性(Memory Integrity)は、Windows OSにおけるVBSの機能の一つです。ハイパーバイザーが隔離された仮想環境を作成すると、メモリ整合性はこの環境内でカーネルモードのコード整合性を実行し、信頼されていないドライバーやシステムファイルがシステムメモリにロードされるのを防ぎます。これにより、OSを保護し、マルウェアがWindowsカーネルを侵害することを防ぎます。
また、メモリ整合性は、カーネルメモリページがセキュアなランタイム環境内でのコード整合性チェックに合格した後にのみ実行されることを保証します。加えて、実行可能なコードページの改ざんや、改ざんされたメモリの実行を防ぎます。この仕組みによってカーネルメモリの割り当てが制限され、システムが侵害されるのを防いでいます。
WindowsでVBSを実行するための要件
WindowsでVBSを有効にして実行するには、いくつかのコンポーネントが適切に構成されている必要があります。最も重要なのはWindowsハイパーバイザーです。また、プロセッサが第2レベルアドレス変換(SLAT)を備えた仮想化をサポートしている必要があります。
さらに、DMA対応のすべてのI/Oデバイスが入出力メモリ管理ユニット(IOMMU)の背後に配置されていること、そしてすべてのシステムファームウェアがWindows SMM Security Mitigation Table(WMST)に準拠してSystem Management Mode(SMM)コードを強化していることが求められます。すべてのUnified Extensible Firmware Interface(UEFI)ファームウェアは、コードとデータのEFIランタイムメモリ範囲を分離して報告するとともに、EFIページ保護を含める必要があります(たとえば、実行可能なUEFIメモリは読み取り専用であり、書き込み可能なメモリは実行不可であること)。
もう一つの重要な要件は、すべてのシステムドライバーがメモリ整合性との互換性を確保するためにテストされていることです。また、高度なメモリ攻撃からシステムを守るために、Secure Memory Overwrite Request リビジョン2を実装する必要があります。
最後に、Microsoftは必須ではありませんが、ハードウェアベースのセキュリティを提供するためにトラステッドプラットフォームモジュール(TPM)の実装を推奨しています。
Windows 10/11でVBSが有効になっているか確認する方法
Windows 10および11では、VBSは通常既定で有効になっています。ただし、管理者は以下の手順で有効になっているかどうかを確認できます。
- Windows検索で「システム情報」アプリを検索する
- アプリを開く
- 「仮想化ベースのセキュリティ」の行までスクロールする
- 「実行中」と表示されていれば、VBSは有効
Windows 10/11でVBS/HVCIを無効にする方法
セキュリティ上のメリットがある一方で、Windows 10および11でVBSを有効にすると、システムパフォーマンスが低下することがあります。この機能を無効にすればパフォーマンスは向上しますが、その代償としてセキュリティソリューションが脆弱性や悪用行為にさらされるリスクがあります。
Windows 10および11でVBS/HVCIを無効にする手順は以下の通りです。
- Windows検索で「コア分離」を検索するか、システム設定から開く
- メモリ整合性をオフにする(オンになっていた場合)
- システムを再起動する
- 「システム情報」アプリを開く
- 「仮想化ベースのセキュリティ」の行までスクロールする
- 「無効」と表示されていれば、VBSは無効化されている
VBSがまだ有効になっている場合は、システムレジストリから無効にする必要があります(管理者権限と経験が必要な場合があります)。手順は以下の通りです。
- regeditを実行してレジストリエディターを開く
- Computer\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard フォルダーに移動する
- EnableVirtualizationBasedSecurity という名前のファイルを開き、値を0に設定する
- regeditを閉じる
- PCを再起動する
- 「システム情報」アプリでVBSが無効になっていることを確認する
Windowsの仮想化ベースセキュリティ機能についてさらに詳しく知り、仮想環境を保護する際の注意点を確認しましょう。Windows Defender Device Guardの有効化方法や、Windows Server向けエンドポイント検出・レスポンス(EDR)ツールの比較もぜひご覧ください。
-
Macユーザー必携!覚えておきたいターミナルコマンド チートシート
Macのオペレーティングシステムは、直感的で使いやすいインターフェースを備えているため、特別な知識がなくても快適に操作できます。しかし、Windowsと同様に、Macにも独自のコマンドラインインターフェースである「ターミナル」アプリ(UNIXコマンド)が標準搭載されています。 ターミナルの使い方をマスターすれば、macOSの設定をより深いレベルまで自由に操作できるようになります。ファイル検索が格段に楽になり、ファイルやフォルダーの管理も思いのまま。何よりも、Macをより強力かつ柔軟にコントロールできるようになるのが最大のメリットです。 Macを自在に操れるコマンドは数多く存在しますが、すべてを
-
Macで文章力をアップさせる9つの便利アプリと実践コツ
執筆は楽しい活動ですが、適切なツールがなければ思うように進まないこともあります。やる気が湧かない、アイデアをまとめられない、文法に悩む——そんなとき、正しいアプリ選びが大きな助けになります。 この記事では、Macでの執筆の質と量を高めるための優れたアプリやテクニックをご紹介します。 1. ライティングアプリを選ぶ 多くのライターは無意識に標準的なワープロソフトを選びがちですが、そこにはいくつかの問題点があります。 ワープロに入力すると、テキストは入力と同時にリアルタイムで組版されます。そのため、論理的な構成よりも見た目の要素ばかり気にしてしまい、執筆の勢いが失われ、集中が途切れる原因になります