セキュリティ脅威からシステム全体を守る方法としては、「信頼できるアプリケーション以外は実行しない」という、よりアグレッシブなアプローチも存在します。例えば特定業務でしか利用しない端末の場合には、その業務アプリケーションだけが実行できればいいわけですから、この方法を採用することでガードを固めることが容易になります。悪意のあるいかなるコードも、実行されなければ問題を引き起こすことはありません。
このようなアプローチを可能にするため、Windows 10では2015年11月にリリースされた「November 2015 Update」で、「Device Guard」という機能が追加されています。これを利用することで、IT管理者が指定したアプリケーション以外は起動不可能にできるのです。
Device Guardを利用するには、Windows 10 Enterprise Editionか、Windows 10 Educationが必要です。また「Credential Guard」というセキュリティフレームワークを使用するため、その要件も満たしておく必要があります。具体的には以下の要件があります。
64ビット版OSや仮想化拡張機能が必要なのは、Credential GuardがHyper-Vの仮想化技術を利用しているからです。アプリケーションを動かすためのWindowsカーネルは、ハイパーバイザー上の仮想マシンとして動作します。その一方で、これとは隔離された状態で、仮想セキュアモードのWindowsカーネルやコアサービスが提供されます。これによって、管理者権限が乗っ取られた場合でも、コアサービスの改ざんが行われにくくしているのです。
Device Guardを有効にすると、端末の振る舞いは以下のようになります。
Device Guardは非常に強力かつ厳格な仕組みであり、適切に運用することでゼロデイ攻撃にも耐えうる環境を構築できます。しかし対応するWindowsのEditionが制約されており、満たすべき要件が高いというハードルがあります。また整合性ポリシーの設定も決して簡単ではありません。さらに、デバイスドライバの証明書の期限切れ等によって、ある日突然端末が正常に動作しなくなるなど、トラブルが発生する危険性もあります。導入時の初期設定だけではなく、その後の運用管理もきちんと継続的に行うことが求められる機能なのです。
信頼できるウイルス対策ソフトウェアを導入・運用しているのであれば、ここまで厳格な制御は必要ないかもしれません。それではもう少しシンプルな形でアプリケーション起動制御を行うには、どうすればいいのでしょうか。
実は前回ウイルス対策ソフトとして紹介した「Symantec Endpoint Protection 14」にも、デバイスやアプリケーションの制御機能が用意されています。これを利用することで、より簡単にアプリケーション制御が行えるようになります。「Device Guardはハードルが高い」と感じるのであれば、このような方法も選択肢に加えておくといいでしょう。
次回はユーザー認証について考えます。システムへの不正アクセスを防ぐ上で、ユーザー認証は最初の関門になるものであり、ここで適切な手法を用いなければ、それ以外のセキュリティ対策も無意味になってしまうからです。ではWindows 10では、具体的にどのような手法が用意されているのでしょうか。