软件限制策略技术概述

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

本主题介绍软件限制策略、何时和如何使用该功能、以前版本中已实现的更改,并提供其他资源的链接,帮助你从 Windows Server 2008 和 Windows Vista 开始创建和部署软件限制策略。

介绍

软件限制策略为管理员提供了一种组策略驱动机制,用于识别软件并控制其在本地计算机上运行的能力。 从 Windows Server 2003 和 Windows XP Professional 开始,这些策略可用于保护运行 Microsoft Windows 操作系统的计算机,使其免受已知冲突,并保护计算机安全,使其免受恶意病毒和特洛伊木马程序等安全威胁。 你还可以使用软件限制策略创建计算机的高度受限配置,从而仅允许运行专门标识的应用程序。 软件限制策略与 Microsoft Active Directory 和组策略集成。 你也可以在独立计算机上创建软件限制策略。

软件限制策略是信任策略,也是管理员设置的规则,旨在限制未完全受信任的脚本和其他代码的运行。 本地组策略编辑器的软件限制策略扩展提供了一个单一的用户界面,通过该界面可以在本地计算机或整个域中管理用于限制应用程序使用的设置。

过程

软件限制策略使用场景

业务用户使用电子邮件、即时消息传递和对等应用程序进行协作。 随着这些协作的增加,特别是随着业务计算中 Internet 的使用,来自恶意代码(如蠕虫、病毒和恶意用户或攻击者威胁)的威胁也在增加。

用户可能会收到多种形式的恶意代码,从本机 Windows 可执行文件(.exe 文件)到文档中的宏(如 .doc 文件),再到脚本(如 .vbs 文件)。 恶意用户或攻击者通常使用社交工程方法来让用户运行包含病毒和蠕虫的代码。 (社交工程是指代诱骗人们泄露密码或某种形式的安全信息的术语。)如果激活此类代码,就可能会对网络产生拒绝服务攻击,将敏感或私人数据发送到 Internet,使计算机的安全处于危险之中,或损坏硬盘驱动器的内容。

IT 组织和用户必须能够确定哪些软件可安全运行,哪些软件不可安全运行。 由于恶意代码的数量大且形式多,这成为了一项艰巨的任务。

为了帮助保护其网络计算机,使之不受到恶意代码和未知或不支持的软件的侵害,组织可以实施软件限制策略作为其整体安全策略的一部分。

管理员可以将软件限制策略用于以下任务:

  • 定义什么是受信任代码

  • 设计灵活的组策略来规范脚本、可执行文件和 ActiveX 控件

操作系统和符合软件限制策略的应用程序(如脚本操作应用程序)将强制实施软件限制策略。

特别地,管理员可以将软件限制策略用于以下目的:

  • 指定可在客户端计算机上运行的软件(可执行文件)

  • 防止用户在共享计算机上运行特定程序

  • 指定可以将受信任发布程序添加到客户端计算机的人员

  • 设置软件限制策略的范围(指定策略是影响客户端计算机上的所有用户,还是影响某一部分用户)

  • 防止可执行文件在本地计算机、组织单位 (OU)、网站或域中运行。 这适用于未使用软件限制策略解决恶意用户的潜在问题的情况。

功能方面的差异和更改

Windows Server 2012 和 Windows 8 的 SRP 中的功能没有更改。

支持的版本

软件限制策略只能在至少运行 Windows Server 2003(包括 Windows Server 2012)和至少运行 Windows XP(包括 Windows 8)的计算机上进行配置和应用。

注意

从 Windows Vista 开始的某些版本的 Windows 客户端操作系统没有软件限制策略。 未在域中由组策略管理的计算机可能无法接收分布式策略。

比较软件限制策略和 AppLocker 中的应用程序控制功能

下表比较了软件限制策略 (SRP) 功能和 AppLocker 的特性和功能。

应用程序控制功能 SRP AppLocker
作用域 SRP 策略可以应用于从 Windows XP 和 Windows Server 2003 开始的所有 Windows 操作系统。 AppLocker 策略仅适用于 Windows Server 2008 R2、Windows Server 2012、Windows 7 和 Windows 8。
策略创建 SRP 策略通过组策略进行维护,只有 GPO 的管理员可以更新 SRP 策略。 本地计算机上的管理员可以修改本地 GPO 中定义的 SRP 策略。 AppLocker 策略通过组策略进行维护,只有 GPO 的管理员可以更新策略。 本地计算机上的管理员可以修改本地 GPO 中定义的 AppLocker 策略。

