怪しいアプリケーションは絶対に実行させない!「Device Guard」
アンチマルウェアによる保護はパターンマッチにより悪意のあるアプリケーション自体を検知して実行前に削除や隔離することで対応していたのに対し、あらかじめ信頼されたアプリケーションをホワイトリストとして登録しておき、このリストにあるアプリケーションのみ実行可能とする形で実装された機能が「Device Guard」だ。
信頼されたアプリケーションかどうかの判断は、アプリケーションのコード署名の検証をベースに行われ、信頼された開発者のコード署名が付与されたアプリケーションだけが実行可能になっている。
制御できるアプリケーションは、通常のWin32アプリ(EXE形式)や、ストアアプリ(Appx形式)に加え、DLLやスクリプトファイルも対象となる。

「Device Guard」で制御するアプリケーション
まず、実際の展開の手順については「Device Guard 展開ガイド 」のサイトにまとまっているので、こちらを参照してほしい。
実行を許可するアプリケーションの定義は、コード整合性ポリシーを作成する形で対応する。ポリシーの作成についてはPowerShellのコマンドレットが準備されており、ひな形になるデバイスにインストールされているアプリケーションをスキャンし、検出されたアプリケーションの証明書をベースにリストが作成される。
そして作成されたポリシーファイルをGPO(グループポリシーオブジェクト)で展開することで、Device Guardの保護が有効になる。

コード整合性ポリシーで、Device Guardが制御するアプリケーションを定義する
Device Guardはコード署名をベースにアプリケーションの実行可否を決定するわけだが、フリーウェアや既存のLOBアプリケーションにはコード署名がされていないものも少なくない。この場合には、許可するアプリケーションのハッシュ情報をリストに記述し、そのリストを署名することで、信頼されたアプリケーションとして実行可能になる。このリストは「カタログファイル」という情報で構成される。
また、このリストを署名するための仕組みはビジネス向けWindowsストア に機能として実装されている。
ビジネス向けWindowsストアの設定メニューに「Device Guardの署名」メニューがあり、ここから作成済みのカタログファイルを署名させることが可能となっている。
なお、Device Guardであるが、非常に強力な制限をかけることが可能な機能であるため、使いどころには注意が必要だ。特定業務に特化したPCなど、アプリケーションの更新がほとんどかからないPCに対しては非常に相性がいい。しかし、ユーザーが任意にアプリケーションをインストールできたり、BYODで個人所有のPCを持ち込んでいるような場合では許可したアプリケーションしか実行できないため不具合が生じる可能性がある。この場合チェックはするが制限はしない「監査モード」で展開してログのみを取得するモードでの利用も併せて検討してほしい。