| 本模块内容 | |
| 目标 | |
| 适用范围 | |
| 如何使用本模块 | |
| 软件限制策略 | |
| 软件限制策略体系结构 | |
| 软件限制策略选项 | |
| 软件限制策略的设计和部署 | |
| 摘要 |
Microsoft® Windows® XP Professional 和 Microsoft Windows Server 2003 提供了“软件限制策略”功能,管理员可用来控制软件在本地计算机上运行的能力。通过此功能,管理员可以防止用户运行未经授权的软件,并提供了其他保护措施以防病毒和特洛伊木马程序的攻击。由于软件限制策略已集成到组策略中,因此可将其部署在 Microsoft Active Directory® 目录服务域中。此外,还可将软件限制策略部署在独立计算机中。
使用本模块可以实现下列目标:
| • | 设计和部署软件限制策略 |
| • | 选择正确的规则类型并使用它来标识软件 |
| • | 控制软件限制策略使用的检查级别 |
| • | 将软件限制策略配置为始终允许管理员运行软件 |
本模块适用于下列产品和技术:
| • | Windows Server 2003 域中的 Windows XP Professional Service Pack (SP) 1 客户端 |
| • | 独立的 Windows XP Professional SP1 客户端 |
此模块详细描述了软件限制策略以及如何使用它们来控制软件在本地计算机上运行的能力。
为了充分理解本模块内容,请
| • | 阅读本指南中的模块 2“配置 Active Directory 域基础结构”。此模块描述了如何部署合并了软件限制策略的组策略。 |
| • | 使用检查表。本指南“检查表”部分的检查表“Windows XP 客户端的软件限制策略”提供了作业指导,以供快速参考。使用基于任务的检查表可以快速评估需要哪些步骤并帮助您逐步完成各个步骤。 |
软件限制策略为管理员提供了一套策略驱动机制,用于标识软件并控制该软件在本地计算机上运行的能力。这些策略可以确保环境中运行 Windows XP Professional 的计算机之间不存在已知冲突,并保护计算机免受恶意病毒和特洛伊木马程序的攻击。软件限制策略与 Active Directory 和组策略完全集成。还可以在独立计算机上使用该策略。
软件限制策略的工作性质使得此模块在结构上不同于本指南中的其他模块。管理员首先定义允许在环境中的客户端上运行的应用程序集,然后确定该策略将对客户端应用的限制,而不是根据前面模块中的指示性建议来配置组策略的设置选项。
软件限制策略最初包括不受限设置和不允许设置的默认安全级别,以及为组策略对象 (GPO) 定义的规则。既可以对整个域应用该策略,也可以对环境中的本地计算机或用户应用该策略。软件限制策略提供了很多用于标识软件的方法,以及一个基于策略的基础结构,以强制实施有关已标识软件运行方式的规则。用户在运行软件程序时,必须遵守环境中的管理员在软件限制策略中建立的规则。
可以使用软件限制策略执行下列操作:
| • | 控制哪些软件可以在环境中的客户端上运行。 |
| • | 限制用户对多用户计算机上的特定文件的访问。 |
| • | 确定可以向客户端添加受信任的出版商的用户。 |
| • | 定义策略是影响客户端上的所有用户还是用户子集。 |
| • | 禁止可执行文件在本地计算机、OU、站点或域上运行。 |
软件限制策略体系结构提供了下列强大功能:
| • | 基于域或本地计算机的策略实施。管理员创建该策略,然后定义哪些应用程序是受信任的应用程序,哪些不是受信任的应用程序。该策略在运行时强制实施,用户不会收到允许其选择是否运行可执行文件的提示。 |
| • | 应用范围并不仅局限于可执行文件的策略。软件的构成尚无明确定义。该策略可以控制 Microsoft Visual Basic® Scripting Edition (VBScript)、Microsoft JScript® 以及其他脚本语言。它还与 Windows Installer 功能集成在一起,以控制可以在客户端上安装哪些程序包。此功能包含一个应用程序编程接口 (API),用于协调策略运行时与其他运行时。 |
| • | 可缩放的策略。该策略在拥有多种计算机类型和应用程序的大型企业中必须具有可管理性,但同时它还必须在单独的环境中运行。软件限制策略利用 Active Directory 和组策略实现可管理性。该策略存储在 GPO 中。还可以通过将 GPO 存储为本地计算机策略对象,在单独的非域联接环境中使用此策略功能。 |
| • | 灵活策略。管理员可以灵活地禁止未授权脚本的运行,并可调整 Microsoft ActiveX® 控件或锁定客户端。 |
| • | 启用严格加密以标识软件的策略。该策略可以使用哈希、证书或签名标识软件。 |
实现软件限制策略体系结构的过程包括三个阶段:
1. | 管理员或委托机构使用组策略 Microsoft 管理控制台 (MMC) 管理单元为 Active Directory 容器站点、域或 OU 创建策略。Microsoft 建议为软件限制策略创建单独的 GPO。 注意:要为本地独立计算机新建软件限制策略,您必须是本地计算机中 Administrators 组的成员。要配置这些设置,请单击“Windows 设置”、“安全设置”,然后单击“软件限制策略”。 |
2. | 计算机级策略在启动时下载并生效。用户策略在用户登录到系统或域时生效。要更新策略,请使用 gpupdate.exe /force 命令访问该策略。 |
3. | 当用户启动程序或脚本、操作系统或脚本主机时,该策略将根据强制实施的优先规则来确定它是否可以运行。 |
软件限制策略由两部分组成:
| • | 用于确定哪些程序可以运行的默认规则。 |
| • | 默认规则的例外清单。 |
可以将用于标识软件的默认规则设置为“不受限的”或“不允许的”(实际上是指运行还是不运行)。
将默认规则设置为“不受限的”允许管理员定义例外内容,或定义一组不允许运行的程序。在具有松散管理客户端的环境中请使用“不受限的”默认设置。例如,可以禁止用户安装将与现有程序冲突的程序,方法是创建一个规则来阻止该程序运行。
一种更安全的方法是将默认规则设置为“不允许的”,然后只允许特定的程序集运行。在“不允许的”默认设置下,管理员必须为每个应用程序定义所有规则,并确保用户在其计算机上拥有正确的安全设置,以便访问允许他们运行的应用程序。“不允许的”默认设置是确保 Windows XP 客户端安全的首选默认设置。
软件限制策略中的规则标识一个或多个应用程序,以指定是否允许它们运行。创建规则主要包括标识应用程序,然后将其标识为“不允许的”默认设置的例外。每个规则都可以包含用于描述其用途的注释。Windows XP 中的内置实施引擎首先在软件限制策略中查询规则,然后才允许程序运行。
软件限制策略使用下列四个规则来标识软件:
| • | 哈希规则 - 使用可执行文件的加密指印。 |
| • | 证书规则 - 使用软件发布者为 .exe 文件提供的数字签名证书。 |
| • | 路径规则 - 使用 .exe 文件位置的本地路径、通用命名约定 (UNC) 路径或注册表路径。 |
| • | 区域规则 - 使用可执行文件源自的 Internet 区域(如果该文件是使用 Microsoft Internet Explorer 下载的)。 |
哈希是唯一标识软件程序或可执行文件(即使该程序或可执行文件已被移动或重命名)的指印。这样,管理员可以使用哈希来跟踪他(或她)不希望用户运行的特定版本的可执行文件或程序。如果程序在安全或隐私方面存在漏洞,或者可能会破坏系统的稳定性,则可以使用哈希规则。
使用哈希规则,软件程序始终具有唯一可标识性,因为哈希规则匹配基于涉及文件内容的加密计算。唯一受哈希规则影响的文件类型是在“软件限制策略”的详细信息窗格中“指派的文件类型”部分列出的那些文件类型。
哈希规则比较适合于静态环境。如果客户端中的软件经常升级,则应在每个程序更新后将哈希重新应用于其可执行文件。哈希规则非常适用于未向其相应程序的可执行文件应用更改或升级的环境。
哈希规则由下列三个数据段组成,并以冒号分隔:
| • | MD5 或 SHA-1 哈希值。 |
| • | 文件长度。 |
| • | 哈希算法 ID 编号。 |
数字签名文件使用签名中包含的哈希值(可能是 MD5 或 SHA-1)。非数字签名的可执行文件使用 MD5 哈希值。
哈希规则的格式如下所示:
[MD5 或 SHA1 哈希值]:[文件长度]:[哈希算法 ID]
以下哈希规则示例用于内容与 MD5 哈希值(由哈希算法标识符 32771 表示)和哈希算法 7bc04acc0d6480af862d22d724c3b049 相匹配的 126 个字节长的文件:
7bc04acc0d6480af862d22d724c3b049:126:32771
管理员要限制或允许的每个文件都需要包含一个哈希规则。软件更新后,由于原始可执行文件的哈希值通常已被覆盖,因此管理员必须为每个应用程序新建一个哈希规则。执行下列步骤将哈希规则应用于现有的可执行文件。
| • | 要将哈希规则应用于现有的可执行文件,请执行下列操作:
|
证书规则指定代码签名软件发布者的证书。例如,管理员可能需要所有脚本和 ActiveX 控件的签名证书。符合证书规则的允许来源包括:
| • | 商业证书颁发机构 (CA),如 VeriSign。 |
| • | Windows 2000 或 Windows Server 2003 公钥基础结构 (PKI)。 |
| • | 自签名证书。 |
证书规则是一种非常有效的标识软件的方法,因为它使用已签名文件的签名中包含的已签名哈希来匹配文件,而不管文件的名称或位置如何。要创建证书规则的例外,可以使用哈希规则对其进行标识。
证书规则在默认情况下不启用。可以执行下列步骤来启用证书规则。
| • | 要启用证书规则,请执行下列操作:
|
大多数商业 Web 站点的软件代码都由商业 CA 进行签名。这些证书通常在一到几年内有效。使用证书规则时,应注意证书的有效期。可以与软件发布者联系,以获取有关他们所发行证书的有效期的详细信息。从商务 CA 收到证书时,可以将其导出到文件中,以创建证书规则。可以执行下列步骤来导出证书。
| • | 要导出证书,请执行下列操作:
|
现在可以使用此文件创建证书规则。

