易受攻击驱动黑名单机制与关闭代价¶
定位:安全机制说明。本文只解释机制与代价,不提供关闭操作指引。
适用场景:遇到"某驱动/工具被 Windows 阻止加载"时,判断是否为该机制所致,以及评估关闭它的后果。
一、它防的是什么¶
Windows 内核不允许未签名或来源不明的代码进入 Ring 0。攻击者于是转向已经合法签名、但自身存在提权漏洞的第三方内核驱动——把这类老驱动加载进内核,再借漏洞取得内核权限。这条攻击路径在业界称为 BYOVD(Bring Your Own Vulnerable Driver)。
微软的对策是维护一份易受攻击驱动黑名单(Microsoft vulnerable driver blocklist):名单内的驱动在加载阶段即被拒绝,即使它签名合法。名单由微软安全响应中心维护,每季度更新,并通过每月 Windows 更新随系统下发。
二、生效条件¶
| 系统版本 | 默认状态 |
|---|---|
| Windows 10 1809 引入 | 可选功能,默认关闭 |
| Windows 11 22H2 起 | 默认对所有设备启用,可在「Windows 安全中心 → 设备安全性 → 内核隔离」中开关 |
| HVCI(内存完整性)、Smart App Control 或 S 模式处于活动状态时 | 强制生效,不受单独开关影响(Windows Server 2016 除外) |
即:只要开启了内存完整性(HVCI),黑名单就是强制执行的;想在 HVCI 开启时绕过它,只能先关掉 HVCI。
三、关闭它的实际做法与代价¶
社区教程(多为让 RW-Everything 一类直读硬件的工具能运行)通常只给一条命令:
路径:HKLM\SYSTEM\CurrentControlSet\Control\CI\Config
值: VulnerableDriverBlocklistEnable (REG_DWORD)
1 = 启用(默认)
0 = 关闭
同一位置还有 RevocationListLcuKirValue 等与吊销列表相关的值。
关闭的代价是明确且不对等的:
- 你用"能运行某个直读内核/硬件寄存器的工具"换来了"整个系统放弃内核级已知漏洞驱动的拦截";
- 攻击者或恶意软件只要携带一个名单内的老驱动,即可直接进入内核态,普通杀软与 EDR 在这一层基本无效;
- 该机制与 HVCI 联动,关闭它通常意味着也在弱化 HVCI 体系;
- 微软官方立场是推荐使用显式白名单(App Control for Business)而非关闭黑名单;若确实需要放行特定驱动,正确做法是把该驱动加入白名单策略,而不是关掉整份黑名单。
📌 判断当前状态(只读,安全):
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CI\Config' | Select-Object VulnerableDriverBlocklistEnable也可在事件查看器
应用程序和服务日志 → Microsoft → Windows → CodeIntegrity → Operational中筛选 事件 ID 3099,确认策略已被刷新并激活。
四、与其他绕过手段的对比¶
| 目的 | 关闭黑名单 | 更合适的替代 |
|---|---|---|
| 运行需要直读 MSR / 物理内存的工具 | 放弃整机内核防护 | 在虚拟机中运行;或仅在明确知道后果时短期开启并立即恢复 |
| 让某个被拦的旧驱动加载 | 同上,且波及所有名单内驱动 | 使用 App Control for Business 显式白名单放行该驱动;或更新到已修复版本的驱动 |
| 缓解"驱动被拦导致外设异常" | 不对症 | 更新厂商驱动;查 CodeIntegrity 日志确认拦截事件后再定向处理 |
五、与安全中心的对应关系¶
同一件事在不同入口有不同名字:
- 设置 → 隐私和安全性 → Windows 安全中心 → 设备安全性 → 内核隔离 → Microsoft 易受攻击的驱动程序阻止列表;
- 与之并列的 内存完整性(HVCI) 开启时,会强制启用该黑名单。
两者的关系与 HVCI 本身的开关方法见 VBS 与系统安全缓解。
事实核查记录¶
| 声明 | 核查结果 |
|---|---|
| 黑名单用于拦截存在提权漏洞的已签名第三方内核驱动(BYOVD 防护) | ✅ 属实:微软官方文档《Microsoft recommended driver block rules》明确列出三类拦截对象(存在已知提权漏洞、恶意行为、绕过 Windows 安全模型的行为) |
| Windows 10 1809 引入为可选;Windows 11 22H2 起默认对所有设备启用,可在 Windows 安全中心开关 | ✅ 属实:微软支持文档 KB5020779 与《Microsoft recommended driver block rules》两处一致 |
| HVCI、Smart App Control 或 S 模式活动时黑名单强制生效(Windows Server 2016 除外) | ✅ 属实:微软官方文档原文 "Except on Windows Server 2016, the vulnerable driver blocklist is also enforced when either memory integrity (HVCI), Smart App Control, or S mode is active" |
| 每季度更新,随每月 Windows 更新下发 | ✅ 属实:微软官方文档 "The blocklist is updated quarterly. In addition, blocklist updates are delivered through the monthly Windows updates." |
注册表位置为 HKLM\SYSTEM\CurrentControlSet\Control\CI\Config 下的 VulnerableDriverBlocklistEnable,1=启用、0=关闭 |
✅ 属实:微软 Q&A 与 KB5020779 中的排查流程均以该值判断状态;本机实测该键存在且含 VulnerableDriverBlocklistEnable 与 RevocationListLcuKirValue 两个值 |
| 微软推荐用 App Control for Business 白名单替代关闭黑名单 | ✅ 属实:官方文档建议启用 HVCI 或 S 模式,"If this setting isn't possible, Microsoft recommends blocking this list of drivers within your existing App Control for Business policy" |
| 关闭后内核级防护缺失、常规杀软难以覆盖该层 | ✅ 属实:官方文档说明黑名单可阻止已存在于系统中的驱动加载,而 ASR 规则仅阻止写入磁盘、不阻止已存在驱动加载 |
| 事件 ID 3099 可用于确认策略激活 | ✅ 属实:官方文档给出的验证步骤为在 CodeIntegrity/Operational 日志中筛选 3099 并比对 PolicyNameBuffer / PolicyIdBuffer |
参考链接: