使用 AppLocker 规则

本文面向 IT 专业人员介绍了 AppLocker 规则类型,以及如何将其用于应用程序控制策略。

规则集合

AppLocker 策略组织到规则集合中,包括可执行文件、脚本、Windows Installer 文件、打包的应用和打包的应用安装程序以及 DLL 文件。 这些集合提供了一种区分不同类型的应用规则的简单方法。 下表列出了每个规则集合中包含的文件格式。

规则集合 关联的文件格式
可执行文件 .exe
.com
脚本 .ps1
.bat
.cmd
.vbs
.js
Windows Installer 文件 .msi
.msp
.mst
打包的应用和打包的应用安装程序 .appx
DLL 文件 .dll
.ocx

注意

可执行文件的 AppLocker 规则实际上适用于所有可移植可执行文件 (PE) 文件,而不管攻击者可以轻松更改的文件扩展名。 上表中为可执行文件列出的文件扩展名信息只是说明性的。

默认情况下不启用 DLL 规则集合。 若要了解如何启用 DLL 规则集合,请参阅 DLL 规则集合

重要提示

如果使用 DLL 规则,则需要创建一个允许规则,该规则涵盖所有允许的应用使用的每个 DLL。

使用 DLL 规则时,AppLocker 必须检查应用程序加载的每个 DLL。 因此,如果使用 DLL 规则,用户可能会遇到性能降低的问题。 但是,除非设备已受到资源限制,否则这种性能影响通常是无法察觉的。

强制模式

AppLocker 策略为策略中包含的每个规则集合设置 强制模式 。 下表介绍了这些强制模式。

强制模式 描述
未配置 尽管名称如此,但此强制模式 并不意味着 忽略规则。 相反,如果“未配置”的规则集合中存在任何规则,除非优先级较高的策略将强制实施模式更改为“仅审核”,否则 将强制实施 规则。 由于此强制模式可能会使策略作者感到困惑,因此应避免在 AppLocker 策略中使用此值。 相反,应在其余两个选项之间显式选择。
强制实施规则 强制实施规则。 当用户运行受 AppLocker 规则影响的应用时,应用二进制文件将被阻止。 有关二进制文件的信息将添加到 AppLocker 事件日志中。
仅审核 规则是审核的,但不强制实施。 当用户运行受 AppLocker 规则影响的应用时,允许运行应用二进制文件。 但是,有关二进制文件的信息将添加到 AppLocker 事件日志中。 “仅审核”强制模式可帮助你在实施策略之前识别受策略影响的应用。

合并 AppLocker 策略时,会将所有策略中的规则添加到有效策略,并为每个规则集合选择单个强制模式。 如果通过组策略将多个 AppLocker 策略应用于设备,则会根据组策略优先级选择应用的强制模式设置。 如果使用 Set-AppLockerPolicy PowerShell cmdlet 和 -merge 选项在本地应用 AppLocker 策略,则会在现有本地策略和要合并的策略之间选择更严格的强制模式。

规则条件

规则条件是可帮助 AppLocker 识别应用规则的应用的条件。 三个主要规则条件是发布者、路径和文件哈希。

  • 发布者:根据应用的数字签名标识应用
  • 路径:按应用在计算机文件系统或网络上的位置标识应用
  • 文件哈希:表示已标识文件的系统计算的加密 Authenticode 哈希

发布者

此条件根据应用的数字签名和扩展属性(如果可用)来标识应用。 数字签名包含有关创建应用的公司的信息, (发布者) 。 可执行文件、dll、Windows 安装程序、打包的应用和打包的应用安装程序还包括从二进制资源获取的扩展属性。 这些属性通常包括产品名称、原始文件名以及发布者定义的文件的版本号。 如果有打包的应用和打包的应用安装程序,则这些扩展属性包含应用包的名称和版本。

注意

在打包的应用和打包的应用安装程序规则集合中创建的规则只能具有发布者条件,因为 Windows 不支持未签名的打包应用和打包的应用安装程序。

尽可能使用发布者规则条件,因为它们对应用更新以及文件位置的更改更具弹性。

为发布者条件选择引用文件时,向导会创建一个指定发布者、产品、文件名和版本号的规则。 可以通过向上移动滑块或使用产品、文件名或版本号字段中的通配符 (*) ,使规则更加通用。

注意

若要在“创建规则向导”中为发布者规则条件的任何字段输入自定义值,必须选中“检查使用自定义值”框。 选中此检查框后,不能使用滑块。

文件版本包版本控制用户是否可以运行应用的特定版本、早期版本或更高版本。 可以选择版本号,然后配置以下选项:

  • 完全。 该规则仅适用于此版本的应用
  • 以及更高版本。 规则适用于此版本和所有更高版本。
  • 下面。 规则适用于此版本和所有早期版本。

下表介绍了如何应用发布者条件。

