PPL滥用
摘要 Windows 受保护进程轻量级是微软自 Windows 8.1 以来构建的核心安全边界,通过基于数字签名的层级信任模型阻止恶意代码篡改反恶意软件和端点安全产品。本文从 PPL 信任层级架构出发,逐层拆解 ClipUp 提权与 EDR-Freeze 竞态条件的技术原理,将 BYOVD 与 PPL 滥用合二为一的融合攻击链,并讨论跨 PPL 等级的内存转储攻击面及检测盲区。 PPL信任边界 Windows Vista 首次引入了受保护进程模型:进程要么受保护,要么不受保护。该模型过于二元化,无法适应实际安全需求。从 Windows 8.1 开始,微软引入 PPL 扩展了这一概念,引入了保护级别层级,使得某些受保护进程比另一些更受保护,且定义了一个根本性原则:不受保护的进程只能使用受限的访问标志集(如 PROCESS_QUERY_LIMITED_INFORMATION)打开受保护的进程,若请求更高访问权限则返回拒绝访问错误。 对于 PP/PPL 进程而言,其可请求的访问权限取决于自身的保护级别,该级别部分由文件数字证书中的特殊增强密钥使用字段决定。进程创建时,保护信息存入 EPROCESS 内核结构中的特定字段,存储着保护级别(PP 或 PPL)以及签名者类型(如反恶意软件、LSA、WinTcb 等)。 签名者类型在 PP/PPL 之间构建了严格层级: 若 PP 的签名者类型高于或等于目标 PP/PPL,则可以完整访问目标进程 若 PPL 的签名者类型高于或等于目标 PPL,则可以完整访问目标进程 PPL 无法以完整访问权限打开 PP,无论前者使用何种签名者类型 PPL 的签名者类型构成了四条明确的信任等级,每一层都有其典型代表进程和关键特权: 保护层级 签名者类型 典型进程 关键特权 可访问对象 WinTcb-Light…