Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、機能を5つのスタックに分けて順に押さえていくことが早道だ。連載第2回は不正なコードの実行や、Webブラウザを利用した詐欺、ハッキングなど「脅威からの保護」について紹介する。
Windows 10のセキュリティ対策について、起動前のデバイスの保護から侵害の検出と対策まで、順を追って解説する本連載。
第1回で扱った「デバイスの保護」に続いて、今回は「脅威からの保護」の仕組みを解説する。
Windows 10では、セキュリティ上の脅威からの保護策は大きく3つに分かれる。1つ目は伝統的なセキュリティ機能であるWindows Defender(アンチマルウェア)、Windows Firewall(ホスト型ファイアウォール)、SmartScreen(Webサイトのリアルタイムの検証)だ。2つ目はWindows 10に新たに導入されたセキュリティ機構「Device Guard」、3つ目はWebブラウザで「Microsoft Edge(以下Edge)」の導入だ。以上の5つを図1に示した。
以下では図1に示したDevice GuardとEdgeについて、どのようなセキュリティ機能を備えるのかを順に紹介する。
Device Guardは、第1回で紹介した仮想マシン「VBS」をベースに動作する。「正しいコード」が、悪意ある改変を受けていない「正しい状態」で稼働していることを担保する一連の機構だ。
Device Guardの概念は幅広い。そのため、Microsoftのドキュメント内でも内容や指し示す技術の範囲が微妙に異なっている。今回は、“Device Guard の概要:仮想化ベースのセキュリティとコードの整合性ポリシー”で述べられている内容を中心に取り上げる*1)。
*1) マイクロソフト TechNetにある該当ページの内容はこちら。
そもそも正しいコードとは何だろうか。適切な署名がされたコードという意味だ。つまり、コードの出荷元が明確であり、改版がされていないコードだ。Device Guardを一連の機構と呼ぶのは、PCのブートからユーザーによるアプリケーションの起動まで、複数の技術を利用して正しさを保証するからだ(図2)。
まずPCのブート時に、第1回で解説した「Windows Trusted Boot」を利用して正しさを保証する。図2で「UEFI Secure Boot」と書かれている部分だ。
ブート後のコード実行は、「KMCI(Kernel Mode Code Integrity)」と、「UMCI(User Mode Code Integrity)」で保証する。
ドライバのコード署名やAppLockerなど、コード(プログラム)の整合性チェック自体は、Windows 10以前のシステムで実装済みだ。ところが、整合性チェック機能自体がWindows上で稼働し、整合性チェックに利用するデータもWindows上にあるため、どちらも改ざんされる可能性があった。
そこでWindows 10から導入されたVBSの機能を用いる。KMCIとUMCIは、VBS内で動作するVSM(Virtual Secure Mode)の「Hyper-Visor Code Integrity」を利用する(図3)。
検証機能と検証に必要なデータをVSMに移すことで、信頼性の高い整合性チェック機構を実装できた。なお、VBSを利用することで、DMAベースの攻撃*2)からも情報とコードを保護できる。
*2) Direct Memory Access(DMA)を利用することで、ファイルではなく、メモリ上に残った整合性チェックに利用するデータなどを読み出す攻撃をいう。
企業内でDevice Guardを利用する際には、稼働を許可する署名されたソフトウェアをまずリスト化する。標準PCで「コード整合性ポリシー」を作成し、これを組織内のPCに展開する。
コード署名のないソフトウェアも実行可能だ。Device Guardの一部として開発されたツール「Package Inspector」を使用して、実行を許可するアプリのカタログをまず作成する。その後、組織内のPCに展開すればよい。
Copyright © ITmedia, Inc. All Rights Reserved.