AppLocker 允许自定义错误消息,从而将用户定向到某一网页寻求帮助。

策略维护 SRP 策略必须使用本地安全策略管理单元(如果策略在本地创建)或组策略管理控制台 (GPMC) 来更新。 AppLocker 策略可以使用本地安全策略管理单元(如果策略在本地创建)、GPMC 或 Windows PowerShell AppLocker cmdlet 来更新。
策略应用程序 SRP 策略通过组策略分发。 AppLocker 策略通过组策略分发。
强制模式 SRP 在“拒绝列表模式”下工作,在此模式下,管理员可以为不希望在此企业中允许的文件创建规则,而默认允许文件的其余部分运行。

还可以在“允许列表模式”中配置 SRP,以便默认情况下阻止所有文件,并且管理员需要为想要允许的文件创建允许规则。

AppLocker 默认在“允许列表模式”下工作,在该模式下,仅允许运行具有匹配允许规则的文件。
可控制的文件类型 SRP 可以控制以下文件类型:

- 可执行文件
- Dll
- 脚本
- Windows 安装程序

SRP 无法单独控制每种文件类型。 所有 SRP 规则都位于单个规则集合中。

AppLocker 可以控制以下文件类型:

- 可执行文件
- Dll
- 脚本
- Windows 安装程序
- 打包的应用和安装程序(Windows Server 2012 和 Windows 8)

AppLocker 为五种文件类型中的每一种都维护单独的规则集合。

指定的文件类型 SRP 支持被视为可执行文件的文件类型的可扩展列表。 管理员可以为应视为可执行文件的文件添加扩展名。 AppLocker 不支持此功能。 AppLocker 目前支持以下文件扩展名:

- 可执行文件(.exe、.com)
- Dll(.ocx、.dll)
- 脚本(.vbs、js、ps1、cmd、.bat)
- Windows 安装程序(.msi、.mst、.msp)
- 应用包安装程序(.appx)

规则类型 SRP 支持四种类型的规则:

- 哈希
- 路径
- 签名
- Internet 区域

AppLocker 支持三种类型的规则:

- 哈希
- 路径
- 发布者

编辑哈希值 SRP 支持管理员提供自定义哈希值。 AppLocker 自行计算哈希值。 在内部,它将 SHA1 Authenticode 哈希用于可移植可执行文件(Exe 和 Dll)和 Windows 安装程序,其余部分使用 SHA1 平面文件哈希。
对不同安全级别的支持 借助 SRP,管理员可以指定应用可运行的权限。 因此,管理员可以配置相关规则,使记事本始终以受限权限运行,而不具有管理权限。

Windows Vista 及更早版本中的 SRP 支持多个安全级别。 在 Windows 7 上,该列表仅限于两个级别:不允许和不受限制(基本用户转换为不允许)。

AppLocker 不支持安全级别。
管理封装应用和封装应用安装程序 无法 .appx 是 AppLocker 可以管理的有效文件类型。
使规则面向一位用户或一组用户 SRP 规则适用于特定计算机上的所有用户。 AppLocker 规则可以面向特定用户或一组用户。
对规则例外的支持 SRP 不支持规则例外 AppLocker 规则可以包含允许管理员创建规则的例外,例如“允许除 Regedit.exe 以外的所有 Windows 内容”。
对审核模式的支持 SRP 不支持审核模式。 测试 SRP 策略的唯一一种方法是设置测试环境并运行一些试验。 AppLocker 支持审核模式,这支持管理员在实际生产环境中测试策略的效果,而不影响用户体验。 如果对结果满意,即可开始强制实施策略。
对导出和导入策略的支持 SRP 不支持策略导入/导出。 AppLocker 支持导入和导出策略。 这样,便可以在示例计算机上创建 AppLocker 策略,对其进行测试,然后导出该策略并将其导入回所需的 GPO。
规则强制实施 在内部,SRP 规则强制实施在安全性较低的用户模式下发生。 在内部,Exes 和 Dll 的 AppLocker 规则在内核模式下强制实施,这比在用户模式下强制实施更安全。

系统要求

软件限制策略只能在至少运行 Windows Server 2003 和至少运行 Windows XP 的计算机上进行配置和应用。 需要使用组策略才能分发包含软件限制策略的组策略对象。

软件限制策略组件和体系结构

软件限制策略为符合软件限制策略的操作系统和应用程序提供了一种机制,以限制软件程序的运行时执行。

