Windows域环境应用白名单须基于AppLocker(首选)等策略实施,默认拒绝、精准放行;优先用发布者规则覆盖签名程序,无签名则用哈希;需补充脚本、服务及管理工具规则,并启用审核模式验证;上线前须备份策略、测试依赖、建立日志补漏机制。

Windows 域环境中配置应用白名单,核心是让系统“只放行已授权程序,其余一律拦截”,不能靠简单禁用几个.exe来实现。必须基于AppLocker(首选)、软件限制策略(SRP)或用户级策略组合实施,且需严格遵循“默认拒绝+精准放行”逻辑。
用 AppLocker 配置发布者优先的白名单(推荐)
AppLocker 是域环境最可靠、抗绕过能力最强的方案,支持发布者(数字签名)、路径、哈希三种规则类型,其中发布者规则能自动覆盖同一厂商所有签名更新版本,维护成本最低。
- 在组策略管理控制台(GPMC)中编辑目标OU关联的GPO,路径为:计算机配置 → 策略 → 应用程序控制策略 → AppLocker → 可执行规则
- 右键“可执行规则”→“创建默认规则”:自动生成允许 Windows、Program Files、Program Files (x86) 下已签名程序的基础规则(但默认不启用)
- 右键“可执行规则”→“新建规则”→选择“允许”→条件类型选“发布者”→浏览并选中一个已签名的合法程序(如 C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE)→向导会自动提取其证书信息生成规则
- 对无数字签名的内部工具(如自研EXE),右键新建规则→选“哈希”→浏览指定文件,生成唯一二进制指纹规则
- 务必在正式启用前开启审核模式:右键AppLocker节点→“属性”→勾选“配置规则”下的“审核模式”,观察事件查看器中 应用程序和服务日志 → Microsoft → Windows → AppLocker → EXE and DLL 的“已允许/已阻止”记录,确认关键业务程序未被误拦
补充脚本与服务类程序的白名单
AppLocker 默认不控制 PowerShell、CMD、BAT、JS、VBS 等脚本,也不限制由 Local System 账户启动的服务进程。若这些被绕过,白名单即失效。
- 在同级节点下,分别进入脚本规则和Windows 安装程序规则,按相同方式为 PowerShell.exe、wscript.exe、msiexec.exe 等创建发布者或哈希允许规则
- 对通过计划任务或服务调用的EXE(如某备份工具以SYSTEM身份运行),需额外为其添加“发布者”或“哈希”规则,并确保规则作用范围设为“应用于所有用户”
- 检查关键管理工具是否在白名单内:mmc.exe、gpedit.msc 对应的 snapinhost.exe、eventvwr.exe 等,否则IT人员将无法远程维护
用户级白名单兜底(兼容性与轻量场景)
当部分终端为 Windows 专业版以下、或需快速临时管控时,可用此策略作为补充。它仅作用于用户登录会话的 Shell 层,不拦截服务或计划任务,但部署快、生效直观。
- 路径:用户配置 → 管理模板 → 系统 → 只运行指定的Windows应用程序
- 启用后点击“显示”,每行输入一个允许运行的纯文件名(如 notepad.exe、chrome.exe、WeChat.exe),不带路径,不支持通配符
- 必须包含基础运维工具:mmc.exe、cmd.exe、powershell.exe、taskmgr.exe,否则管理员将失去干预能力
- 该策略仅对当前用户OU生效,需确认GPO链接正确、未被上级“未配置”或“已禁用”策略覆盖
上线前必做的三件事
白名单不是配置完就一劳永逸的机制,生产环境部署前必须验证闭环。
- 导出完整策略备份:右键AppLocker节点→“所有任务”→“导出策略”,保存为XML,便于故障回滚
- 测试全链路依赖:用 Process Monitor 监控目标软件启动全过程,确认其调用的所有DLL、子进程、临时EXE(如更新器updater.exe)均已被规则覆盖
- 建立动态补漏机制:定期筛选AppLocker日志中“已阻止”事件,识别新增的合法程序(如新版本浏览器、新上线业务系统),及时追加规则

















