PMPの流儀

我が家の流儀

我が家で気になったことを夫婦で取り上げていきます

MENU

Windows11 で話題の VBS, HVCI, MBEC を掘り下げる

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により、セキュリティレベルの底上げが世界的にされるのですから、大きな効果が期待できます。