相次ぐウイルス被害。新種が次々と作られる現状では、シグネチャ(ブラックリスト)ベースのウイルス対策製品で100%検知することは難しい。そこで、信頼できるコードだけを実行することでウイルス感染を防ぐのが、Windows 10の「Device Guard」だ。
Device Guardでは、信頼された開発者の署名が付与されたコードや、「コードの整合性▼ポリシー」と呼ばれるホワイトリストで許可されたコードだけが実行される。コードの整合性ポリシーは、管理者が事前に配布しておく。
署名などによる検証機能は従来のWindowsでも実装されていた。だが、コードのチェックはWindows上で行われ、なおかつチェックに利用するデータもWindows上にあるため、ウイルスなどによりこれらを改ざんされる可能性があった。Device Guardでは、検証に必要なデータとモジュールをVSMに置いて、信頼性の高い整合性チェック機能を実現する。
Credential Guardと同様にVSMを利用するので、Enterprise/Educationエディションだけで利用できる。また、この機能を使いたい場合には、Credential Guardと同じようにグループポリシーで有効にする。
カーネルとユーザーの2モード
Device Guardには、カーネルモードで動作するコードに対する機能「カーネルモードのコードの整合性」(KMCI▼)と、ユーザーモードで動くコードに対する「ユーザーモードのコードの整合性」(UMCI▼)がある。例えば、デバイスドライバーはカーネルモードで動作し、アプリケーションはユーザーモードで動作する。
KMCIは、カーネルにドライバーなどが読み込まれる際に、VSMのKMCIコンポーネントが署名をチェック。問題がないことが確認されるとカーネルが実行する。
UMCIでは、信頼できるアプリケーションをリストアップしたコードの整合性ポリシーを管理者があらかじめ作成しておいて、各パソコンに配布する。VSMで動作するUMCIはアプリケーションの実行時にコードの整合性ポリシーと照合。許可されていないコードは実行不可となり、そのことがログに記録される。なおUMCIには、検証に失敗した場合でも実行させてログには記録する「監査モード」もある。