1. AppLocker 概述
AppLocker 是 Windows 的应用程序白名单控制工具,通过规则限制哪些程序可以运行。
| 规则类型 | 控制的文件 | 条件类型 |
|---|---|---|
| 可执行规则 | .exe .com .bat .cmd .ps1 .vbs .js | 发布者/路径/文件哈希 |
| Windows 安装程序规则 | .msi .msp .mst | 发布者/路径/文件哈希 |
| 脚本规则 | .ps1 .vbs .js .bat .cmd | 发布者/路径/文件哈希 |
| 打包应用规则 | .appx(UWP 应用) | 发布者/包名 |
2. 启用 Application Identity 服务
AppLocker 依赖 Application Identity 服务,必须设为自动启动。
PowerShell - 启用 Application Identity 服务
# 通过 GPO 首选项设置服务自动启动
# 或在本地先验证
Set-Service -Name AppIDSvc -StartupType Automatic
Start-Service AppIDSvc
Get-Service AppIDSvc
3. 创建默认规则
路径:计算机配置 → 策略 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker
1
GPO 编辑器 → AppLocker → 可执行规则 → 右键 → 创建默认规则
2
系统自动创建 3 条默认规则:
| 默认规则 | 说明 |
|---|---|
| 允许 Administrators 组运行所有应用程序 | 管理员不受限制 |
| 允许 Everyone 组运行 Windows 文件夹中的程序 | C:\Windows\* |
| 允许 Everyone 组运行 Program Files 中的程序 | C:\Program Files\* |
⚠️ 必须保留默认规则
默认规则确保系统正常运行。如果删除所有规则且强制模式开启,系统将无法启动任何程序(包括登录界面)。
3
对 Windows 安装程序规则 和 脚本规则 重复创建默认规则
4. 自定义规则(EXE/MSI/脚本)
4.1 基于发布者的规则(推荐)
根据数字签名信息匹配,版本灵活且安全。
1
右键 可执行规则 → 创建新规则
2
权限:允许 | 用户/组:Everyone
3
条件:发布者 → 浏览选择已签名的 exe 文件 → 拖动滑块到 "文件名" 级别
4.2 基于路径的规则
根据文件路径匹配,支持通配符。
示例路径规则
# 允许特定目录下的程序
%PROGRAMFILES%\CompanyApp\*
# 允许特定用户的程序
%USERPROFILE%\AppData\Local\MyApp\*
# 拒绝特定目录
%HOMEDRIVE%\Temp\*
4.3 基于哈希的规则
根据文件哈希值匹配,最安全但维护成本高(文件更新需重新生成规则)。
PowerShell - 获取文件哈希
# 获取文件的 AppLocker 哈希
Get-AppLockerFileInformation -Path "C:\Tools\admin.exe" |
Select-Object Path, @{N='Hash';E={$_.Hash}}
5. 规则异常与条件
规则可添加 异常,排除特定条件。
| 场景 | 规则 | 异常 |
|---|---|---|
| 允许所有 Office 程序,但拒绝 Access | 发布者:Microsoft Office | 文件名:MSACCESS.EXE |
| 允许 Program Files,拒绝某子目录 | 路径:%PROGRAMFILES%\* | 路径:%PROGRAMFILES%\HackTool\* |
6. 审核模式与强制模式
PowerShell - 切换 AppLocker 强制模式
# 查看当前强制模式
Get-AppLockerPolicy -Effective | Select-Object -ExpandProperty RuleCollectionTypes
# 设置为审核模式(仅记录,不阻止)
Set-AppLockerPolicy -XMLPolicy "C:\Temp\AppLocker-Audit.xml" -LdapPath "LDAP://DC=iehang,DC=cn"
# 查看 AppLocker 审核事件
Get-WinEvent -LogName "Microsoft-Windows-AppLocker/EXE and DLL" -MaxEvents 50
💡 最佳实践
- 先审核,后强制 — 先在审核模式下运行 1-2 周,收集被阻止的程序
- 根据审核日志补充规则 — 确保无误拦
- 切换为强制模式 — 确认规则完善后再开启
7. 常见问题
Q1:AppLocker 和 SRP(软件限制策略)有什么区别
AppLocker 是 SRP 的升级版:① AppLocker 支持基于发布者的规则(SRP 不支持)② AppLocker 支持基于用户/组的规则 ③ AppLocker 有审核模式 ④ AppLocker 仅支持 Win7+/Server2008R2+。新环境 优先使用 AppLocker。
Q2:开启 AppLocker 后系统无法登录
安全模式登录 → 检查默认规则是否完整 → 确认 Windows 目录和 Program Files 目录的允许规则存在。如果 GPO 导致无法登录,可从另一台 DC 上删除/禁用该 GPO 链接。