图 6.8
“新建证书”对话框显示了指定设置
路径规则指定程序的文件夹路径或完全限定路径。当路径规则指定文件夹时,它将匹配该文件夹中包含的任何程序以及相关子文件夹中包含的任何程序。路径规则既支持本地路径也支持 UNC 路径。
管理员必须在路径规则中定义用于启动特定应用程序的所有目录。例如,如果管理员在桌面上创建了一个用于启动应用程序的快捷方式,则在路径规则中,用户必须能够同时访问可执行文件路径和快捷方式路径才能运行该应用程序。试图仅使用这两个路径之一来运行应用程序将触发“Software Restricted”警告。
许多应用程序使用 %ProgramFiles% 变量将文件安装在运行 Windows XP Professional 的计算机硬盘上。如果将该变量设置为不同驱动器上的其他目录,某些应用程序仍会将文件复制到原来的 C:\Program Files 子目录中。因此,最好将路径规则定义到默认目录位置。
可以将路径规则定义为使用环境变量。由于路径规则在客户端环境中进行评估,因此管理员可以借助环境变量使规则适合于特定用户的环境。以下两个示例显示了将环境变量应用于路径规则的实例。
| • | “%UserProfile% 匹配 C:\Documents and Settings\User 以及该目录下的所有子文件夹。 |
| • | “%ProgramFiles%\Application 匹配 C:\Program Files\Application 以及该目录下的所有子文件夹。 |
注意:环境变量不受访问控制列表 (ACL) 的保护。环境变量有两种类型:User 和 System。能够启动命令提示的用户可以将 User 环境变量重新定义到不同的路径。只有 Administrators 组中的用户可以更改 System 环境变量。
以下是 Windows XP Professional 中默认环境变量的当前列表:
表 6.1:XP Professional 的默认环境变量
| 变量名 | 说明 |
ALLUSERSPROFILE | 返回所有用户配置文件位置的本地变量。 |
APPDATA | 返回应用程序在默认情况下存储数据的位置的本地变量。 |
CD | 返回当前目录字符串的本地变量。 |
CMDCMDLINE | 返回用于启动当前 Cmd.exe 程序的确切命令行的本地变量。 |
CMDEXTVERSION | 返回当前命令处理器扩展的版本号的系统变量。 |
COMPUTERNAME | 返回计算机名称的系统变量。 |
COMSPEC | 将精确路径返回给命令外壳可执行文件的系统变量。 |
DATE | 返回当前日期的系统变量。该变量与 date /t 命令使用相同的格式。Cmd.exe 程序生成此变量。有关详细信息,请参阅 Date 命令。 |
ERRORLEVEL | 返回最近使用命令的错误代码的系统变量。非零值通常表示错误。 |
HOMEDRIVE | 返回用户主目录的本地工作站驱动器号的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。 |
HOMEPATH | 返回用户主目录的完整路径的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。 |
HOMESHARE | 返回用户共享主目录的网络路径的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。 |
LOGONSEVER | 本地变量,返回验证当前登录会话的域控制器的名称。 |
NUMBER_OF_PROCESSORS | 指定计算机上安装的处理器数目的系统变量。 |
OS | 返回操作系统名称的系统变量。Windows XP Professional 将操作系统显示为 Microsoft Windows NT。 |
PATH | 指定可执行文件的搜索路径的系统变量。 |
PATHEXT | 系统变量,返回操作系统将其视为可执行文件的文件扩展名的列表。 |
PROCESSOR_ARCHITECTURE | 返回处理器芯片结构的系统变量。值:x86、IA64。 |
PROCESSOR_IDENTFIER | 返回处理器描述的系统变量。 |
PROCESSOR_LEVEL | 返回计算机处理器型号的系统变量。 |
PROCESSOR_REVISION | 返回处理器修订号的系统变量。 |
PROMPT | 返回当前解释程序的命令提示设置的本地变量。由 Cmd.exe 生成。 |
RANDOM | 返回 0 到 32767 之间的随机十进制数的系统变量,由 Cmd.exe 程序生成。 |
SYSTEMDRIVE | 返回包含 Windows 根目录(例如,系统根目录)的驱动器的系统变量。 |
SYSTEMROOT | 返回 Windows 根目录位置的系统变量。 |
TEMP 或 TMP | 系统和用户变量,返回当前登录的用户可以使用的应用程序的默认临时目录。某些应用程序需要使用 TEMP,而其他应用程序需要使用 TMP。 |
TIME | 返回当前时间的系统变量。该变量与 time /t 命令使用相同的格式,并由 Cmd.exe 生成。有关详细信息,请参阅 Time 命令。 |
USERDOMAIN | 返回包含用户帐户的域的名称的本地变量。 |
USERNAME | 返回当前登录用户名的本地变量。 |
USERPROFILE | 返回当前用户配置文件位置的本地变量。 |
WINDIR | 返回操作系统目录位置的系统变量。 |
在路径规则中可以使用“?”和“*” 通配符。以下示例显示了应用于不同路径规则的通配符:
| • | “\\DC ???\login$”匹配 \\DC ?01\login$、\\DC ?02\login$,依此类推。 |
| • | “*\Windows”匹配 C:\Windows、D:\Windows、E:\Windows 以及每个目录下的所有子文件夹。 |
| • | “C:\win*”匹配 C:\winnt、C:\windows、C:\windir 以及每个目录下的所有子文件夹。 |
| • | “*.vbs”匹配 Windows XP Professional 中具有此扩展名的任何应用程序。 |
| • | “C:\Application Files\*.*”匹配特定子目录中的所有应用程序文件。 |
许多应用程序将其安装文件夹或应用程序目录的路径存储在 Windows 注册表中。有些应用程序可以安装在文件系统中的任何位置。要找到它们,可以创建路径规则来查找这些注册表项。
使用特定文件夹路径(如 C:\Program Files\Microsoft Platform SDK)或环境变量(如 %ProgramFiles%\Microsoft Platform SDK)可能不会很容易地标识这些位置。但是,如果程序将其应用程序目录存储在注册表中,则可以创建一个路径规则,该路径规则将使用注册表中所存储的值,例如:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PlatformSDK\Directories\Install Dir%。
此类路径规则称为注册表路径规则,其格式如下所示:
%<Registry Hive>\<Registry Key Name>\<Value Name>%
注意:任何注册表路径规则后缀都不应在规则中的最后一个 % 符号之后紧跟一个 \ 字符。必须完整写出注册表配置单元的名称,缩写无效。
如果将默认规则设置为“不允许的”,将设置四个注册表路径,以便操作系统能够访问系统文件以执行正常操作。创建这些注册表路径规则是为了避免将您自己和所有其他用户锁定在系统之外。这些注册表规则被设置为“不受限的”。只有高级用户才可以修改或删除这些规则。注册表路径规则设置如下所示:
| • | %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
|
| • | %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
|
| • | %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
|
| • | %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
|
如果有多个匹配的路径规则,则最具体的匹配规则优先权最高。以下一组路径按优先权从最高(最具体的匹配)到最低(最一般的匹配)排序:
| • | Drive:\Folder1\Folder2\FileName.Extension |
| • | Drive:\Folder1\Folder2\*.Extension |
| • | *.Extension |
| • | Drive:\Folder1\Folder2\ |
| • | Drive:\Folder1\ |
可以使用区域规则标识从下列任意区域(在 Internet Explorer 中定义)下载的软件:
| • | Internet |
| • | Intranet |
| • | 受限站点 |
| • | 受信任的站点 |
| • | 我的电脑 |
Internet 区域规则的当前版本仅适用于 Windows Installer (*.msi) 程序包。此规则不适用于通过 Internet Explorer 下载的软件。受区域规则影响的所有其他文件类型已在此模块后面提供的指派文件类型表中列出。有一个由所有区域规则共享的指派文件类型组成的列表。
使用下表确定最适合于应用程序的用户和环境的路径规则。
表 6.2:确定给定应用程序的最佳路径规则
| 任务 | 推荐规则 |
允许或不允许特定程序版本。 | 哈希规则 |
标识始终安装在同一位置的程序。 | 带有环境变量的路径规则 |
标识可以安装在客户端计算机上的任何位置的程序。 | 注册表路径规则 |
标识中央服务器上的一组脚本。 | 路径规则 |
标识一组服务器上的一组脚本。 | 带有通配符的路径规则 |
禁止所有 .vbs 文件,但登录脚本目录中的 .vbs 文件除外。 | 带有通配符的路径规则 |
不允许由病毒安装的名称始终为 flcss.exe 的文件。 | 路径规则 |
标识一组可以在任何位置运行的脚本。 | 证书规则 |
允许从受信任的 Internet 区域站点安装软件。 | 区域规则 |
规则按特定顺序进行评估。与程序匹配程度较高的规则比与同一程序匹配程度较低的规则优先。如果为同一软件建立了两个不同安全级别的相同规则,则安全级别最高的规则优先。例如,如果将两个哈希规则(一个哈希规则的安全级别为“不允许的”,另一个的安全级别为“不受限的”)应用于同一软件程序,则安全级别为“不允许的”的规则优先,程序将不会运行。以下列表定义了规则的优先权顺序(从具体到一般):
1. | 哈希规则 |
2. | 证书规则 |
3. | 路径规则 |
4. | 区域规则 |
5. | 默认规则 |
本部分讨论了影响软件限制策略行为的各种强制选项。这些选项将改变数字签名文件的 Microsoft Authenticode® 信任设置的强制行为范围。有两个强制选项:“动态链接库 (DLL) 检查”和“跳过管理员”。
大多数程序都由可执行文件和许多支持 DLL 组成。默认情况下,不会对 DLL 强制实施软件限制策略规则。这是针对大多数客户的推荐选项,下面列出了这样做的三个原因:
| • | 不允许主要可执行文件可以阻止程序运行,因此无需再阻止构成程序的 DLL。 |
| • | 由于 DLL 检查必须检查链接到应用程序的所有库,因此会降低系统性能。例如,如果用户在登录会话中运行了 10 个程序,则软件限制策略将评估每个程序。打开 DLL 检查后,软件限制策略将评估每个程序中的每个 DLL 负载。如果每个程序使用 20 个 DLL,这将导致 10 个可执行程序检查以及 200 个 DLL 检查,因此软件限制策略必须执行 210 次评估。 Internet Explorer 之类的程序由可执行文件、iexplore.exe 和多个支持 DLL 组成。 |
| • | 将默认安全级别设置为“不允许的”将强制系统不仅要标识主要可执行文件(在允许该程序运行之前),还要标识作为 .exe 文件组成部分的所有 DLL,这将加重系统负担。 |
如果要最高限度地确保环境中运行的程序的安全性,则建议您使用“DLL 检查”选项。这是因为尽管病毒主要攻击可执行文件,但某些病毒却专门攻击 DLL。
要确保程序中不包含病毒,可以使用一组哈希规则来标识可执行文件以及构成该文件的所有 DLL。
| • | 要关闭“DLL 检查”选项,请执行下列操作: |
在“强制属性”对话框中,选择“除去库文件(如 Dll)之外的所有软件文件” 。

