一种名为“EDR-Freeze”的新型攻击规避技术已悄然兴起,它从根本上改变了攻击者绕过端点安全防护的策略。与传统的、试图使安全软件崩溃或终止(此举极易触发告警)的方法不同,EDR-Freeze 会将安全进程完全暂停,使其进入一种看似运行实则“休眠”的僵死状态。更为危险的是,这种攻击完全在用户模式下执行,攻击者无需携带易受攻击的驱动程序(BYOVD)或利用内核级漏洞。它通过滥用合法的 Windows 错误报告工具来冻结端点检测与响应 (EDR) 或杀毒软件 (AV) 代理,从而在系统中制造一个安全的“盲区”,使得后续的恶意活动能够肆意进行而不被察觉。
EDR-Freeze攻击的内部工作原理
EDR-Freeze 攻击的精妙之处在于,它巧妙地操控了三个核心的 Windows 系统组件,使其相互掣肘,形成死锁。攻击者将这些组件串联起来,让保护系统的工具反过来成为系统安全的枷锁。
核心组件
-
MiniDumpWriteDump 函数
这是 Windows DbgHelp.dll 库中一个用于调试的合法函数,其主要功能是创建进程内存快照(即“小型转储”)。为了确保快照的准确性和一致性,该函数在操作前会首先暂停目标进程中的所有线程。攻击者正是精准地利用了这种内置的“暂停”机制。
-
受保护进程(Protected Process Light, PPL)
这是攻击者需要跨越的主要障碍。现代的 EDR 和 AV 解决方案通常以 PPL 进程的身份运行。这项安全特性旨在防止其他未受保护的进程(即使是拥有管理员权限的进程)对它们进行代码注入、内存篡改等操作。
-
WerFaultSecure.exe 工具
这是整个攻击链条中的关键“扳机”。WerFaultSecure.exe 是 Windows 错误报告服务的一个高权限系统组件。其关键之处在于,它以 WinTCB 保护级别运行,这是一个高级别的 PPL,使其获得了与其他 PPL 进程(如 EDR)进行交互的权限,以便在这些受保护进程崩溃时收集诊断数据。
攻击链:一场精心策划的竞态条件死锁
EDR-Freeze 攻击并非一条简单的命令,而是一场需要管理员权限、精确计算时机的竞态条件攻击。其核心目标是诱使高权限的 WerFaultSecure.exe 启动对 EDR 进程的转储操作,然后在转储完成之前,“冻结”这个转储程序本身。
由概念验证工具自动化的该过程主要包含以下四个步骤:
- 发起攻击:已获得管理员权限的攻击者启动
WerFaultSecure.exe,并通过命令行参数 (-p <PID>) 指定目标 EDR/AV 进程的 PID,指令其生成该进程的转储文件。
- 冻结过程:凭借其高权限的 PPL 状态,
WerFaultSecure.exe 成功获取了受保护的 EDR 进程句柄,并调用 MiniDumpWriteDump 函数。根据设计,该函数立即挂起了 EDR 进程内的所有线程,使其执行完全停止。
- 争分夺秒:攻击者的工具持续高速轮询监控目标 EDR 进程的线程状态。一旦检测到所有线程进入挂起状态,便意味着关键的竞赛窗口已经打开。
- 制造死锁:在确认 EDR 已被暂停的瞬间,攻击工具立即使用
NtSuspendProcess 系统调用暂停 WerFaultSecure.exe 进程本身。
至此,一个完美的死锁形成:EDR 进程被冻结,其恢复的前提是 WerFaultSecure.exe 完成 MiniDumpWriteDump 操作;然而,WerFaultSecure.exe 自身也已被冻结,永远无法完成它的任务。
结果是,EDR 进程将无限期地处于暂停的“休眠”状态。其用户界面可能依然可见,但所有检测与响应功能均已完全失效。攻击者随即可以在这个安全盲区内自由行动,执行诸如运行凭证窃取工具、部署勒索软件或窃取敏感数据等一系列恶意操作,而不会被瘫痪的端点安全产品所察觉。要有效防范此类渗透测试中可能出现的复杂攻击向量,安全团队需要深入理解底层系统机制。
安全防御与缓解建议
面对这种滥用系统合法机制的底层攻击,传统的安全策略可能效果有限。防御需要从架构和监控层面进行加固:
- 强化进程自我保护:安全产品应寻求超越 PPL 的更强进程保护机制,或采用多进程相互监护的架构,避免单点被冻结导致全线失效。
- 加强异常行为监控:在主机和网络层部署能够检测异常模式的行为分析系统。例如,监控
WerFaultSecure.exe 被非系统进程频繁调用、或安全进程线程长时间挂起等异常行为。
- 最小权限原则:严格遵循最小权限原则,减少拥有管理员权限的账户数量,增加攻击者获取必要权限的难度。
- 深度防御策略:不要仅仅依赖端点安全产品。构建包含网络流量分析、欺骗技术、终端行为监控在内的端点安全防护体系,确保在一层防御失效时,其他层面仍能提供检测能力。

上图展示了EDR-Freeze攻击中各个组件交互并最终形成死锁的完整链条。
|