应用执行控制能挡住什么
WDAC 与 AppLocker 都属于应用执行控制:只允许通过规则的代码运行,其余一律阻止。它对勒索软件、无文件攻击落地后的执行阶段有很强的抑制作用,因为绝大多数攻击最终都要运行可执行文件或脚本。代价是策略容易误伤:上线前需要在审计模式积累足够长时间,覆盖全部业务软件与运维脚本,再切换强制模式,并准备好应急放行流程。
基本信息
| 适用平台 | Windows 企业版与教育版、Server 2016 及以后(WDAC 建议 Server 2019+) |
|---|---|
| 核查命令 | Get-AppLockerPolicy -Effective、CiTool.exe -lp |
| 两种模式 | 审计模式(只记录)与强制模式(阻止运行) |
| 基线 | 高价值服务器先审计后强制,规则基于签名发布者与路径为主 |
| 风险等级 | 高 |
典型使用场景
- 高价值服务器加固:只允许获批的运维工具与业务程序运行
- 勒索防护:阻止未授权程序在终端上执行
- 合规要求:等保与内部规范对应用白名单有明确条款
- 应急收紧:事件期间临时强制模式限制新增程序
- 终端治理:配合软件资产盘点,剔除未授权软件
核查现有策略与部署顺序
核查现有策略与部署顺序
Get-AppLockerPolicy -Effective -ErrorAction SilentlyContinue | Select-Object -ExpandProperty RuleCollections | Select-Object CollectionType, EnforcementMode
CiTool.exe -lp # 列出本机 WDAC 策略
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard -ErrorAction SilentlyContinue
# 部署顺序建议:
# 1) 审计模式运行 2-4 周,收集全部被引用但未在规则中的程序
# 2) 补齐规则后切换强制模式,并预演应急放行流程模式与规则读法
| 项 | 含义 | 正常与异常 |
|---|---|---|
| EnforcementMode=AuditOnly | 只记录不阻止 | 上线准备阶段的正常状态 |
| EnforcementMode=Enforce | 阻止未授权程序 | 准备工作完成后的目标状态 |
| 规则依据 | 发布者签名、路径、文件哈希 | 应以签名发布者为主,降低维护量 |
| 默认拒绝规则 | 未匹配则阻止 | 白名单模式的核心 |
| 应急放行 | 临时允许特定程序 | 必须预演,否则上线当天无法处置 |
白名单防护力强但最容易误伤:审计模式积累 2 到 4 周、覆盖全部业务软件与运维脚本后再切换强制,并且要有经过演练的应急放行流程。
落地要点
- 补丁与更新会引入新的可执行文件:规则以签名发布者为主比逐文件哈希更可维护
- 应急放行通道必须提前预演:上线当天业务被拦死又不会放行,是典型事故场景
- 先在少量同型机器上试点,再推向全部资产
- 策略变更纳入变更管理,记录规则调整的原因与时间
- 与服务收敛、EDR 防护配合使用,形成多层防护
WDAC 比 AppLocker 更靠近内核层、控制更严格,但配置复杂度也更高:按资产重要级别选择,不必所有机器一刀切。