Windows 受保护进程轻量级是微软自 Windows 8.1 以来构建的核心安全边界,通过基于数字签名的层级信任模型阻止恶意代码篡改反恶意软件和端点安全产品。本文从 PPL 信任层级架构出发,逐层拆解 ClipUp 提权与 EDR-Freeze 竞态条件的技术原理,将 BYOVD 与 PPL 滥用合二为一的融合攻击链,并讨论跨 PPL 等级的内存转储攻击面及检测盲区。
PPL信任边界
Windows Vista 首次引入了受保护进程模型:进程要么受保护,要么不受保护。该模型过于二元化,无法适应实际安全需求。从 Windows 8.1 开始,微软引入 PPL 扩展了这一概念,引入了保护级别层级,使得某些受保护进程比另一些更受保护,且定义了一个根本性原则:不受保护的进程只能使用受限的访问标志集(如 PROCESS_QUERY_LIMITED_INFORMATION)打开受保护的进程,若请求更高访问权限则返回拒绝访问错误。
理解PP/L模型的原始设计逻辑是理解后续所有绕过技术的关键。PP/L模型的初衷是防止不受保护的进程使用 OpenProcess 等标准 API 以扩展访问权限访问受保护进程,建立了基于签名者类型的“信任等级”机制。较高信任等级的进程可以自由访问较低等级的进程,反之则不行。
设计之初,PPL被赋予了超出其实际实现能力的安全期望。签名的密码学意义在于验证文件的来源和完整性——它回答的问题是“这个二进制确实由声称的发行者发布且在签名后未被篡改”。但 Windows 内核加载机制将这一密码学保证等同于“该进程可以在受保护上下文中执行”,在信任传递过程中制造了一个巨大的语义鸿沟。当攻击者找到一个签名为 WinTcb 级别的合法二进制,并将其武器化,整个信任层级就会从内部崩塌。