选项 发布者条件允许或拒绝...
所有已签名文件 由任一发布者签名的所有文件。
仅限发布者 由指定发布者签名的所有文件。
发布者和产品名称 由命名发布者签名的指定产品的所有文件。
发布者和产品名称以及文件名 发布者签名的命名产品的命名文件或包的任何版本。
发布者、产品名称、文件名和文件版本 完全
由发布者签名的命名产品的命名文件或包的指定版本。
发布者、产品名称、文件名和文件版本 及更高版本
命名文件或包的指定版本,以及发布者签名的产品的任何新版本。
发布者、产品名称、文件名和文件版本 和以下
命名文件或包的指定版本,以及发布者签名的产品的任何早期版本。
自定义 可以编辑“发布者”、“产品名称”、“文件名”、“版本包名称”和“包版本”字段,以创建自定义规则。

路径

此规则条件按应用程序在计算机文件系统或网络上的位置来标识应用程序。

AppLocker 对已知路径(如 Program Files 和 Windows)使用自定义路径变量。

下表详细介绍了这些路径变量。

Windows 目录或磁盘 AppLocker 路径变量 Windows 环境变量
Windows %WINDIR% %SystemRoot%
System32 和 SysWOW64 %SYSTEM32% %SystemDirectory%
Windows 安装目录 %OSDRIVE% %SystemDrive%
程序文件 %PROGRAMFILES% %ProgramFiles% 和 %ProgramFiles (x86) %
可移动媒体 (例如 CD 或 DVD) %REMOVABLE%
可移动存储设备 (例如 USB 闪存驱动器) %HOT%

重要提示