图 6.9
“强制属性”对话框显示了文件和用户强制选项
管理员可能要禁止大多数用户运行某些程序,但允许管理员运行所有这些程序。例如,管理员可能有一台多个用户通过终端服务器连接的共享计算机。管理员希望用户只运行计算机上的特定应用程序,但希望本地 Administrators 组中的成员能够运行所有程序。可以使用“跳过管理员”强制选项来执行此操作。
如果在链接到 Active Directory 中的对象的 GPO 中创建了软件限制策略(而不是使用“跳过管理员”选项),则 Microsoft 建议拒绝将此 GPO 上的“应用组策略”权限授予 Administrators 组。因为未下载不应用于管理员的 GPO 设置,因此这将降低网络通信量。
注意:本地安全策略对象中定义的软件限制策略无法过滤用户组。这种情况下,请使用“跳过管理员”选项。
| • | 要打开“跳过管理员”选项,请执行下列操作: |
在上图 6.9 中的“强制属性”对话框中,选择“除本地管理员以外的所有用户”。
下图 6.10 中的“指派的文件类型属性”对话框中列出了软件限制策略控制的文件类型。指派的文件类型被视为可执行文件。例如,屏幕保护文件 (.scr) 便被视为可执行文件,因为在 Windows 资源管理器中双击该文件时,它将作为程序加载。
软件限制策略规则只适用于“指派的文件类型属性”对话框中列出的文件类型。如果环境使用要应用规则的文件类型,请将该文件类型添加到列表中。例如,对于 Perl 脚本文件,可以选择将 .pl 以及其他与 Perl 引擎关联的文件类型添加到位于“指派的文件类型属性”对话框中“常规”选项卡下的“指定的文件类型:”列表中。

