LSASS 为什么要保护
RunAsPPL 让 LSASS(本地安全机构子系统进程)以受保护进程的方式运行,阻断 mimikatz 这类工具读取其内存的常规路径。它和 Credential Guard 互补:前者限制对 LSASS 进程的访问,后者把凭据隔离到虚拟化环境。凭据往往是横向移动的关键,因此这一项在 Windows 加固基线里优先级很高。
基本信息
| 注册表项 | HKLM\SYSTEM\CurrentControlSet\Control\Lsa 下的 RunAsPPL |
|---|---|
| 取值含义 | 1 表示启用;较新版本另有不带 UEFI 锁定的取值,具体以对应版本文档为准 |
| 适用平台 | Windows 8.1 与 Server 2012 R2 及以上 |
| 风险等级 | 高 |
| 生效条件 | 需要重启系统后生效 |
典型使用场景
- 凭据面加固,防止 LSASS 内存被读取导出凭据
- 应急排查:确认主机是否已开启这项保护
- 域内横向移动防护,削弱 Pass-the-Hash 的前提条件
- 与 Credential Guard 组合搭建凭据保护方案
- 核对老杀软或驱动兼容性后再推广
核查与启用
核查与启用
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name RunAsPPL -ErrorAction SilentlyContinue # 查看当前取值
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPL /t REG_DWORD /d 1 /f # 启用保护
Get-CimInstance Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object SecurityServicesRunning # 查相关安全服务运行状态
shutdown /r /t 0 # 需要重启才生效复核必查项
| 检查项 | 含义 | 注意点 |
|---|---|---|
| RunAsPPL | LSASS 是否以受保护进程运行 | 未设置即视为未启用 |
| 生效条件 | 需要重启系统 | 重启前安排好变更窗口 |
| 合法工具影响 | 依赖读取 LSASS 的测试工具会失效 | 属预期行为,需提前告知使用者 |
| 兼容性 | 部分老杀软与驱动和 PPL 冲突 | 先在测试机验证 |
| 与 Credential Guard 关系 | 两者互补,建议同时启用 | 分别核查各自状态 |
配置错误可能导致系统启动异常:先在测试机做完整重启验证,确认无误后再推生产,不要直接对全网批量下发。
PPL 不是万能的:具备管理员级权限的攻击者仍有其他凭据提取路径,必须叠加最小权限管理与 Credential Guard 才真正有意义。