Device Guardの概要

マルウェアに関する被害が相次いでいます。

この背景には、マルウェアの新種が際限なく作られ続けているという現状があり、これではシグネチャベース(ブラックリスト型)のウイルス対策製品での防御に限界があることは、かなり前から提言されてきました。

そこで、より踏み込んだセキュリティ対策として、「信頼できるアプリケーション以外は実行しない」という手法(ホワイトリスト型)がWindows10には実装されています。この機能はDevice Guardと呼ばれています。

(Device Guardを利用するためにはWindows 10 Enterprise Editionか、Windows 10 Educationが必要です)

特定の業務でしか利用しない端末の場合には、その特定のアプリケーションだけ実行できれば問題ないことになります。悪意のあるコードも実行されなければ問題となることはありません。

具体的には、Device Guardを利用することで、管理者が指定したアプリケーション以外は実行不可能とすることができます。

Device Guardの機能

Device Guardでは、信頼のおける開発者の署名がつけられたコード(出荷元が明確なコード)や「コードの整合性(Code integrity)ポリシー」と呼ばれるホワイトリストで許可されたコードだけが実行されます。このコードの整合性ポリシーは管理者が事前に配布する形になります。

署名などを検証する機能はこれまでのWindowsでも実装されていましたが、コードのチェックやチェックに利用するデータの置き場はWindows上に置かれていたため、マルウェアにより改ざんされる可能性がありました。

その対策として、Device Guardでは検証用のデータをWindows10から導入されたVSMと呼ばれる仮想マシン上に置き、より信頼性の高いチェック機能を実現しています。これは「正しいコード」が、悪意ある改変を受けていない「正しい状態」で稼働していることを保証できる仕組みとなります。

KMCIとUMCI

Device Guardには、カーネルモードで動作するデバイスドライバーのようなコードに対する機能である「KMCI」と、各種アプリケーションのようなユーザーモードで動作するコードに対する機能である「UMCI」の2つの機能があります。

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

一方UMCIでは、予め信頼できるアプリケーションをリストアップしたコードの整合性ポリシーを管理者が作成しておき、各端末に配布します。アプリケーションの実行時にUMCIがコードの整合性ポリシーと照合し、許可されていないコードであった場合は実行不可とします。

この一連の処理はロギングすることが可能です。また、実行自体はさせてしまってログには記録する「監査モード」と呼ばれる機能も備えています。

運用が重要

Device Guardは非常に強力かつ厳格な仕組みです。適切に運用することでゼロデイ攻撃にも耐えうる環境を構築できますが、その一方で、ある日突然端末が正常に動作しなくなるなど、トラブルが発生する危険性もあります。

導入時の初期設定だけではなく、その後の運用管理もきちんと継続的に行うことが求められる機能といえます。