Windows 10加入防止核心资料毁损的工具

微软昨(9)日宣布为Windows 10添加安全工具Kernel Data Protection(KDP),防止恶意程序毁损Windows核心资料。

随着操作系统加入程序代码完整性(Code Integrity,CI)、控制流程防护(Control Process Guard,CPG)来防止内存毁损,让攻击者开始将目标转向攻击核心资料。越来越多恶意程序作者使用资料毁损手法来破坏系统安全策略、权限升级、篡改安全凭证,或修改“一次初始化”的数据结构。

为此微软发布了核心资料防护(Kernel Data Protection,KDP),旨在通过虚拟化安全来保护部分Windows核心和驱动程序。KDP是一组API,可将部分核心内存标示为只读以防止恶意程序修改。例如攻击者利用签章过但有漏洞的驱动程序来攻击政策数据结构,借此安装未签章的恶意驱动程序,KDP即可防止数据结构被修改。

将Windows核心内存标示为只读,可以衍生出许多实例,像是电玩的反作弊方案,或数字版权管理(DRM)。除了安全性之外,还有其他好处。首先它可以减轻验证组件的作业负担,不需再定期验证资料变量,因而可提升性能。KDP还利于诊断内存毁损的bug,提升系统稳定性。最后,它还能提升驱动程序的兼容性。

不过不是所有Windows 10用户现在都能享有KDP,因为它使用了Secured-core PC内置的隔离和基本信任技术。在Windows 10上KDP又可实例成静态和动态。静态KDP可形成以核心模型执行的软件,保护它的镜像文件不被篡改,动态KDP则协助核心模式的软件从“安全内存池”中分配并发布只读内存。这两种KDP实例都依赖Windows 10 hypervisor的第二层地址转译(Second Level Address Translation,SLAT)功能,两种KDP实例已经加入到最新的Windows 10 Insider Build中,可用来保护executable pages以外的内存。

微软也提供KDP实例到CI、程序代码完整性引擎,以及Defender System Guard runtime验证引擎的范例,也鼓励驱动程序开发商加入KDP实例。

这是微软为Windows 10加入的最新安全技术。今年5月微软为Windows 10 May 2020 Update加入侦测及防堵垃圾程序的新功能。去年秋天该公司则推出Tamper Protection,可防止恶意程序关闭杀毒软件Windows Defender Antivirus。