知識マップ: メモリ整合性(HVCI)をオフにすると速くなるのか ── 意味と手順と判断
記事「メモリ整合性(HVCI)をオフにすると速くなるのか ── 意味と手順と判断」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
メモリ整合性(HVCI)は仮想化ベースのセキュリティ(VBS)の上に載る機能で、VBSはWindowsハイパーバイザーを使い、ハイパーバイザーはSLATを前提とする。メモリ整合性はカーネルへのコード注入を防ぐが、ハイパーバイザーがOSの下に入ることと実行許可をハイパーバイザーが強制することによる仮想化の性能影響の原因になることがあり、このうちメモリ整合性に固有なのは実行許可の強制によるコストで、CPUにMode-Based Execution Control(MBEC/GMET)があればそのコストは軽減され、無ければRestricted User Modeのエミュレーションで大きくなる。ハイパーバイザーが下に入ることによる二段階アドレス変換のコストはこれとは別で、MBECでは減らない。仮想マシン プラットフォームも同じハイパーバイザーを使って性能影響の原因になることがあり、WSL 2はこれを前提とし、Windows サンドボックスも同じハイパーバイザーで動くため、メモリ整合性をオフにしてもハイパーバイザーは残り得る。メモリ整合性はコア分離の画面・レジストリ・グループポリシーで構成でき、動作状態はWin32_DeviceGuardとmsinfo32で確認でき、MBECの有無もWin32_DeviceGuardで分かる。メモリ整合性は要件に適合しないドライバーの読み込みブロックの原因になることがあり、その記録はCodeIntegrity運用ログで確認でき、対応版ドライバーへの更新が推奨され、Windowsが自動で有効化したPCに限っては、起動失敗時の自動無効化の安全装置がブロックによる起動不能を軽減する(手動でオンにした場合は文書化されておらず、働いた場合も原因の確定ではない)。一部のアンチチートは、エラーでHVCIを名指しした PC ではHVCIを前提とする。性能影響への対応としては、状態を確認したうえで同じ条件で複数回測る再現性のある比較を勧める。
flowchart LR
accTitle: メモリ整合性(HVCI)をオフにすると速くなるのかの知識マップ
accDescr: メモリ整合性がVBSとWindowsハイパーバイザーの上に載り、コア分離の画面・レジストリ・グループポリシーで構成され、カーネルへのコード注入を防ぐ一方で仮想化による性能影響とドライバーの読み込みブロックの原因になり得ること、性能影響のうちメモリ整合性に固有の実行許可の強制コストをMBEC/GMETが軽減し、Restricted User Modeが大きくすること、ハイパーバイザー自体も二段階アドレス変換で性能影響の要因になること、動作状態はWin32_DeviceGuardとmsinfo32で確認でき、仮想マシン プラットフォームやWSL 2・Windows サンドボックスが同じハイパーバイザーを使い、エラーでHVCIを名指しするアンチチートがHVCIを前提とし、性能影響には再現性のある測定で対応することを示す図
hvci["メモリ整合性"]
hypervisor_performance_impact["仮想化による性能影響"]
vbs["仮想化ベースのセキュリティ"]
windows_hypervisor["Windowsハイパーバイザー"]
slat["SLAT"]
kernel_code_injection["カーネルへのコード注入"]
virtual_machine_platform["仮想マシン プラットフォーム"]
mbec["Mode-Based Execution Control(MBEC)"]
restricted_user_mode["Restricted User Mode(RUM)"]
hvci_execute_enforcement_overhead["実行許可の強制によるメモリ整合性のコスト"]
core_isolation["コア分離"]
windows_registry["レジストリ"]
group_policy["グループポリシー"]
win32_deviceguard["Win32_DeviceGuardクラス"]
msinfo32["msinfo32(システム情報)"]
wsl2["WSL 2"]
windows_sandbox["Windows サンドボックス"]
hvci_driver_block["HVCIによるドライバー読み込みブロック"]
codeintegrity_log["CodeIntegrity - Operationalログ"]
hvci_compatible_driver["HVCI対応ドライバー"]
hvci_auto_disable_safeguard["起動失敗時のメモリ整合性の自動無効化"]
anti_cheat_hvci_requirement["アンチチートのHVCI要件"]
benchmark_reproducibility["ベンチマークの再現性"]
hvci -->|"利用する"| vbs
vbs -->|"利用する"| windows_hypervisor
windows_hypervisor -->|"前提とする"| slat
hvci -->|"防止する"| kernel_code_injection
hvci -.->|"原因になり得る"| hypervisor_performance_impact
virtual_machine_platform -.->|"原因になり得る"| hypervisor_performance_impact
hvci -.->|"利用する"| mbec
hvci -.->|"利用する"| restricted_user_mode
hvci -->|"原因になり得る"| hvci_execute_enforcement_overhead
hvci_execute_enforcement_overhead -.->|"原因になり得る"| hypervisor_performance_impact
windows_hypervisor -.->|"原因になり得る"| hypervisor_performance_impact
mbec -->|"軽減する"| hvci_execute_enforcement_overhead
restricted_user_mode -->|"原因になり得る"| hvci_execute_enforcement_overhead
hvci -->|"で構成できる"| core_isolation
hvci -.->|"で構成できる"| windows_registry
hvci -.->|"で構成できる"| group_policy
hvci -->|"で確認できる"| win32_deviceguard
hvci -->|"で確認できる"| msinfo32
mbec -->|"で確認できる"| win32_deviceguard
wsl2 -->|"前提とする"| virtual_machine_platform
virtual_machine_platform -->|"利用する"| windows_hypervisor
windows_sandbox -->|"利用する"| windows_hypervisor
hvci -.->|"原因になり得る"| hvci_driver_block
hvci_driver_block -->|"で確認できる"| codeintegrity_log
hvci_compatible_driver -->|"推奨される対応"| hvci_driver_block
hvci_auto_disable_safeguard -.->|"軽減する"| hvci_driver_block
anti_cheat_hvci_requirement -.->|"前提とする"| hvci
benchmark_reproducibility -->|"推奨される対応"| hypervisor_performance_impact
概念間の関係(全28件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- メモリ整合性は仮想化ベースのセキュリティを利用します。
- 仮想化ベースのセキュリティはWindowsハイパーバイザーを利用します。
- WindowsハイパーバイザーはSLATを前提とします。
- メモリ整合性はカーネルへのコード注入を防ぎます。
- メモリ整合性は仮想化による性能影響の原因になることがあります。
- 仮想マシン プラットフォームは仮想化による性能影響の原因になることがあります。
- メモリ整合性はMode-Based Execution Control(MBEC)を利用します。
- メモリ整合性はRestricted User Mode(RUM)を利用します。
- メモリ整合性は実行許可の強制によるメモリ整合性のコストの原因になることがあります。
- 実行許可の強制によるメモリ整合性のコストは仮想化による性能影響の原因になることがあります。
- Windowsハイパーバイザーは仮想化による性能影響の原因になることがあります。
- Mode-Based Execution Control(MBEC)は実行許可の強制によるメモリ整合性のコストを軽減します。
- Restricted User Mode(RUM)は実行許可の強制によるメモリ整合性のコストの原因になることがあります。
- メモリ整合性はコア分離で構成できます。
- メモリ整合性はレジストリで構成できます。
- メモリ整合性はグループポリシーで構成できます。
- メモリ整合性はWin32_DeviceGuardクラスで確認できます。
- メモリ整合性はmsinfo32(システム情報)で確認できます。
- Mode-Based Execution Control(MBEC)はWin32_DeviceGuardクラスで確認できます。
- WSL 2は仮想マシン プラットフォームを前提とします。
- 仮想マシン プラットフォームはWindowsハイパーバイザーを利用します。
- Windows サンドボックスはWindowsハイパーバイザーを利用します。
- メモリ整合性はHVCIによるドライバー読み込みブロックの原因になることがあります。
- HVCIによるドライバー読み込みブロックはCodeIntegrity - Operationalログで確認できます。
- HVCI対応ドライバーはHVCIによるドライバー読み込みブロックに対する本記事の推奨です。
- 起動失敗時のメモリ整合性の自動無効化はHVCIによるドライバー読み込みブロックを軽減します。
- アンチチートのHVCI要件はメモリ整合性を前提とします。
- ベンチマークの再現性は仮想化による性能影響に対する本記事の推奨です。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。