图 6.10
“指派的文件类型属性”对话框
本示例删除了文件类型 .mdb,并添加了 .ocx。下表列出了指派的文件类型。
表 6.3:指派的文件类型
| 文件扩展名 | 文件描述 |
.ade | Microsoft Access 项目扩展名 |
.adp | Microsoft Access 项目 |
.bas | Visual Basic 类模块 |
.bat | 批处理文件 |
.chm | 已编译的 HTML 帮助文件 |
.cmd | Windows NT 命令脚本 |
.com | MS-DOS 应用程序 |
.cpl | 控制面板扩展名 |
.crt | 安全证书 |
.exe | 应用程序 |
.hlp | Windows 帮助文件 |
.hta | HTML 应用程序 |
.inf | 安装信息文件 |
.ins | Internet 通信设置 |
.isp | Internet 通信设置 |
.js | JScript 文件 |
.jse | JScript 编码的脚本文件 |
.lnk | 快捷方式 |
.mde | Microsoft Access MDE 数据库 |
.msc | Microsoft Common Console 文档 |
.msi | Windows Installer 程序包 |
.msp | Windows Installer 修补程序 |
.mst | Visual 测试源文件 |
.ocx | ActiveX 控件 |
.pcd | Photo CD 图像 |
.pif | MS-DOS 程序的快捷方式 |
.reg | 注册表项 |
.scr | 屏幕保护程序 |
.sct | Windows 脚本组件 |
.shs | 外壳片段对象 |
.url | Internet 快捷方式(统一资源定位器) |
.vb | VB 文件 |
.vbe | VBScript 编码的脚本文件 |
.vbs | VBScript 脚本文件 |
.wsc | Windows 脚本组件 |
.wsf | Windows 脚本文件 |
.wsh | Windows 脚本主机设置文件 |
如果将软件限制策略配置为限制 16 位程序(如 command.com 或 edit.com),用户仍然可以启动该程序,即使他们没有运行该程序的权限。要解决此问题,可以在环境中的客户端上安装 Windows XP Professional Service Pack 1。
软件限制策略不禁止代码在 Microsoft Win32® 子系统以外运行。例如,用户可以从便携操作系统接口 (POSIX) 子系统运行同一命令。
要阻止这种情况的发生,请通过删除下列 POSIX 值来关闭 POSIX 子系统:
HKLM\System\CurrentControlSet\Control\SessionManager\Subsystems
可以使用“受信任的出版商属性”对话框来配置哪些用户可以选择受信任的出版商。还可以确定在信任发布者之前执行哪些证书吊销检查(如果存在)。启用证书规则后,软件限制策略将检查证书吊销列表 (CRL),以确保软件的证书和签名有效。这也会造成签名程序启动时系统性能的下降。使用下图 6.11 中显示的“受信任的出版商属性”对话框中“常规”选项卡下的选项,可以配置与 ActiveX 控件以及其他签名内容相关的设置。

