早期启动反恶意软件

平台

客户端 - Windows 8 服务器 - Windows Server 2012

说明

由于反恶意软件 (AM) 软件在检测运行时恶意软件时变得更好,攻击者在创建可隐藏检测的 rootkit 时也越来越好。 检测启动周期早期启动的恶意软件是大多数 AM 供应商勤奋解决的挑战。 通常,它们会创建主机操作系统不支持的系统黑客,实际上可能会导致计算机处于不稳定状态。 至此,Windows 没有为 AM 提供检测和解决这些早期启动威胁的好方法。

Windows 8引入了一项名为“安全启动”的新功能,该功能可保护 Windows 启动配置和组件,并加载早期启动反恶意软件 (ELAM) 驱动程序。 此驱动程序在其他启动驱动程序之前启动,并启用这些驱动程序的评估,并帮助 Windows 内核决定是否应初始化它们。

表现

首先由内核启动,可确保在任何第三方软件之前启动 ELAM,因此能够检测启动过程中的恶意软件并阻止其初始化。

缓解措施

根据初始化策略从 ELAM 驱动程序返回的分类初始化启动驱动程序。 默认情况下,策略初始化已知良好和未知驱动程序,但不会初始化已知的坏驱动程序。 系统管理员可以通过组策略来指定自定义策略,以防止未知驱动程序初始化,或者启用对启动过程至关重要但已被篡改的驱动程序来初始化启动。

解决方案

ELAM 驱动程序必须注册内核回调,以便在初始化时获取有关每个启动启动驱动程序的信息。 然后,ELAM 驱动程序可以为每个驱动程序返回分类。 这些函数是必需的:

IoRegisterBootDriverCallback () IoUnRegisterBootDriverCallback () ELAM 驱动程序还可以注册注册表回调。 这样做可使 ELAM 驱动程序检查每个启动驱动程序使用的配置数据。 然后,ELAM 驱动程序可以在启动驱动程序使用数据之前阻止或修改数据(如有必要)。 这些函数是必需的:

CmRegisterCallbackEx () CmUnRegisterCallback () ELAM 驱动程序要求和 API 用法的更详细说明记录在名为“早期启动反恶意软件”的 MSDN 白皮书中。

测试

ELAM 驱动程序必须由 Microsoft 专门签名,以确保在启动过程中早期由 Windows 内核启动。 若要获取签名,ELAM 驱动程序必须通过一组认证测试来验证性能和其他行为。 这些测试包含在 Windows 硬件认证工具包中。

资源