由于可以将路径规则条件配置为包含大量文件夹和文件,因此应仔细规划路径条件。 例如,如果路径规则包含允许非管理员写入数据的文件夹位置,则作为标准用户) 运行 (或恶意软件可以将未经批准的文件复制到该位置并运行文件。 因此,应避免为标准用户可写位置(例如用户配置文件)创建路径条件。

文件哈希

选择文件哈希规则条件时,系统会计算标识文件的 Authenticode 加密哈希。 此规则条件的优点是,由于每个文件都有唯一的哈希,因此文件哈希规则条件仅应用于一个文件。 缺点是每次更新文件时, (例如安全更新或升级) 文件的哈希都会更改。 因此,必须手动更新文件哈希规则。

AppLocker 默认规则

使用 AppLocker 组策略编辑器创建的 AppLocker 策略可以包含默认规则。 默认规则旨在帮助确保在 AppLocker 规则集合中允许 Windows 正常运行所需的文件。 有关背景信息,请参阅 了解 AppLocker 默认规则;有关步骤,请参阅 创建 AppLocker 默认规则

可执行的默认规则类型包括:

  • 允许本地 管理员 组的成员运行所有应用。
  • 允许 “所有人 ”组的成员运行位于 Windows 文件夹中的应用。
  • 允许 Everyone 组的成员运行位于 Program Files 文件夹中的应用。

脚本默认规则类型包括:

  • 允许本地 管理员 组的成员运行所有脚本。
  • 允许 Everyone 组的成员运行位于 Program Files 文件夹中的脚本。
  • 允许 Everyone 组的成员运行位于 Windows 文件夹中的脚本。

Windows Installer 默认规则类型包括:

  • 允许本地 管理员 组的成员运行所有 Windows Installer 文件。
  • 允许 Everyone 组的成员运行所有经过数字签名的 Windows Installer 文件。
  • 允许 Everyone 组的成员运行位于 Windows\Installer 文件夹中的所有 Windows Installer 文件。

DLL 默认规则类型:

  • 允许本地 管理员 组的成员运行所有 DLL。
  • 允许 Everyone 组的成员运行位于 Program Files 文件夹中的 DLL。
  • 允许 Everyone 组的成员运行位于 Windows 文件夹中的 DLL。

打包的应用默认规则类型:

  • 允许 Everyone 组的成员安装和运行所有已签名的打包应用和打包的应用安装程序。

AppLocker 规则行为

如果未为特定规则集合定义 AppLocker 规则,则允许运行该规则集合涵盖的所有文件。 但是,如果特定规则集合存在任何规则,则 那些与至少一个允许规则匹配且不与任何拒绝规则匹配的文件运行。 例如,如果创建允许 %SystemDrive%\FilePath 中的 .exe 文件运行的可执行规则,则仅允许位于该路径中的可执行文件运行。

可以将规则配置为使用允许或拒绝操作:

  • 允许。 可以指定允许在环境中运行哪些文件,以及允许哪些用户或用户组运行。 还可以配置例外以标识从规则中排除的文件。
  • 否认。 可以指定哪些文件 不允许 在你的环境中运行,以及哪些用户或用户组。 还可以配置例外以标识从规则中排除的文件。

对于最佳做法,请使用包含异常的 allow 操作。 虽然可以使用允许和拒绝操作的组合,但拒绝操作总是获胜。 不能使用任何其他规则来允许与拒绝规则匹配的文件。

规则例外

可以将 AppLocker 规则应用于单个用户或一组用户。 如果将规则应用于一组用户,该规则会影响该组中的所有用户。 如果需要允许用户组的子集使用应用,可以为该子集创建一个特殊规则。 例如,规则“允许除注册表编辑器以外的所有人运行 Windows”允许组织中的每个人运行 Windows 操作系统,但不允许任何人运行注册表编辑器。

此规则的效果将阻止技术支持人员等用户运行其支持任务所需的程序。 若要解决此问题,请创建适用于技术支持用户组的第二个规则:“允许技术支持运行注册表编辑器。如果改用了阻止所有用户运行注册表编辑器的拒绝规则,则第二个规则实际上不会让技术支持用户运行注册表编辑器。

DLL 规则集合

由于默认情况下未启用 DLL 规则集合,因此必须先执行以下过程,然后才能创建并强制实施 DLL 规则。

本地 管理员 组中的成员身份或等效成员身份是完成此过程所需的最低要求。

启用 DLL 规则集合

  1. 选择“ 开始”,键入 secpol.msc,然后选择 ENTER。
  2. 如果出现“ 用户帐户控制 ”对话框,请确认其显示的操作是所需操作,然后选择“ ”。
  3. 在控制台树中,双击“ 应用程序控制策略”,右键单击“ AppLocker”,然后选择“ 属性”。
  4. 选择“高级”选项卡,选中“启用 DLL 规则集合检查”框,然后选择“确定”。

重要提示

在强制实施 DLL 规则之前,请确保所有允许的应用所需的每个 DLL 都有允许规则。

AppLocker 向导

可以使用两个 AppLocker 向导创建规则:

  1. 使用“创建规则向导”,可以一次创建一个规则。
  2. 自动生成规则向导允许一次创建多个规则。 可以选择文件夹,让向导为找到的任何相关文件创建规则。 或者,对于打包的应用,让向导为计算机上安装的所有打包应用创建规则。 还可以指定要应用规则的用户或组。 此向导仅自动生成允许规则。

其他注意事项

  • 默认情况下,AppLocker 规则不允许用户打开或运行任何不允许的文件。 管理员应维护允许的应用程序的最新列表。
  • 有两种类型的 AppLocker 条件在应用更新后不会保留:
    • 文件哈希条件 文件哈希规则条件可用于任何应用,因为在创建规则时会生成应用文件的加密哈希值。 但是,哈希值特定于文件的确切版本。 如果需要允许文件的多个版本,则需要针对文件的每个版本使用单独的文件哈希条件。
    • 具有特定产品版本集的发布者条件 如果创建使用 “精确 版本”选项的发布者规则条件,则如果安装了新版本的应用,该规则将无法保留。 必须创建新的发布者条件,或者必须在规则中编辑版本,以降低其具体性。
  • 如果应用未进行数字签名,则无法对该应用使用发布者规则条件。
  • 如果为 EXE 规则集合强制实施任何规则,则必须在打包的应用和打包的应用安装程序规则集合中创建规则。 否则,将阻止所有打包的应用和打包的应用安装程序。
  • 自定义配置的 URL 可以包含在阻止应用时显示的消息中。
  • 当用户遇到不允许的应用时,预计技术支持呼叫数会增加。

本部分内容

文章 描述
创建使用文件哈希条件的规则 本文面向 IT 专业人员介绍如何创建具有文件哈希条件的 AppLocker 规则。
创建使用路径条件的规则 本文面向 IT 专业人员介绍如何创建具有路径条件的 AppLocker 规则。
创建使用发布者条件的规则 本文面向 IT 专业人员介绍如何创建具有发布者条件的 AppLocker 规则。
创建 AppLocker 默认规则 本文面向 IT 专业人员介绍了创建一组允许运行 Windows 系统文件的标准 AppLocker 规则的步骤。
为 AppLocker 规则添加例外 本文面向 IT 专业人员介绍了指定哪些应用可以作为 AppLocker 规则的例外运行或不能运行的步骤。
创建封装应用规则 本文面向 IT 专业人员介绍如何为具有发布者条件的打包应用创建 AppLocker 规则。
删除 AppLocker 规则 本文面向 IT 专业人员介绍了删除 AppLocker 规则的步骤。
编辑 AppLocker 规则 本文面向 IT 专业人员介绍了在 AppLocker 中编辑发布者规则、路径规则和文件哈希规则的步骤。
启用 DLL 规则集合 本文面向 IT 专业人员介绍了为 AppLocker 启用 DLL 规则收集功能的步骤。
强制执行 AppLocker 规则 本文面向 IT 专业人员介绍如何使用 AppLocker 强制实施应用程序控制规则。
运行自动生成规则向导 本文面向 IT 专业人员介绍了在参考设备上运行向导以创建 AppLocker 规则的步骤。