使用 AppLocker 规则

适用范围

  • Windows 10
  • Windows 11
  • Windows Server 2016 和更高版本

备注

应用程序控制Windows Defender仅在特定版本上Windows可用。 详细了解应用程序控制Windows Defender可用性

本主题针对 IT 专业人员介绍了 AppLocker 规则类型以及如何针对应用程序控制策略使用它们。

本部分内容

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

下表介绍了三种 AppLocker 强制模式。 此处定义的强制模式设置可以覆盖从 GPO 链接的组策略对象 (GPO) 具有更高优先级的设置。

强制模式 描述
未配置 这是默认设置,这意味着将强制实施此处定义的规则,除非优先级较高的链接 GPO 对此设置具有不同的值。
强制实施规则 强制执行规则。
仅审核 将审核规则,但不强制执行规则。 当用户运行受 AppLocker 规则影响的应用时,允许应用运行,并且有关该应用的信息将添加到 AppLocker 事件日志中。 仅审核强制模式可帮助你在强制执行策略之前确定哪些应用将受策略影响。 当规则集合的 AppLocker 策略设置为"仅**** 审核"时,不强制执行该规则集合的规则

合并来自各种 GPO 的 AppLocker 策略时,将合并来自所有 GPO 的规则,并应用成功 GPO 的强制模式设置。

规则集合

AppLocker 控制台分为规则集合,规则集合包括可执行文件、脚本、Windows安装程序文件、封装应用和封装应用安装程序以及 DLL 文件。 这些集合使你可以轻松区分不同类型的应用的规则。 下表列出了每个规则集合中包含的文件格式。

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

重要提示: 如果使用 DLL 规则,则需要为所有允许的应用使用的每个 DLL 创建允许规则。

使用 DLL 规则时,AppLocker 必须检查应用程序加载的每个 DLL。 因此,如果使用 DLL 规则,用户的性能可能会降低。

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

EXE 规则适用于可移植的可执行 (PE) 文件。 AppLocker 检查文件是否是有效的 PE 文件,而不只是基于文件扩展名应用规则,攻击者可以很容易地更改这些规则。 无论文件扩展名如何,AppLocker EXE 规则集合都适用于文件,只要文件是有效的 PE 文件。

规则条件

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

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

发布者

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

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

注意: 如果可能,请使用发布者规则条件,因为它们可以保存应用更新以及文件位置更改。

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

注意: 若要在"创建规则向导"中为发布者规则条件的任何字段输入自定义值,必须选中" 使用自定义值 "复选框。 选中此复选框后,你无法使用滑块。

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

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

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

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

路径

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

AppLocker 将自定义路径变量用于已知路径,如 Program Files 和 Windows。

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

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

重要提示: 由于路径规则条件可以配置为包含大量文件夹和文件,因此应仔细规划路径条件。 例如,如果具有路径条件的允许规则包括允许非管理员将数据写入的文件夹位置,则用户可以将未经批准的文件复制到该位置并运行这些文件。 因此,最佳做法是,不为标准用户可写位置(如用户配置文件)创建路径条件。

文件哈希

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

AppLocker 默认规则

AppLocker 包括默认规则,旨在帮助确保 AppLocker 规则集合中允许 Windows 正常运行所需的文件。 有关背景,请参阅 了解 AppLocker 默认规则,有关步骤,请参阅 创建 AppLocker 默认规则

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

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

脚本默认规则类型包括:

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

Windows安装程序默认规则类型包括:

  • 允许本地Administrators 组的成员运行所有 Windows Installer 文件。
  • 允许 Everyone的成员运行所有数字签名的 Windows Installer 文件。
  • 允许Everyone组的成员运行Windows\Installer 文件夹中的所有 Windows Installer 文件。

DLL 默认规则类型:

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

封装应用默认规则类型:

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

AppLocker 规则行为

如果不存在特定规则集合的任何 AppLocker 规则,则允许运行所有具有该文件格式的文件。 但是,当创建特定规则集合的 AppLocker 规则时,仅允许运行规则中明确允许的文件。 例如,如果创建的可执行规则允许 运行 %SystemDrive%\FilePath .exe文件,则仅允许运行位于该路径中的可执行文件。

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

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

