知識マップ: Windows仮想化の深層(第2回) ── カーネルからも見えないメモリ:VBS・HVCI・Credential Guardの仕組み
記事「Windows仮想化の深層(第2回) ── カーネルからも見えないメモリ:VBS・HVCI・Credential Guardの仕組み」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
VBSはWindowsハイパーバイザーで隔離環境を作り、カーネルが侵害され得る前提でセキュリティ機能を収容する。隔離は仮想セキュアモードが提供する仮想信頼レベルで実現され、その境界はSLATのメモリアクセス保護が支える。HVCI(メモリ整合性)はコード整合性検証をVBSの隔離環境で実行してカーネルへのコード注入を防ぐが、要件に適合しないドライバーの読み込みブロックの原因になることがあり、その記録はCodeIntegrity運用ログで確認できる。VTL1ではセキュアカーネルの上の分離ユーザーモードでトラストレットが動き、システムコールの多くはVTL0のNTカーネルへ依頼される。Credential GuardはVBSを使い、ドメイン資格情報のNTハッシュやTGTを分離LSAプロセスに保管し、保護対象のドメイン資格情報に対するPass-the-Hash攻撃を防ぐ。VBSと各サービスの動作状態はWin32_DeviceGuardクラスで確認できる。
flowchart LR
accTitle: VBS・HVCI・Credential Guardの知識マップ
accDescr: VBSがハイパーバイザーと仮想信頼レベルとSLATで隔離を作り、HVCIがカーネルへのコード注入を防ぎつつドライバーブロックの原因にもなり、Credential Guardが分離LSAプロセスで秘密を守る関係図
vbs["仮想化ベースのセキュリティ"]
virtual_trust_level["仮想信頼レベル"]
hvci["メモリ整合性"]
credential_guard["Credential Guard"]
windows_hypervisor["Windowsハイパーバイザー"]
virtual_secure_mode["仮想セキュアモード"]
slat["SLAT"]
kernel_code_injection["カーネルへのコード注入"]
hvci_driver_block["HVCIによるドライバー読み込みブロック"]
codeintegrity_log["CodeIntegrity - Operationalログ"]
lsaiso["分離LSAプロセス"]
pass_the_hash["Pass-the-Hash"]
win32_deviceguard["Win32_DeviceGuardクラス"]
secure_kernel["セキュアカーネル"]
isolated_user_mode["分離ユーザーモード"]
trustlet["トラストレット"]
nt_kernel["NTカーネル"]
tgt["TGT(チケット許可チケット)"]
nt_hash["NTハッシュ"]
msinfo32["msinfo32(システム情報)"]
hvci_compatible_driver["HVCI対応ドライバー"]
lateral_movement["横展開(ラテラルムーブメント)"]
vbs -->|"利用する"| windows_hypervisor
virtual_secure_mode -->|"利用する"| virtual_trust_level
virtual_trust_level -->|"利用する"| slat
hvci -->|"利用する"| vbs
hvci -->|"防止する"| kernel_code_injection
hvci -.->|"原因になり得る"| hvci_driver_block
hvci_driver_block -->|"で確認できる"| codeintegrity_log
credential_guard -->|"利用する"| vbs
credential_guard -->|"利用する"| lsaiso
credential_guard -.->|"防止する"| pass_the_hash
vbs -->|"で確認できる"| win32_deviceguard
vbs -->|"利用する"| virtual_secure_mode
secure_kernel -->|"利用する"| virtual_trust_level
isolated_user_mode -->|"利用する"| secure_kernel
lsaiso -->|"利用する"| isolated_user_mode
trustlet -->|"利用する"| nt_kernel
tgt -.->|"に保存される"| lsaiso
nt_hash -.->|"に保存される"| lsaiso
vbs -->|"で確認できる"| msinfo32
windows_hypervisor -->|"実装を担う"| virtual_secure_mode
hvci_compatible_driver -->|"推奨される対応"| hvci_driver_block
pass_the_hash -->|"原因になり得る"| lateral_movement
概念間の関係(全22件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- 仮想化ベースのセキュリティはWindowsハイパーバイザーを利用します。
- 仮想セキュアモードは仮想信頼レベルを利用します。
- 仮想信頼レベルはSLATを利用します。
- メモリ整合性は仮想化ベースのセキュリティを利用します。
- メモリ整合性はカーネルへのコード注入を防ぎます。
- メモリ整合性はHVCIによるドライバー読み込みブロックの原因になることがあります。
- HVCIによるドライバー読み込みブロックはCodeIntegrity - Operationalログで確認できます。
- Credential Guardは仮想化ベースのセキュリティを利用します。
- Credential Guardは分離LSAプロセスを利用します。
- Credential GuardはPass-the-Hashを防ぎます。
- 仮想化ベースのセキュリティはWin32_DeviceGuardクラスで確認できます。
- 仮想化ベースのセキュリティは仮想セキュアモードを利用します。
- セキュアカーネルは仮想信頼レベルを利用します。
- 分離ユーザーモードはセキュアカーネルを利用します。
- 分離LSAプロセスは分離ユーザーモードを利用します。
- トラストレットはNTカーネルを利用します。
- TGT(チケット許可チケット)は分離LSAプロセスに保存されます。
- NTハッシュは分離LSAプロセスに保存されます。
- 仮想化ベースのセキュリティはmsinfo32(システム情報)で確認できます。
- Windowsハイパーバイザーは仮想セキュアモードの実装を担います。
- HVCI対応ドライバーはHVCIによるドライバー読み込みブロックに対する本記事の推奨です。
- Pass-the-Hashは横展開(ラテラルムーブメント)の原因になることがあります。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。