夜雨聆风学习资料网

ARTICLE · 1150992

Windows内核隔离与VBS-技术说明

Windows内核隔离与VBS-技术说明

Windows 内核隔离(内存完整性)与 VBS

它到底是什么 · 主要作用 · 关闭的影响 · 到底该不该关

结论先行:VBS 是「底座」,内存完整性(HVCI)是跑在底座上的「保安」。它们防的是内核级(Rootkit / 驱动级)攻击,对普通病毒、流氓软件、钓鱼基本不起作用。默认建议保留开启;只有当出现具体的、可复现的问题(老驱动或反作弊报错、安卓模拟器跑不起来、旧 CPU 上游戏掉帧明显、需要嵌套虚拟化)时才关闭。

1是什么

这两个名字经常被混着讲,其实是一套东西的两层视图:一个是底座,一个是跑在底座上的功能。

1.1VBS:一个用硬件虚拟化撑起来的信任根

VBS = Virtualization-Based Security,基于虚拟化的安全性。它借用 CPU 的硬件虚拟化能力(Intel VT-x / AMD-V)和 Windows 自带的 Hypervisor,把系统切成两个互相隔离的「世界」(架构上称为 VTL0 / VTL1)。

普通世界(VTL0)

安全世界(VTL1)

内容

你的 Windows、全部驱动、全部程序

一小块受保护的环境

权限

包括内核在内,全部「可被攻破」

普通世界无法读写它的内存

典型住户

桌面、游戏、办公软件

凭证、代码校验逻辑、密钥

关键在于它的设计假设:VBS 假定 VTL0 里的内核最终会被攻破。所以它不试图让内核「更坚固」,而是把最值钱的判断逻辑搬到攻破了内核也够不着的地方。

1.2内存完整性:内核代码的「验明正身」

内存完整性(Memory Integrity),又称 HVCI(Hypervisor-protected Code Integrity,虚拟机监控程序保护的代码完整性),是 VBS 上一项具体的安全功能。它最初随 Device Guard 发布,现在 Device Guard 这个名字除了在组策略和注册表里定位设置以外已经不再使用了。

1.3一个常见误解

VBS 不是「Hyper-V 虚拟机」。它用的是同一套 Hypervisor 技术,但即使你没安装 Hyper-V 角色、没开「虚拟机平台」,VBS 自己也会拉起一个轻量 Hypervisor。在「系统信息」里看到「检测到虚拟机监控程序」就是这个原因。

2主要作用

2.1VBS 底座上能跑哪些功能

·内存完整性 / HVCI:内核代码完整性校验(也就是内存完整性 / HVCI),本文重点。

·Credential Guard:把 NTLM 哈希、Kerberos 票据等凭证锁进隔离区,抵御 Mimikatz 这类抓密码工具。

·System Guard Secure Launch:防止固件与引导链被篡改。

·HVPT(强制分页转换):保护页表不被恶意改写。

·内核模式硬件强制堆栈保护:防止内核栈溢出被利用。

2.2内存完整性具体做了什么

它的动作非常明确,可以概括为四条:

#

机制

拦住了什么

1

内核代码必须「验明正身」才能执行:只有通过数字签名与代码完整性校验的驱动代码,才允许被映射成可执行内存页。

未签名 / 被篡改的驱动无法加载执行

2

可执行页永远不会变成可写页(W^X 原则)。

掐死绝大多数内核漏洞利用手法——恶意代码没法先写入内存再改成可执行

3

限制危险的内核内存分配,内核不能再随意申请「又可写又可执行」的内存。

老驱动「动态改写自身代码」的惯用套路失效

4

额外保护内核 Control Flow Guard 位图,并校验「谁有资格当可信内核进程」。

防止攻击者劫持内核间接调用与可信进程

直观理解:以前一个驱动漏洞就等于攻击者拿到内核权限,可以关掉杀软、植入 Rootkit、长期潜伏。开启 HVCI 之后,攻击者即使找到了漏洞,也很难把代码真正跑起来。

3关键变量:你的 CPU 是哪一代

这是判断「该不该关」最重要的分水岭。HVCI 的性能代价几乎完全取决于 CPU 有没有对应的硬件加速支持:

CPU 代数

硬件特性

性能代价

Intel Kaby Lake(第 7 代,2017)及以上

MBEC(模式执行控制)

很小,日常几乎无感

AMD Zen 2(锐龙 3000)及以上

GMET(客户模式执行陷阱)

很小,日常几乎无感

更老的 CPU

无,只能用软件模拟(Restricted User Mode)

明显更大,老机器上体感可能很差

一句话:新机器关它基本是白白牺牲安全性,老机器关它才是真的有收益。

4关闭后会有什么影响

4.1安全层面:真实的代价,但不必夸大

·失去对内核级恶意软件和带漏洞驱动的主要防线。攻击链会短一大截:一个驱动漏洞就可能直接终结系统。

·Credential Guard 会一起失效(它依赖 VBS)。如果你处在公司域环境、或经常用这台机器登录企业账号,这是实打实的损失——抓取凭证会变得容易。

·被攻破后更难发现:Rootkit 能藏得更深,杀毒软件本身也可能被干掉。