图 6.11
“受信任的出版商属性”对话框
下表显示了与 ActiveX 控件以及其他签名内容相关的受信任发布者选项。
表 6.4:受信任发布者的任务和设置
| 设置名称 | 任务 |
企业管理员 | 用于只允许企业管理员进行有关签名活动内容的决策。 |
本地计算机管理员 | 用于允许本地计算机管理员进行有关签名活动内容的所有决策。 |
最终用户 | 用于允许用户进行有关签名活动内容的决策。 |
发布者 | 用于确保软件发布者使用的证书未被吊销。 |
时间戳 | 用于确保组织用于对活动内容加时间戳的证书未被吊销。 |
本部分介绍了如何使用组策略管理单元来管理软件限制策略,首次编辑策略时的注意事项,以及如何将软件限制策略应用于用户组。此外,还介绍了在部署软件限制策略时要考虑的各种问题。
可以对一组客户端以及登录到客户端的所有用户使用组策略管理单元来管理软件限制策略。该策略将应用于本指南中定义的台式计算机和便携式计算机 OU。
管理员应为软件限制策略创建一个单独的 GPO。这样可以删除组策略而不破坏应用于该对象的其他策略。
必须为环境中的独立客户端配置一个本地策略。注意,在配置和复制了本地策略之后可能会出现冲突。
本部分概述了在设计和部署软件限制策略时要执行的步骤。设计策略需要作出几项决策,下表将对此进行详细说明。
表 6.5:要进行的重要策略设计决策
| 决策 | 要考虑的因素 |
便携式计算机或工作站。 | 考虑环境中移动用户的需求,以便确定便携式计算机是否需要与台式计算机不同的策略。便携式计算机通常比台式计算机需要更大的灵活性。 |
服务器共享、登录脚本和主驱动器。 | 需要为从服务器共享目录或主目录启动的任何应用程序定义一个路径规则。可以向路径规则添加登录脚本文件。如果脚本调用任何其他脚本,还应向路径规则中添加可执行文件的位置。 |
GPO 或本地安全策略。 | 本指南为此设计使用了 GPO,但您应该考虑本地策略对设计的影响。 |
用户或客户端策略。 | 此设计适用于客户端级的所有设置。 |
默认安全级别 | 建议将默认设置配置为“不允许的”,然后相应地配置策略的其余部分。也可以使用默认设置“不受限的”。 |
其他规则 | 使用默认策略“不允许的”时,需要根据需要应用其他操作系统路径规则。在“不允许的”配置中,自动创建了四个规则。 |
策略选项 | 如果正在使用本地安全策略,并且不希望该策略应用于环境中客户端上的管理员,请选择策略强制选项“跳过管理员”。 |
将策略应用于站点、域或 OU。 | 该决策将驻留在台式计算机和便携式计算机所在的 OU 之下。 |
Microsoft 建议为软件限制策略创建一个单独的 GPO,以便在紧急情况下需要禁用该策略时,它不会影响域策略或本地策略的其余部分。
此外,如果您在 OU 的设计阶段使用软件限制策略意外地锁定了工作站,则可以在“安全模式”下重新启动计算机,并以本地管理员的身份登录,然后修改该策略。在“安全模式”下启动 Windows 时将不应用软件限制策略。在“安全模式”下启动计算机后,请运行 gpupdate.exe,然后重新启动计算机。
为了获得最大安全性,请将 ACL 与软件限制策略一同使用。用户可能会重命名或移动不允许的文件,或覆盖不受限的文件,以此来尝试跳过软件限制策略。为了防止发生这种情况,请使用 ACL 拒绝授予用户执行这些操作的权限。
登录脚本通常位于域控制器或中央服务器上的 Sysvol 下。域控制器通常可以随每次登录而更改。如果默认规则设置为“不允许的”,请确保创建用于标识登录脚本位置的规则。如果登录服务器具有相似的名称,可考虑使用通配符来定位它们,或使用具有不受限设置的登录脚本名称。
注意:在将新的软件限制策略设置应用于域之前,应在整个测试环境中对其进行测试。新策略设置的行为可能与最初的预计行为不符。通过测试可以减少在网络中部署软件限制策略设置时遇到问题的可能性。
以下步骤将指导您完成设计软件限制策略,并将其作为 GPO 应用于环境中的便携式计算机和台式计算机的全部过程。
找到为环境中的台式计算机或便携式计算机创建的 OU。如果在独立客户端上工作,则设置位于本地计算机策略中。在此策略中,单击“属性”,然后新建一个 GPO。根据组织的命名约定来命名策略。注意,此策略将只用于强制实施软件限制。
突出显示此 GPO,然后单击“编辑”。遍历该树,直到找到“Windows 设置”\“安全设置”\“软件限制策略”。首次编辑该策略时,您将看到下列消息:
未定义软件安全策略。
此消息警告您创建策略将定义默认值。这些默认值可能覆盖其他软件限制策略中的设置。由于尚未设置软件限制设置,因此将使用默认设置启动。右键单击“操作”菜单,然后选择“新建软件限制策略”。
确定了工作站将拥有的应用程序和脚本后,便可以设置路径规则。某些程序将启动其他程序来执行任务。环境中的软件应用程序可能依赖于一个或多个支持程序。当前安装的软件上的清单和安装文档对于跟踪路径规则非常有用。工作站设计示例可能包括下列规则:
| • | Applications = *\Program Files |
| • | Shared Group Applications= g:\Group Applications |
| • | Logon script = Logon.bat |
| • | Desktop Shortcuts = *.lnk |
| • | Malicious VB Script =*.vbs |
下列内容包括此设计的建议设置。这些选项将改变数字签名文件的强制行为范围或 Authenticode 信任设置。
强制 - 如果计算机是域的组成部分,则确保 Domain Admins 组自动添加到 Administrators 组。
应用于用户 - 此选项包含除本地管理员以外的所有用户。使用此设置将延迟每个应用程序的启动。为弥补此不足,此设计将策略设置为不检查 DLL。
应用于文件 - 此选项包括除库(如 DLL)以外的所有软件文件。使用此设置将延迟每个应用程序的启动。为弥补此不足,此设计将策略设置为不检查 DLL。
指派的文件类型 - 对于本指南中定义的 GPO 设计,未向该列表中添加其他文件类型。实际上,可以根据需要添加自定义应用程序文件类型扩展,以使其遵守相同的规则。
受信任的出版商 - 对于本指南中定义的 GPO 设计,启用了“管理员”组,并选中了“受信任的出版商属性: 本地计算机管理员”选项。
信任发布者之前,在创建 GPO 的设计阶段选中“检查: 发布者”选项,以确保该策略将验证证书。
最好将策略配置为默认设置“不受限的”。这样可以确保在应用软件限制前已完整配置了该策略。检查策略设置后,将默认设置重新设置为“不允许的”。
如果计算机是域的一部分,请将该计算机移到应用该策略的 OU 容器中。重新启动测试计算机,然后登录到该计算机。测试计划应说明在应用策略后每个应用程序的运行方式。运行应用程序,以确保它们能够完全正常运行,并确保您能够访问它们的所有功能。验证应用程序的功能后,针对这些应用程序进行一次模拟攻击,以确保该策略没有安全漏洞。
如果计算机是独立客户端,请登录到测试计算机并执行测试计划。验证应用程序后,请再次启动模拟攻击,以确保该策略没有安全漏洞。
全面测试该策略后,请将其应用于环境中的台式计算机 OU 或便携式计算机 OU。如果它是独立客户端,请将其应用于客户端上的本地计算机设置。打开 Computers and Users MMC 管理单元并遍历该目录,直到您找到台式计算机或便携式计算机的 OU 容器。然后,使用组策略对象编辑器创建新 GPO。编辑属性,并基于下表将相应设置应用于“Windows 设置”\“安全设置”下的“软件限制策略”。
表 6.6:安全级别
| 用户界面中的默认规则 | 说明 | 设置 |
不允许的 | 软件不会运行,无论用户拥有哪些访问权限。 | 使用此默认规则 |
表 6.7:其他规则
| 路径规则 | 设置 |
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot% | 不受限的 |
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\*.exe | 不受限的 |
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\System32\*.exe | 不受限的 |
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\ProgramFilesDir% | 不受限的 |
*.lnk | 不受限的 |
*.vbs | 不允许的 |
G:\Group Applications | 不受限的 |
Logon.bat 或登录脚本 | 不受限的 |
*\Program Files | 不受限的 |
表 6.8:对文件和用户强制实施策略
| 强制选项 | 建议 |
将软件限制策略应用于下列文件: | 除 DLL 以外的所有软件文件。 |
将软件限制策略应用于下列用户: | 除本地管理员以外的所有用户。 |
表 6.9:指派的文件类型
| 指派的文件类型 | 建议 |
指派的文件类型属性 | 删除 .mdb 并添加 .ocx。 |
表 6.10:受信任的出版商
| 受信任的出版商 | 建议 |
允许下列用户组选择受信任的出版商: | 本地计算机管理员 |
确定证书是否已被吊销。 | 选择“发布者”选项。 |
软件限制策略为管理员提供了策略驱动的机制,用于标识和控制域中运行 Windows XP Professional 的计算机上的软件。可以创建策略来阻止恶意脚本,然后锁定环境中的计算机或禁止应用程序运行。在企业中,最好使用组策略对象 (GPO) 来管理软件限制策略,然后调整所创建的每个策略,使其满足组织中不同用户组和计算机的需求。Microsoft 建议不要尝试管理独立环境中的用户组。如果应用正确,软件限制策略将会提高完整性和可管理性,并从根本上降低组织中计算机操作系统的拥有和维护成本。
以下是在发布 Windows Server 2003 时提供的最新信息源,其内容紧紧围绕 Windows XP Professional 和 Windows Server 2003 的软件限制策略。
有关软件限制策略的详细信息,请参阅“Using Software Restriction Policies to Protect Against Unauthorized Software”(英文),网址是:
http://www.microsoft.com/windowsxp/pro/techinfo/administration/restrictionpolicies/ default.asp。
有关安全服务的详细信息,请参阅“Technical Overview of Windows Server 2003 Security Services”(英文),网址是:
http://www.microsoft.com/windows.netserver/techinfo/overview/security.mspx。
有关组策略的详细信息,请参阅“Windows 2000 Group Policy”(英文),网址是:
http://www.microsoft.com/windows2000/techinfo/howitworks/management/ grouppolwp.asp。
有关确保移动计算机安全的详细信息,请参阅“Securing Mobile Computers with Windows XP Professional”(英文),网址是:
http://www.microsoft.com/windowsxp/pro/techinfo/administration/mobile/default.asp。