Windows11 が動作する必要スペックの最近のキーワードとして、VBS, HVCI, MBEC といった単語が飛び交っています。実はこれらはすべてセキュリティの部分でつながっています。これらの単語の理解と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アプリまで取り込み、どうなるかは見ものです。
MBEC
MBEC(Mode Based Execution Control )は Kaby Lake 以降がサポートしています。Ryzen2 以降も同様の仕組みがあります。
docs.microsoft.com
メモリ整合性は、VBS の分離された仮想環境内でカーネル モード のコード整合性を実行することで Windows を保護および強化する重要なコンポーネントです。 メモリ整合性により、システムの侵害に使用できるカーネル メモリ割り当ても制限されます。
MBECにより、「ユーザーモード実行」保護がマークされたメモリは、仮想プロセッサがユーザーモードで実行されている場合にのみ実行可能になります。同様に、「カーネル モード実行」メモリは仮想プロセッサがカーネル モードで実行されている場合にのみ実行可能になります。つまりWindowsのカーネルで実行されるときは、ユーザーモードページは実行不可能になります。
Windows10でのVBSとHVCI
Windows10 ではすでに利用できます。
デバイスセキュリティのコア分離で、メモリ整合性をONにすることで、有効にできます。
一部Suerface では有効で出荷されているとのこと。
有効にするには、すべてのドライバが HVCI に準拠していなければならないため、サードパーティーのドライバーで対応していないものが1つでもあると移行できません。
私のPCの例です。Intel にも未対応のドライバがありました。
Windows11でのVBSとHVCI
Windows11が 第8世代CPUを必須としているのが、VBSを利用するための条件であると言えそうです。
正確には第7世代 Kaby Lake から MBCEはサポートしているので、緩和される可能性があります。
VBSにより、セキュリティレベルの底上げが世界的にされるのですから、大きな効果が期待できます。