Windows11 が動作する必要スペックの最近のキーワードとして、VBS, HVCI, MBCE といった単語が飛び交っています。実はこれらはすべてセキュリティの部分でつながっています。これらの単語の理解とWindows11との関係性を探ってみます。
VBS
VBSとは、Virtual Base Security の略で、仮想化をベースとしたセキュリティという意味です。
仮想化は広く一般で使われています。当サイトで一押しの VMware も仮想化のためのソフトウェアです。仮想的なPC(仮想マシン)を作り、その中で独立したOSを稼働させることができます。たとえば、Windowsと同時にLinux を仮想マシンの中で動かするといったことができます。
マイクロソフトからは Hyper-V という仮想化ソフトウェアがWindows10に標準搭載されています。
VBS を有効にすると、このHyper-V を用いて、セキュリティ上の最も重要な部分をWindowsから独立した仮想マシン上で動かすことで、セキュリティレベルを上げています。
ここで動かす仮想マシンを指してVSM (Virtual Secure Model) と呼びます。
Hyper-Vは、OSよりも下位レイヤーに位置しています。Hyper-Vから見ると、WindowsもVSMも同じ仮想マシンの1つという位置づけです。
ただし、VBS上はVSMの方がより上位の特権レベルを持ち、仮にWindowsが攻撃されても、VSMには侵入できないよう保護されています。
HVCI
セキュリティ用の仮想マシンであるVSMの中で動かすサービスの一つとして HVCI (Hyper-Visor Code Integrity)があります。
Windowsでリスクが高いのはドライバーです。OSと同じくカーネルモードで動くソフトウェアです。ここに侵入されてしまうと、セキュリティの根幹を揺るがしかねません。Windowsの64bit 版では、ドライバーの電子署名とマイクロソフトの認可が必須になりました。これにより、出来が悪いドライバーが淘汰され、ブルースクリーンが出る頻度が格段に低くなりました。それと同時に悪用ができてしまう危険なドライバも撲滅です。
それなら何も問題が無いように思えますがそうではありません。
Windowsが起動時に、ドライバーの電子署名の正当性を確認してロードしていくわけですが、この確認するソフトウェア自体が狙われる可能性があります。どんなにすごい仕組みを作っても、チェックするソフトウェアが乗っ取られたら意味がありません。
そこで、ドライバのチェック機能自体を仮想マシンに移行させ、その機能を HVCI と呼ぶようになりました。
仮にWindowsに侵入できたとしても、VSMには侵入できないため不正なドライバーにすり替えることは極めて困難になります。
HVCIはドライバーだけではなく、ユーザーモードのアプリでも使用できるのですが、Education やEnterprise などの組織管理の場で利用される Device Guard という機能で利用されています。ここにストアアプリが絡んでいたりします。ストアアプリは惨憺たる状況ですので、Windows11 でWin32アプリまで取り込み、どうなるかは見ものです。
MBCE
MBCEは、HVCI の処理のアクセラレート機能のようです。「モード ベース実行制御」というキーワードがあるのですが、いまいち具体的な部分が分からず調査中です。
HVCI の処理高速化の機能と理解しておけばよいでしょう。
MBCEは、Kaby Lake か Ryzen2 以降がサポートしています。
docs.microsoft.com
Windows10でのVBSとHVCI
Windows10 ではすでに利用できます。
デバイスセキュリティのコア分離で、メモリ整合性をONにすることで、有効にできます。
一部Suerface では有効で出荷されているとのこと。
有効にするには、すべてのドライバが HVCI に準拠していなければならないため、サードパーティーのドライバーで対応していないものが1つでもあると移行できません。
私のPCの例です。Intel にも未対応のドライバがありました。
Windows11でのVBSとHVCI
Windows11が 第8世代CPUを必須としているのが、VBSを利用するための条件であると言えそうです。
正確には第7世代 Kaby Lake から MBCEはサポートしているので、緩和される可能性があります。
VBSにより、セキュリティレベルの底上げが世界的にされるのですから、大きな効果が期待できます。