今回は、「カーネルモードハードウェア強制スタック保護はオフです。デバイスが脆弱である可能性があります。」と表示され、「オン」にできない場合の解決法を紹介します。
「カーネルモードハードウェア強制スタック保護」の項目が表示される原因は、Windows セキュリティの更新です。
「カーネルモードハードウェア強制スタック保護」とは
「カーネルモードハードウェア強制スタック保護」とは、コア分離の機能であり、メモリ整合性をオンにしていないと、この機能は使用することができません。
「カーネルモードハードウェア強制スタック保護」は、最近の Windows セキュリティの更新プログラムで追加された項目です。
この機能は、BIOS での設定が必要な場合があり、サポートされていない CPU では使用することができないようです。
「カーネルモードハードウェア強制スタック保護」の機能を使用するためには、比較的新しい CPU が必要であり、次のような場合は使用することができません。
- 古いアンチチートプログラム(ゲーム用)がインストールされている
- 古いキーボードやマウスのドライバーがインストールされている
- 特定のアプリ、またはドライバーがインストールされている
例えば、「Riot Vanguard(ゲームセキュリティソフト)」が実行されている PC では「カーネルモードハードウェア強制スタック保護」の機能を使用することができません。
機能を使用するためには「Riot Vanguard」をアンインストールする必要があります。
「カーネルモードハードウェア強制スタック保護」を「オン」にするメリット
カーネルモードで実行されているコードの場合、CPUは、要求されたリターンアドレスを、シャドウスタックに格納されているアドレスの2番目のコピーを使用して確認し、攻撃者によって悪意のあるコードを実行するアドレスとして代用されるのを防ぎます。
Microsoft
「カーネルモードハードウェア強制スタック保護」は、、カーネルモードでのバッファオーバーフロー攻撃を防ぐための強力なセキュリティ機能です。
アプリケーションやゲームがローカル CPU のハードウェアを使用してコードを保護することを可能にします。
その目的は、プログラム実行時にアプリケーションコードが格納されるメモリスタックを保護することです。
「ローカルセキュリティ機関の保護」と合わせて使用するとセキュリティが強化されます。
セキュリティが強化されますので、企業などでは「オン」にしておくことをおすすめします。
注意! Win11「ローカルセキュリティ機関の保護」が有効かどうかを確認する方法
「カーネルモードハードウェア強制スタック保護」を「オン」にするデメリット
「カーネルモードハードウェア強制スタック保護」は、セキュリティを強化する機能ですが、特定のアプリケーションが正常に機能しなくなる場合があります。
また、特定のドライバーのインストール及び読み込みができなくなる場合があります。
「カーネルモードハードウェア強制スタック保護」をオンにできない場合
「ドライバーの検証ツール マネージャー」を使用して、署名されていないドライバーを検証します。
Windowsキー + R を押して、「ファイル名を指定して実行」を開き、「verifier」と入力して Enter を押します。
ユーザーアカウント制御が表示されますので、「はい」をクリックします。
「ドライバーの検証ツール マネージャー」が開きますので、「標準の設定を作成する」をチェックし、「次へ」をクリックします。
「署名されていないドライバーを自動的に選択する」をチェックし、「次へ」をクリックします。
これを行うと、署名されていないドライバーによって引き起こされる問題が絞り込まれます。
問題がなければ次のように「署名されていないドライバーが見つかりませんでした。」と表示されます。
何か問題が発生した場合、「ドライバーの検証ツール マネージャー」はドライバーを修正する必要がある場所を教えてくれます。
問題を修正した後に「カーネルモードハードウェア強制スタック保護」を「オン」にしてみましょう。
追記:「カーネルモードハードウェア強制スタック保護」の項目を表示するレジストリ値
レジストリの操作を間違えるとシステムが起動できなくなるなど不具合が起きる可能性があります。事前にシステムの復元などでバックアップを取り、自己責任で行うようお願いします。
- システムの復元ポイント作成方法及び復元方法
- レジストリエディタの開き方及びバックアップ方法
- Win10 レジストリの予備知識|概念、開き方、レジストリの内部構成
※Windows 11 のレジストリも基本は同じです。
「カーネルモードハードウェア強制スタック保護」の項目が表示されている際に、レジストリの次のキーを確認すると、「KernelShadowStacks」というサブキーが追加されているのを発見しました。
PC が「カーネルモードハードウェア強制スタック保護」に対応しているのであれば、ここで紹介するレジストリ値の追加で表示されるようになります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KernelShadowStacks
「KernelShadowStacks」キーには、4つの REG_DOWRD 値があります。
「カーネルモードハードウェア強制スタック保護」の項目は、「Enabled」という値のみがあれば表示されるようになります。
レジストリで「カーネルモードハードウェア強制スタック保護」を「オン」「オフ」にする方法
「カーネルモードハードウェア強制スタック保護」を「オフ」にする
次のキーのサブキー「KernelShadowStacks」を削除します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios
「KernelShadowStacks」キーを削除すると、「カーネルモードハードウェア強制スタック保護」の項目も表示されなくなります。
項目を残したまま「オフ」にしたい場合は、「AuditModeEnabled」と「Enabled」の 2つの REG_DOWRD 値を作成し、それぞれの値のデータを「0」にします。
レジストリの変更後、PC を再起動すると設定が反映されます。
「カーネルモードハードウェア強制スタック保護」を「オン」にする(注意)
レジストリで「カーネルモードハードウェア強制スタック保護」を「オン」にするのは危険です。
何故かというと、互換性のないドライバーがあった場合、最悪 Windows 11 が起動できなくなってしまう場合があるからです。
「オン」にしたい場合は、「カーネルモードハードウェア強制スタック保護」の項目から「オン」にしましょう。
その際に、互換性のないドライバーがあれば「オン」にすることはできず、互換性のないドライバーが表示されます。
「カーネルモードハードウェア強制スタック保護」を「オン」にすると、互換性のないドライバーをインストール及び読み込むことができなくなります。
また、一部のオンラインゲームなども実行できなくなります。
筆者は「Epic Games」の「フォートナイト」というゲームが起動できなくなることを確認しています。
そして、「フォートナイト」をインストールした後には「カーネルモードハードウェア強制スタック保護」を「オン」できたとしても、「フォートナイト」を起動することができませんでした。
「カーネルモードハードウェア強制スタック保護」を「オン」にすると、PC のセキュリティは向上しますが、多くのドライバーとの互換性がなくなるということを覚えておきましょう。
「カーネルモードハードウェア強制スタック保護」は、Windows セキュリティの更新により表示、非表示が繰り返されています。
これは、Windows セキュリティの更新のバグなのか、Microsoft が意図的に行っているのかは不明です。
コメント(降順)