相次ぐウイルス被害。新種が次々と作られる現状では、シグネチャ(ブラックリスト)ベースのウイルス対策製品で100%検知することは難しい。そこで、信頼できるコードだけを実行することでウイルス感染を防ぐのが、Windows 10の「Device Guard」だ。

 Device Guardでは、信頼された開発者の署名が付与されたコードや、「コードの整合性ポリシー」と呼ばれるホワイトリストで許可されたコードだけが実行される。コードの整合性ポリシーは、管理者が事前に配布しておく。

 署名などによる検証機能は従来のWindowsでも実装されていた。だが、コードのチェックはWindows上で行われ、なおかつチェックに利用するデータもWindows上にあるため、ウイルスなどによりこれらを改ざんされる可能性があった。Device Guardでは、検証に必要なデータとモジュールをVSMに置いて、信頼性の高い整合性チェック機能を実現する。

問題のないコードだけ実行を許可
問題のないコードだけ実行を許可
Windows 10で導入されたDevice Guardの概要。コードの整合性(署名など)をチェックし、問題のないコードのみを実行する。カーネルモードで動作するデバイスドライバーなどはKMCI、ユーザーモードで動作する通常のアプリケーションはUMCIがチェックする。KMCIとUMCIはVSMで動作するため、攻撃者による改ざんなどを防げる。
[画像のクリックで拡大表示]

 Credential Guardと同様にVSMを利用するので、Enterprise/Educationエディションだけで利用できる。また、この機能を使いたい場合には、Credential Guardと同じようにグループポリシーで有効にする。

カーネルとユーザーの2モード

 Device Guardには、カーネルモードで動作するコードに対する機能「カーネルモードのコードの整合性」(KMCI)と、ユーザーモードで動くコードに対する「ユーザーモードのコードの整合性」(UMCI)がある。例えば、デバイスドライバーはカーネルモードで動作し、アプリケーションはユーザーモードで動作する。

 KMCIは、カーネルにドライバーなどが読み込まれる際に、VSMのKMCIコンポーネントが署名をチェック。問題がないことが確認されるとカーネルが実行する。

 UMCIでは、信頼できるアプリケーションをリストアップしたコードの整合性ポリシーを管理者があらかじめ作成しておいて、各パソコンに配布する。VSMで動作するUMCIはアプリケーションの実行時にコードの整合性ポリシーと照合。許可されていないコードは実行不可となり、そのことがログに記録される。なおUMCIには、検証に失敗した場合でも実行させてログには記録する「監査モード」もある。