反过来说,对日常风险的实际影响没有传说中那么恐怖。VBS 属于「纵深防御」,它挡的是高级攻击——针对性 Rootkit、勒索软件提权链、APT。如果你只是普通家用、不乱装驱动、不乱点文件,关掉它并不会让你「裸奔」。它是保险,不是门锁。

4.2兼容性层面:大多数人真正会碰到的

·驱动:老旧或冷门驱动可能加载失败甚至蓝屏。微软文档明确警告:不兼容「可能导致设备或软件故障,少数情况下会启动失败(蓝屏)」。

·反作弊系统:部分早期版本与 HVCI 冲突,现在主流反作弊基本已适配。

·安卓模拟器:MuMu、雷电、夜神等模拟器的官方帮助文档里就有专门教你关 Hyper-V / 内核隔离的页面——因为它们的加速方案和 VBS 抢同一套硬件虚拟化资源。这是关闭最常见、也最正当的理由。

·VMware / VirtualBox 嵌套虚拟化:可能有冲突或性能下降,需看具体版本。

4.3性能层面

使用场景

影响程度

说明

日常办公、浏览、看视频、写代码

噪声范围内

基本测不出差异

游戏

争议最大

老 CPU 实测掉帧可达 5%~15%,个别报告更高;支持 MBEC/GMET 的新 CPU 通常个位数甚至接近 0。网上「关了涨 10% FPS」的说法多来自老平台或未控制变量

虚拟机 / WSL2 / Docker

可能比游戏更明显

VBS 会让这些负载多一层嵌套

I/O 密集负载(数据库、编译)

几个百分点

部分场景有可测下降

4.4状态层面的坑

·Windows 11 22H2 起,关闭内存完整性会让 Windows 安全中心显示警告,任务栏也出现提示图标(可手动忽略,但重装或大版本更新后可能重现)。

·微软正在逐步对满足条件的设备自动开启该功能,并会评估设备「负担得起」才启用。也就是说,你关掉之后某次大版本更新可能又给你打开——需要用组策略或注册表「锁定关闭」,而不是只点一下开关。

·关掉 VBS 同时也会关掉 Credential Guard 等一串依赖它的功能。不是一对一的关系:你以为是关一个开关,实际是拆掉一整层。

5到底有没有必要关:按场景给建议

你的情况

建议

日常办公、上网、看片,机器是 2018 年之后的

保持开启,别折腾

玩 3A 游戏,CPU 是第 8 代酷睿 / Zen 2 及以后

保持开启,先实测帧率再决定

玩竞技游戏、CPU 较老(第 7 代及以前 / Zen 1)

可以关,但先做对比测试再定

跑安卓模拟器,官方文档要求关闭

关。这是明确的技术冲突,不是玄学

主力用途是 VMware / VirtualBox / WSL2 且性能敏感

可以关,权衡后决定

有具体驱动报错、装完开不了机、反复蓝屏

关,并优先考虑更换驱动

笔记本、常连公共 Wi-Fi、会装来源不明的软件

保持开启,收益大于损失

企业域环境 / 处理敏感数据

保持开启,Credential Guard 的价值很高

一句话判断法:如果你能说清楚「我关它是因为 X 软件明确跑不起来」,那就关;如果理由只是「听说能变快」,那就别关。

6怎么查自己现在的状态

方法 1 · Windows 安全中心(最直观)

Windows 安全中心 → 设备安全性 → 内核隔离 → 内核隔离详细信息

方法 2 · 系统信息

Win + R 输入 msinfo32,在「系统摘要」最下方查看「基于虚拟化的安全性」相关条目。

方法 3 · PowerShell(管理员)查看详细状态

Get-CimInstance -ClassName Win32_DeviceGuard `

-Namespaceroot\Microsoft\Windows\DeviceGuard |

Select-ObjectVirtualizationBasedSecurityStatus,

SecurityServicesConfigured,SecurityServicesRunning,

AvailableSecurityProperties

读法:

·VirtualizationBasedSecurityStatus:0 = 未启用,1 = 已配置但未运行,2 = 已启用并运行。

·SecurityServicesConfigured / Running 里出现 2 = 内存完整性。

·AvailableSecurityProperties 里出现 7 = 你的 CPU 支持 MBEC/GMET。有这一项就说明关它没多大性能收益。

方法 4 · 想彻底、稳定地关掉(避免更新又被打开)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" \

/vEnabled /t REG_DWORD /d 0 /f

更彻底的做法是走组策略:计算机配置 → 管理模板 → 系统 → Device Guard → 打开基于虚拟化的安全性,设为「已禁用」。

启动失败怎么办:如果开启之后开不了机或蓝屏,进入 Windows 恢复环境(WinRE)执行上面的 reg 命令,然后重启即可。若当初是用 UEFI 锁开启的,还需要先关闭安全启动(Secure Boot)。

7总结

这个选项被讨论得过于两极化了。真实情况是:

·它不是「杀毒软件」,关掉不会让你立刻中毒;

·它也不是「没用的东西」,关掉确实少一层防线,而且这层防线挡的是最难处理的那类攻击;

·收益和代价都高度依赖你的 CPU 与用途,所以「所有人都该关」和「所有人都该开」都是错的。

最终建议:新 CPU + 日常使用 → 留着,省心。老 CPU + 明确冲突 → 关掉,合理。

相关学习资料