概括而言,软件限制策略由以下组件组成:

  • 软件限制策略 API。 应用程序编程接口 (API) 用于创建和配置构成软件限制策略的规则。 另外还有用于查询、处理和强制实施软件限制策略的软件限制策略 API。

  • 软件限制策略管理工具。 这包括“本地组策略对象编辑器”管理单元的“软件限制策略”扩展,管理员使用该扩展来创建和编辑软件限制策略

  • 一组操作系统 API 和应用程序,可调用软件限制策略 API,以在运行时强制实施软件限制策略。

  • Active Directory 和组策略。 软件限制策略依赖于组策略基础结构,以将软件限制策略从 Active Directory 传播到相应客户端,并将这些策略的范围确定和筛选应用到相应目标计算机。

  • 用于处理已签名可执行文件的 Authenticode 和 WinVerify 信任 API。

  • 事件查看器。 软件限制策略使用的函数将事件记录到事件查看器日志。

  • 生成的策略集 (RSoP),这有助于诊断将应用于客户端的有效策略。

有关 SRP 体系结构以及 SRP 如何管理规则、进程和交互的详细信息,请参阅 Windows Server 2003 技术库中的软件限制策略的工作原理

最佳实践

请不要修改默认域策略。

  • 如果不编辑默认域策略,则始终可以选择在自定义域策略出现问题时重新应用默认域策略。

为软件限制策略创建单独的组策略对象。

  • 如果为软件限制策略创建单独的组策略对象 (GPO),则可以在紧急情况下禁用软件限制策略,而无需禁用域策略的其余部分。

如果在应用策略设置方面遇到问题,请在安全模式下重启 Windows。

  • 在安全模式下启动 Windows 时,软件限制策略不适用。 如果意外锁定了具有软件限制策略的工作站,请在安全模式下重启计算机,以本地管理员身份登录,修改策略,运行 gpupdate,重启计算机,然后正常登录

定义默认设置“不允许”时请谨慎。

  • 定义默认设置“不允许”时,除了显式允许的软件外,所有软件都不允许。 要打开的任何文件都必须具有允许其打开的软件限制策略规则。

  • 为了防止管理员将自己锁定在系统外,当默认安全级别设置为“不允许”时,会自动创建四条注册表路径规则。 可以删除或修改这些注册表路径规则;但是,不建议这样做。

为了获得最佳安全性,请将访问控制列表与软件限制策略结合使用。

  • 用户可能会尝试通过重命名或移动不允许的文件或者覆盖不受限制的文件来规避软件限制策略。 因此,建议使用访问控制列表 (ACL) 来拒绝用户执行这些任务必需的访问权限。

在将策略设置应用到域前,请在测试环境中全面测试新策略设置。

  • 新策略设置的行为可能与最初预期的不同。 测试可降低在整个网络中部署策略设置时遇到问题的可能性。

  • 可以设置一个独立于组织的域的测试域,用于测试新策略设置。 还可以通过创建测试 GPO 并将其链接到测试组织单位来测试策略设置。 使用测试用户全面测试策略设置后,可以将测试 GPO 链接到域。

  • 在没有测试以查看可能效果的情况下,请不要将程序或文件设置为“不允许”。 对某些文件的限制可能会严重影响计算机或网络的操作。

  • 输入错误或键入错误的信息可能会导致策略设置不按预期执行。 在应用新策略设置之前对其进行测试可以防止意外行为。

根据安全组中的成员身份筛选用户策略设置。

  • 可以通过清除位于 GPO 属性对话框的“安全性”选项卡上的“应用组策略”和“读取”复选框来指定不希望应用策略设置的用户或组

  • 拒绝“读取”权限时,计算机不会下载策略设置。 这样可减少下载非必要策略设置所消耗的带宽,从而使网络能够以更快的速度运行。 若要拒绝“读取”权限,请为“读取”复选框选择“拒绝”,该复选框位于 GPO 属性对话框的“安全性”选项卡中

  • 链接到其他域或站点中的 GPO 可能会导致性能不佳。

其他资源

内容类型 参考
规划 软件限制策略技术参考
操作 管理软件限制策略
故障排除 软件限制策略故障排除 (2003)
安全性 软件限制策略的威胁和对策 (2008)

软件限制策略的威胁和对策 (2008 R2)

工具和设置 软件限制策略工具和设置 (2003)
社区资源 软件限制策略的应用程序锁定