文章

Microsoft 将撤销对交叉签名内核驱动程序的信任:验证方法

本文介绍预计于 2026 年 4 月实施的内核驱动信任变更,并说明如何盘点和验证 WHCP 签名。

Windows | 新闻
内核驱动程序 | WHCP

Microsoft 将撤销对交叉签名内核驱动程序的信任

Microsoft 正在修补 Windows 长期存在的一项安全缺口。原文称,从 2026 年 4 月的 Windows 更新开始,Windows 将不再信任通过旧版 Cross-Signed Driver Program 签名的内核驱动程序。多年来,攻击者利用此类驱动程序将恶意或存在漏洞的组件直接加载到内核中。

文章指出,该变更影响 Windows 11、Windows Server 2025 和所有后续版本。此时间安排来自原始文章,并非对当前部署状态的独立核实。

Microsoft 为何进行此项变更

交叉签名最初是为不希望通过 WHCP (Windows Hardware Compatibility Program) 的供应商提供的便利方式。随着时间推移,它成了重要攻击面,被用于:

  • 权限提升。
  • 绕过 EDR。
  • 在内核级别建立持久化。
  • 勒索软件攻击期间禁用安全工具。

尽管该计划的证书多年前已经过期,Windows 仍继续信任这些驱动程序。文章介绍了撤销这种信任的变更。

社区评论中的关键观点

TechCommunity 讨论指出了几个重要问题:

  • 许多组织仍依赖较旧的工业、医疗和嵌入式设备,而这些设备只有交叉签名驱动程序。
  • 部分供应商从未迁移到 WHCP,尤其是小众或低产量制造商。
  • 评估模式日志很重要,因为强制执行策略时可能导致驱动程序在没有明显提示的情况下停止工作。
  • 虚拟化工具、USB 重定向和旧业务应用可能隐藏团队容易忽略的交叉签名驱动程序。

这反映了企业环境中的技术债务问题:它可能直到策略强制实施时才显现。

如何验证环境是否受到影响

以下是五种实用验证方法。

1. 使用 PowerShell 检查驱动程序签名

列出所有内核模式驱动程序:

Get-WindowsDriver -Online | Select-Object Driver, ClassName, ProviderName, Date, Version

检查签名详情:

Get-AuthenticodeSignature "C:\Windows\System32\drivers\*.sys"

标记以下情况:

  • 证书并非 WHCP 签发。
  • 状态为 `NotSigned` 或 `UnknownError`。
  • 签发者使用的是旧式交叉签名证书。

2. 使用 Sysinternals SigCheck

扫描驱动程序:

sigcheck -q -m -i c:\windows\system32\drivers

查找“Cross-signed”、“Unsigned”或“No WHQL”等结果。

3. 在事件日志中检查评估模式警告

原文指出,安装 2026 年 4 月更新后,Windows 会在强制执行前记录警告。

导航至:Event Viewer → Applications and Services Logs → Microsoft → Windows → CodeIntegrity → Operational。

查找:

  • Event ID 3089:驱动程序当前允许加载,但未来将被阻止。
  • Event ID 3091:驱动程序为交叉签名。

根据文章,这些日志可作为早期预警信息。

4. 在 Device Manager 中检查驱动程序签名

对每个设备执行以下操作:

  1. 打开 Device Manager。
  2. 右键单击设备并选择 Properties。
  3. 打开 Driver 选项卡。
  4. 选择 Driver Details。
  5. 检查 Digital Signer 字段。

如果显示的不是 Microsoft Windows Hardware Compatibility Publisher,则该驱动程序没有 WHCP 签名。

5. 使用 Intune 或 SCCM 盘点整个设备群的驱动程序

企业规模的验证方式:

  • Intune:Device Diagnostics 和自定义脚本。
  • SCCM:查询 `Win32_SystemDriver`。
  • Defender for Endpoint:使用 Advanced Hunting。

MDE 查询示例:

DeviceFileEvents | where FolderPath endswith "drivers" | where FileName endswith ".sys"

发现交叉签名驱动程序后的处理方法

  • 联系供应商并请求提供 WHCP 签名的替代驱动程序。
  • 如果供应商已停止运营,规划硬件更新。
  • 如果无法替换,则隔离旧系统。
  • 在策略开始强制实施之前,每周监控 Code Integrity 日志。