提前启动反恶意软件
平台
客户端 - Windows 8
服务器 - Windows Server 2012
说明
随着反恶意软件 (AM) 软件在检测运行时恶意软件方面的表现越来越好,攻击者在创建可隐藏检测的 rootkit 时也变得越来越好。 检测启动周期早期开始的恶意软件是大多数 AM 供应商努力解决的挑战。 通常,它们会创建主机操作系统不支持的系统黑客攻击,实际上可能导致计算机处于不稳定状态。 至此,Windows 尚未为 AM 提供检测和解决这些早期启动威胁的好方法。
Windows 8引入了名为“安全启动”的新功能,该功能可保护 Windows 启动配置和组件,并加载提前启动反恶意软件 (ELAM) 驱动程序。 此驱动程序在其他启动驱动程序之前启动,并启用这些驱动程序的评估,并帮助 Windows 内核决定是否应初始化它们。
表现
通过内核首先启动 ELAM,可确保在任何第三方软件之前启动 ELAM,因此能够在启动过程中检测恶意软件并阻止其初始化。
缓解措施
启动驱动程序基于根据初始化策略从 ELAM 驱动程序返回的分类进行初始化。 默认情况下,该策略初始化已知的良好驱动程序和未知驱动程序,但不会初始化已知错误的驱动程序。 系统管理员可以通过组策略来指定自定义策略,该策略可以阻止未知驱动程序初始化,或者可以启用对启动过程至关重要但已被篡改的驱动程序来初始化启动。
解决方案
ELAM 驱动程序必须注册内核回调,才能在初始化每个启动驱动程序时获取有关它的信息。 然后,ELAM 驱动程序可以为每个驱动程序返回分类。 这些函数是必需的:
ELAM 驱动程序还可以注册注册表回调。 这样做可使 ELAM 驱动程序检查每个启动驱动程序使用的配置数据。 然后,ELAM 驱动程序可以在启动驱动程序使用数据之前阻止或修改数据(如有必要)。 这些函数是必需的:
有关 ELAM 驱动程序要求和 API 使用情况的详细信息,请参阅 提前启动反恶意软件。
测试
ELAM 驱动程序必须由 Microsoft 专门签名,以确保它们在启动过程的早期由 Windows 内核启动。 若要获取签名,ELAM 驱动程序必须通过一组认证测试来验证性能和其他行为。 这些测试包含在 Windows 硬件认证工具包中。
资源
- 提前启动反恶意软件
- CmRegisterCallbackEx
- CmUnRegisterCallback
- IoRegisterBootDriverCallback
- IoUnRegisterBootDriverCallback
- 使用 Windows 硬件认证工具包生成会议演示认证硬件
- 下载工具包和工具