全3334文字
PR

 Windowsの内部構造を詳細に解き明かす定番書籍「インサイドWindows」。1992年の初版発行以来(初版の訳書は1993年発行)、Windowsに接するすべてのITエンジニアのバイブルとして永く読み継がれてきました。最新刊の第7版は、2017年5月に上の原書が発行され(訳書の発行は2018年5月、山内和朗訳)、約4年の歳月を経て2021年10月に下の原書が発行されました(訳書の発行は2022年9月、山内訳)。

 第7版完結を機に、「インサイドWindows」の読みどころを、上(第1章~第7章)と下(第8章~第12章)から抜粋してお届けします。今回は第7章(上)からの抜粋で、Windowsのセキュリティーにおいて重要な役割を果たす、仮想化ベースのセキュリティー(VBS)について解説します。(日経BOOKSユニット第2編集部)

第7章 セキュリティ

 センシティブなデータに対する承認されていないアクセスを防止することは、複数のユーザーが同じ物理リソースまたはネットワークリソースにアクセスする、あらゆる環境において重要なことです。オペレーティングシステムはもちろん、個々のユーザーも、ファイル、メモリ、構成設定を、望ましくない参照や変更から保護できなければなりません。

 オペレーティングシステムのセキュリティは、アカウント、パスワード、およびファイル保護といった、明確なメカニズムを提供します。オペレーティングシステムを破損から保護する、権限の低いユーザーが操作を実行するのを禁止する(例えば、コンピューターの再起動を禁止する)、ユーザープログラムが他のユーザーやオペレーティングシステムのプログラムに悪影響を与えるのを許可しない、といったあまり目立たないメカニズムもあります。

 この章では、堅牢(けんろう)なセキュリティを提供するという厳しい要件の下で、Windowsの設計と実装のあらゆる側面が、どのような方法でどのように影響を受けているのかを説明します。

7.3 仮想化ベースのセキュリティ(VBS)

 本質的に高いレベルの特権、およびユーザーモードアプリケーションからの分離があってこそ、そのカーネルは信頼できると呼ぶのが一般的です。しかし、毎月、数えきれないほどのサードパーティ製ドライバーが書かれています。マイクロソフトでは、毎月、100万もの一意のドライバーのハッシュ値が、製品利用統計情報で確認されています。

 これらのドライバーはそれぞれ、いくつもの脆弱性を含んでいる可能性があります。言うまでもなく、意図的に悪意のあるカーネルモードコードが含まれている可能性もあります。

 そんな現実において、カーネルが小さく、保護されたコンポーネントであり、ユーザーモードアプリケーションは攻撃から“安全”であるという考えは、明らかに実現されていない理想でしかありません。この状況は、カーネルを完全に信頼することをできなくさせ、重要なユーザーモードアプリケーションが持っている可能性のある、極めてプライベートなユーザーデータを、他の悪意のあるユーザーモードアプリケーション(バグのあるカーネルモードコンポーネントを悪用することで)や悪意のあるカーネルモードプログラムが開いて、漏洩させてしまうかもしれません。

 本書『インサイドWindows 第7版 上』の「第2章 システムアーキテクチャ」で議論したように、Windows 10およびWindows Server 2016には、追加的な独立した信頼レベルである「仮想信頼レベル(Virtual Trust Level:VTL)」を有効にする、「仮想化ベースのセキュリティ(Virtualization-Based Security:VBS)」アーキテクチャが組み込まれています。

 ここでは、資格情報ガードとデバイスガードが、ユーザーデータを保護し、デジタルコード署名用途向けのハードウェア信頼ベースの追加のセキュリティレイヤーを提供するために、どのようにVTLを利用するのかを見ていきます。この章の最後には、カーネルパッチ保護(KPP)が、どのようにしてPatchGuardコンポーネントによって提供され、VBSで強化されたHyperGuardテクノロジによって拡張されるのかもお見せします。