Windows 安全中心里的“内存完整性”是个很容易让人误处理的开关:一开就蓝屏,于是直接关掉;或者完全不碰,以为开了就万无一失。它的逻辑其实很简单:强制所有驱动满足内存保护要求,不合规的直接不让加载。代价就体现在这里。
它拦什么、不拦什么
| 它拦什么 | 它不拦什么 |
|---|---|
| 驱动在内核里利用内存错误执行代码 | 用户态的普通木马,那是杀毒软件的事 |
| 不符合内存保护要求的老驱动加载 | 性能问题,它的开销只有几个百分点 |
| 已知漏洞利用链里“从驱动往上爬”那一步 | 你主动给程序管理员权限这件事 |
一句话:它防的是内核层面的利用,不是防你点错东西。所以它开了不等于可以放松别的习惯。
为什么一开就出问题
| 打开后的表现 | 常见元凶 | 怎么定位 |
|---|---|---|
| 一开就蓝屏重启 | 显卡、声卡、旧外设与虚拟化相关驱动 | 蓝屏终止代码里的文件名,或安全中心列出的驱动 |
| 开了之后某个设备不能用 | 银行安盾控件、老打印机扫描驱动、某些采集卡 | 看它列出的不受支持驱动名 |
| 什么都没发生 | 驱动都兼容 | 保持打开就行 |
正确的处理顺序:先查驱动,后谈开关
# 当前是否开启:1 为开,0 或找不到项为关
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity' -Name Enabled
# 列出机器上所有第三方驱动包,拿安全中心给的文件名到里面对
pnputil /enum-drivers | Select-String 'Published Name', 'Provider Name', 'Driver Version'
拿到驱动名后分三种处理。一是能找到新版:装厂商提供的最新驱动,重新打开开关。二是设备已经停产、没有新驱动:先把这个设备的驱动卸掉再试,能确认就是它。三是公司或业务必须用:把它归到一台单独的不敏感机器上用,不要为了它把主力机的那层关掉。
中间插一句安全提醒:不要为了让某个旧软件跑起来而直接关掉内核隔离后就不管了。它是驱动漏洞利用的最后一道屏障,而旧驱动带已知漏洞这件事本身不会因为你好用就消失。
真的必须关:把补偿做上
关掉后至少补三件事:系统和所有软件保持更新,因为旧驱动带漏洞时,上层补不上只能靠时间;浏览器和常用软件不用管理员身份跑,降低从用户态进内核的机会;驱动只从厂商官网或 Windows 更新安装,不再用“驱动精灵”类一键包,它们恰恰是不兼容驱动的常见来源。
顺手区分两项容易误动的设置
| 容易误动的两项 | 在哪里 | 建议 |
|---|---|---|
| 已知高危驱动阻止列表 | 不需要你设,随系统更新生效 | 保持更新就行,它和内存完整性是两套机制 |
| 临时禁用驱动程序强制签名 | 高级启动选项里 | 只在装老驱动那一次用,重启自动恢复;不要当成永久方案 |
第二项很多教程会教你“进高级启动禁用签名强制”来装老驱动。它能装上是因为你绕过了校验,不是因为这个驱动变得安全了。装完发现内核隔离仍然报错,就说明这条路走不通。
该不该关:分四种人
| 你的情况 | 建议 | 原因 |
|---|---|---|
| 近三年的新机器,没有老外设 | 保持打开 | 兼容驱动都在,没有理由关 |
| 必须用十年前的打印机或安盾 | 先更新驱动与控件;确实不行再关 | 一个驱动就能把防护拉回十年前的水平 |
| 打游戏,反作弊报错 | 按它的提示更新显卡驱动,不要先关 | 多数反作弊与现代内核隔离兼容 |
| 不记得自己开没开 | 查一下,开着就别动 | 关掉不会让你变快,只会少一层 |
最后一句
遇到蓝屏就关,是最便宜但不对的做法。先看安全中心报的是哪个驱动,能换就换、能删就删;实在要保留旧设备,再考虑关,并且把补偿措施补上。顺序反过来的代价,通常要等到下次驱动漏洞爆发才看得见。