BYOVD 与驱动阻止列表
BYOVD(Bring Your Own Vulnerable Driver)是近年很常见的手法:攻击者不去破解签名,而是加载一个签名合法但自身存在漏洞的旧驱动,借它关掉杀软或直接读写内核内存。微软维护的易受攻击驱动阻止列表针对的正是这条路径,它按驱动标识拦截已知的易受攻击驱动加载,与内存完整性配合时拦截效果更好。
基本信息
| 加固项 | 驱动加载攻击面 |
|---|---|
| 适用平台 | Windows 10 1809 及以上、Server 2019 及以上 |
| 基线取值 | CI\Config 下 VulnerableDriverBlocklistEnable = 1 |
| 协同项 | 内存完整性(HVCI) |
| 观察日志 | CodeIntegrity 运行日志 |
| 风险等级 | 中 |
典型使用场景
- 防杀软被关闭:阻断常见 BYOVD 驱动加载,降低终端防护被摘除的概率
- 高安全终端:与内存完整性、应用控制组成组合防线
- 事件研判:CodeIntegrity 日志中出现被阻止的驱动加载
- 运维排障:新部署的采集或外设驱动突然装不上,先核对是否命中列表
- 终端基线上线:把该项列入部署检查清单并定期核查
核查与启用
核查与启用
# 核查当前状态,1 为已启用
reg query "HKLM\SYSTEM\CurrentControlSet\Control\CI\Config" /v VulnerableDriverBlocklistEnable
# 启用阻止列表
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Config" /v VulnerableDriverBlocklistEnable /t REG_DWORD /d 1 /f
# 查看被阻止的驱动加载事件
Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -MaxEvents 20 | Select-Object TimeCreated, Id观察点判读
| 观察点 | 正常表现 | 异常与处理 |
|---|---|---|
| 注册表取值 | 1 | 为 0 说明未启用,需要显式开启 |
| CodeIntegrity 事件 | 以阻止类事件为主 | 出现异常驱动被放行要单独研判 |
| HVCI 状态 | 已启用 | 关闭时整体拦截能力受限 |
| 驱动安装失败 | 集中在个别非微软驱动 | 先核对是否命中列表,再联系厂商换新版 |
阻止列表覆盖的是已知的易受攻击驱动集合,属于让攻击者换招的手段,不是万能的驱动白名单。
命中列表的多是老版本外设、采集、运维驱动,正确处置是让厂商出新版,而不是关掉整张列表。
阻止事件突然激增时,既要排查攻击尝试,也要排查新批次硬件或新上线的运维工具,避免把正常变更当成入侵。