重要提示: 为获得最佳方案,请使用允许操作(例外情况)。 你可以结合使用允许和拒绝操作,但了解拒绝操作覆盖在所有情况下都允许操作,并且可以避开这些操作。

重要提示: 如果你将至少运行 Windows Server 2012 或 Windows 8 的计算机加入到已对可执行文件强制执行 AppLocker 规则的域,则用户将无法运行任何打包的应用,除非你还创建了打包应用的规则。 如果你希望允许环境中的任何封装应用,同时继续控制可执行文件,应为封装应用创建默认规则,并针对封装应用规则集合将强制模式设置为"仅审核"。

规则例外

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

此规则的效果将阻止用户(如技术支持人员)运行其支持任务所需的程序。 若要解决此问题,请创建适用于 Help Desk 用户组的第二个规则:"允许技术支持运行注册表编辑器"。 如果创建的拒绝规则不允许任何用户运行注册表编辑器,则拒绝规则将覆盖允许技术支持用户组运行注册表编辑器的第二个规则。

DLL 规则集合

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

至少是本地 Administrators 组的成员(或等效身份)才能完成此过程。

启用 DLL 规则集合

  1. 单击 "开始",键入 secpol.msc, 然后按 Enter。

  2. 如果显示"用户帐户控制"对话框,请确认它显示的操作是您想要的操作,然后单击"是 "。

  3. 在控制台树中,双击"应用程序控制策略", 右键单击AppLocker, 然后单击"属性 "。

  4. 单击"高级" 选项卡,选中"启用 DLL 规则集合"复选框,然后单击"确定 "。

    重要提示: 在强制执行 DLL 规则之前,请确保任何允许的应用所使用的每个 DLL 都有允许规则。

AppLocker 向导

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

  1. 通过"创建规则向导",可以一次创建一个规则。
  2. 自动生成规则向导允许您一次创建多个规则。 可以选择一个文件夹,让向导为该文件夹中的相关文件创建规则,或在打包的应用的情况下,让向导为计算机上安装的所有封装应用创建规则。 还可以指定要应用规则的用户或组。 此向导仅自动生成允许规则。

其他注意事项

  • 默认情况下,AppLocker 规则不允许用户打开或运行任何未明确允许的文件。 管理员应维护允许的应用程序最新列表。

  • 有两种类型的 AppLocker 条件在应用更新后不会保留:

    • 文件哈希条件 文件哈希规则条件可以与任意应用一同使用,因为应用程序的加密哈希值是在创建规则时生成的。 但是,哈希值特定于该应用的确切版本。 如果组织中正使用应用程序的多个版本,则需要为使用的每个版本和任何已发布的新版本创建文件哈希条件。

    • 具有特定产品版本集的发布者条件如果创建使用"精确版本"选项的发布者**** 规则条件,则如果安装了应用的新版本,则规则无法保留。 必须创建一个新的发布者条件,或者必须在规则中编辑版本,使版本不太具体。

  • 如果应用未进行数字签名,则不能对该应用使用发布者规则条件。

  • AppLocker 规则不能用于管理运行 Windows Server 2008 R2 或 Windows 7 Windows操作系统的计算机。 必须改为使用软件限制策略。 如果 AppLocker 规则在组策略对象 (GPO) ,则仅应用这些规则。 若要确保软件限制策略规则和 AppLocker 规则之间的互操作性,请在不同的 GPO 中定义软件限制策略规则和 AppLocker 规则。

  • 封装应用和封装应用安装程序规则集合在至少运行 Windows Server 2012 和 Windows 8 的设备上可用。

  • 如果可执行规则集合的规则已强制执行,并且封装应用和封装应用安装程序规则集合不包含任何规则,则不允许运行封装应用和封装应用安装程序。 为了允许任何封装应用和封装应用安装程序,你必须为封装应用和封装应用安装程序规则集合创建规则。

  • 当 AppLocker 规则集合设置为"仅审核 " 时,不会强制执行规则。 当用户运行包含在规则中的应用程序时,应用将正常打开并运行,并且有关该应用的信息将添加到 AppLocker 事件日志中。

  • 自定义配置的 URL 可包含在阻止应用时显示的消息中。

  • 预计最初由于应用被阻止,技术支持呼叫数量会增加,直到用户了解他们无法运行不允许的应用。