Windows XP 安全指南
第 6 章:Windows XP 客户端的软件限制策略
更新日期: 2006年07月17日
本页内容
概述
软件限制策略体系结构
软件限制策略选项
软件限制策略的设计和部署
总结
概述
软件限制策略为管理员提供了一种方式,用于标识软件并控制该软件在本地计算机上运行的能力。此工具可以帮助防止运行 Microsoft® Windows® XP Professional 的计算机出现已知冲突,并防范它们遭受恶意软件(如病毒和特洛伊木马程序)的攻击。软件限制策略与 Active Directory® 目录服务和组策略完全集成。还可以在独立计算机上使用该策略。
本章的结构与本指南的前面几章有所不同,原因在于软件限制策略的工作方式。前面几章提供了有关如何配置组策略设置选项的建议。软件限制策略要求管理员定义允许在您的环境中的客户端计算机上运行的应用程序,然后确定将策略应用于客户端的限制。
当实施软件限制策略时,必须做出的第一个决定是默认安全级别为“不受限的”还是“不允许的”。如果默认安全级别为“不受限的”,则将允许所有软件运行,并且您需要配置附加规则来阻止特定应用程序。更安全的方法是将默认安全级别配置为“不允许的”,这意味着不允许任何软件运行,并且需要配置附加规则来允许特定应用程序。您可以通过基于域的组策略将软件限制策略应用到多台计算机,或者通过本地组策略将软件限制策略应用到个别计算机。
重要:将本指南中论述的所有策略设置部署到生产系统之前,务必要对其进行全面测试,尤其是软件限制策略设置。此功能的设计或实施错误可能给用户带来巨大的麻烦。
软件限制策略提供了很多用于标识软件的方法,以及一个基于策略的基础结构,以强制实施有关已标识软件运行方式的规则。计算机用户必须遵从其环境中由管理员在软件限制策略中建立的指导原则。
您可以使用软件限制策略完成下列操作:
-
控制哪些软件可以在环境中的客户端计算机上运行。
-
限制用户对多用户计算机上的特定文件的访问。
-
确定可以向客户端计算机添加受信任的发布者的用户。
-
定义策略是影响客户端计算机上的所有用户还是用户子集。
-
根据计算机、OU、站点或域级别处设置的策略禁止可执行文件在本地计算机上运行。
软件限制策略体系结构
软件限制策略提供了下列强大功能:
-
策略可基于域或本地计算机强制实施。管理员创建该策略,然后定义哪些应用程序是受信任的应用程序,哪些不是受信任的应用程序。该策略在运行时强制实施,用户不会收到允许其选择是否运行可执行文件的提示。
-
策略的应用范围并不仅局限于二进制可执行文件。软件的构成尚无明确定义。软件限制策略可以控制 Microsoft Visual Basic® Scripting Edition (VBScript)、JScript® 以及其他脚本语言。它还与 Windows Installer 功能集成在一起,以控制可以在客户端计算机上安装哪些程序包。此功能包含一个应用程序编程接口 (API),用于协调策略运行时与其他运行时。
-
策略可缩放。软件限制策略是通过组策略实施的,因此可以跨包含成千上万台计算机的域有效地实施和管理。
-
策略灵活。管理员可以灵活地禁止未授权脚本的运行,调整 Microsoft ActiveX® 控件或锁定客户端计算机。
-
策略采用强加密技术来标识软件。软件限制策略可以使用哈希或数字签名标识软件。
软件限制策略的实施包括三个阶段:
-
管理员或委托机构使用 Microsoft 管理控制台 (MMC) 组策略管理单元为 Active Directory 容器站点、域或 OU 创建策略。Microsoft 建议为软件限制策略创建单独的 组策略对象 (GPO)。
注意:要为本地独立计算机创建新的软件限制策略,您必须是本地计算机上 Administrators 组的成员。要配置这些策略设置,请依次单击“Windows 设置”、“安全设置”,然后单击“软件限制策略”。
-
计算机级策略在启动计算机之后下载并生效。用户策略在用户登录到系统或域时生效。要更新策略,请执行 gpupdate.exe /force 命令。
-
当用户启动某个可执行文件(如应用程序或脚本)时,策略将根据优先规则确定该可执行文件是否可以运行。
不受限的或不允许的设置
软件限制策略由两部分组成:
-
指定哪些程序可以运行的默认规则。
-
默认规则的例外清单。
您可以将用于标识软件的默认规则设置为“不受限的”或“不允许的”(允许您运行或不允许运行所有软件)。
如果将默认规则设置为“不受限的”,则管理员可以定义例外或不允许运行的一组程序。在具有管理松散的客户端计算机的环境中,请使用“不受限的”默认设置。例如,可以禁止用户安装将与现有程序冲突的程序,方法是创建一个规则来阻止该程序运行。
更安全的方法是将默认规则设置为“不允许的”,然后仅允许一组特定的程序运行。“不允许的”默认设置要求管理员为每个应用程序定义所有规则,并确保用户在其计算机上拥有正确的安全策略设置,以便访问允许他们运行的应用程序。对于要保护 Windows XP 客户端计算机的组织来说,“不允许的”默认设置是一种更为安全的方法。
标识软件的四个规则
软件限制策略中的规则标识一个或多个应用程序,并指定是否允许它们运行。允许应用程序运行之前,Windows XP 中的强制引擎将先查询策略的规则。要创建规则,您需要标识应用程序,然后将其作为例外归类到“不允许的”默认设置。每个规则都可以包含用于描述其用途的注释。
软件限制策略使用下列四个规则来标识软件:
-
哈希规则。使用可执行文件的加密指印。
-
证书规则。使用软件发布者为 .exe 文件提供的数字签名证书。
-
路径规则。使用 .exe 文件位置的本地路径、通用命名约定 (UNC) 路径或注册表路径。
-
区域规则。使用可执行文件源自的 Internet 区域(如果该文件是使用 Microsoft Internet Explorer 下载的)。
哈希规则
哈希是唯一标识软件程序或可执行文件(即使该程序或可执行文件已被移动或重命名)的数字指纹。管理员可以使用哈希来跟踪他们不希望用户运行的特定版本的可执行文件或程序。
使用哈希规则,软件程序始终具有唯一可标识性,因为哈希规则匹配基于涉及文件内容的加密计算。唯一受哈希规则影响的文件类型是在“软件限制策略”的详细信息窗格中“指派的文件类型”部分列出的那些文件类型。
哈希规则比较适合于静态环境。如果环境中的软件已经过升级,需要为每个更新后的可执行文件重新计算哈希。哈希规则非常适用于很少进行软件更改或升级的环境。
哈希规则由下列三个数据段组成,并以冒号分隔:
-
MD5 或 SHA-1 哈希值
-
文件长度
-
哈希算法 ID 编号
数字签名文件使用签名中包含的哈希值(可能是 MD5 或 SHA-1)。非数字签名的可执行文件使用 MD5 哈希值。
哈希规则的格式如下所示:
[MD5 或 SHA1 哈希值]:[文件长度]:[哈希算法 ID]
以下哈希规则示例用于内容与 MD5 哈希值(7bc04acc0d6480af862d22d724c3b049)和哈希算法(由哈希算法标识符 32771 表示)相匹配的 126 个字节的文件:
7bc04acc0d6480af862d22d724c3b049:126:32771
管理员要限制或允许的每个文件都需要包含一个哈希规则。软件更新后,由于原始可执行文件的哈希值与新文件的哈希值不匹配,因此管理员必须为每个应用程序新建一个哈希规则。
完成下列过程创建散列规则为可执行文件中步骤。
为现有的可执行文件创建哈希规则
-
在组策略对象编辑器工具栏上,单击“Windows 设置”、“安全设置”、“软件限制策略”,然后右键单击“其它规则”。
-
单击快捷菜单上的“新散列规则”。
图 6.1 “新散列规则”对话框
-
单击“浏览”选择要为其创建哈希规则的文件。在此示例中,可执行文件为 Excel.exe。“文件散列:”框中将显示新的哈希值,“文件信息:”框中将显示应用程序版本。
-
选择要用于此规则的安全级别设置。选项包括:
-
不允许的
-
不受限的
-
证书规则
证书规则指定允许程序运行之前必须存在软件发布者的证书(用于代码签名)。例如,管理员可能需要所有脚本和 ActiveX 控件的签名证书。符合证书规则的允许来源包括:
-
商业证书颁发机构 (CA),如 VeriSign。
-
Microsoft Windows 2000/Windows Server™ 2003 公钥基本结构 (PKI)。
-
自签名证书。
证书规则是一种非常有效的软件标识方法,因为它使用已签名文件的签名中包含的已签名哈希来匹配文件,而不管文件的名称或位置如何。遗憾的是,极少数软件供应商采用代码签名技术,他们甚至通常仅对其所分发的一小部分可执行文件进行签名。因此,证书规则通常用于许多特定的应用程序类型(例如 ActiveX 控件)或内部部署的应用程序。例如,本指南建议组织对用于管理计算机和用户的脚本进行数字签名,这样可以阻止所有未经签名的脚本。哈希规则可以用于标识证书规则的例外。
启用证书规则
证书规则在默认情况下不启用。完成下列过程中的步骤可以启用证书规则。
启用证书规则
-
在组策略对象编辑器中打开 GPO。
-
在控制台树中,单击“安全选项”。
-
在详细信息窗格中,双击“系统设置:为软件限制策略对 Windows 可执行文件使用证书规则”。
-
单击“启用”以启用证书规则。
有关如何数字签名文件的详细说明,请参阅“Using Software Restriction Policies to Protect Against Unauthorized Software”的“Step-by-Step Guide to Digitally Signing Files with Test Certificates”部分,网址为 www.microsoft.com/technet/prodtechnol/winxppro/maintain/rstrplcy.mspx。
许多商业网站的软件代码都由商业证书颁发机构 (CA) 进行签名。这些证书通常在一到几年内有效。使用证书规则时,应注意证书的有效期。可以与软件发布者联系,以获取有关所发行证书的有效期的详细信息。从商业 CA 收到证书时,可以将其导出到文件中,以创建证书规则。完成下列过程中的步骤可以导出证书。
导出证书
-
选择要颁发证书的受信任发布者。在此示例中,证书发布者为 Microsoft MSN®。
图 6.2 “安全警告”对话框显示受信任的发布者
-
单击“详细信息”选项卡,然后单击“复制到文件...”以将此证书复制到某个文件并使用它来创建证书规则。
图 6.3 “证书”对话框的“详细信息”选项卡
-
将显示“证书导出向导”欢迎页面。单击“下一步”以继续。
图 6.4 “证书导出向导”欢迎页面
-
在“导出文件格式”页面上,选择“DER 编码二进制 X.509 (.CER)”,然后单击“下一步”创建扩展名为 (.cer) 的证书文件。
图 6.5 “证书导出向导”的“导出文件格式”页面显示了选定的编码方法
-
在“要导出的文件”页面上,指定描述性的证书规则文件名。该证书将使用您选择的任何文件名保存到您选择的任何位置。
图 6.6 “证书导出向导”的“要导出的文件”页面显示了文件名示例
-
“正在完成证书导出向导”页面将显示证书文件的指定设置。检查这些设置,然后单击“完成”以导出该文件。
图 6.7 “证书导出向导完成”页面显示指定设置
路径规则
路径规则指定程序的文件夹路径或完全限定路径。当路径规则指定文件夹时,它将匹配该文件夹中包含的任何程序以及相关子文件夹中包含的任何程序。路径规则既支持本地路径也支持 UNC 路径。
管理员必须在路径规则中定义用于启动特定应用程序的所有目录。例如,如果桌面快捷方式用于启动应用程序,则路径规则必须同时指定可执行文件和快捷方式路径才能运行应用程序。如果用户试图使用部分路径规则来运行应用程序,则将显示“软件受到限制”警告。
许多应用程序使用 %ProgramFiles% 变量来在基于 Windows XP 的计算机的硬盘上安装文件。遗憾的是,某些应用程序经过了硬编码,会将文件复制到 C:\Program Files 子目录,即使当此变量被设置为其他驱动器上的其他目录时也是如此。创建和测试路径规则时请记住此限制。
在路径规则中使用环境变量
您可以将路径规则定义为使用环境变量。由于路径规则在客户端环境中进行评估,因此环境变量允许管理员使规则适合于特定用户的环境。
以下两个示例显示如何将环境变量应用于路径规则的实例。
-
“%UserProfile%”匹配 C:\Documents and Settings\ <User> 以及此目录下的所有子文件夹。
-
“%ProgramFiles%\<Application>” 匹配 C:\Program Files\ <Application> 以及此目录下的所有子文件夹。
注意:环境变量不受访问控制列表 (ACL) 的保护。环境变量有两种类型 User 和 System 。能够启动命令提示符的用户可以将 User 环境变量重新定义到不同的路径。只有 Administrators 组中的用户可以更改 System 环境变量。
虽然以上两个示例非常有用,但您可能需要考虑其他可用环境变量。有关完整列表,请参阅“Command shell overview”,网址为 www.microsoft.com/resources/documentation/windows/xp/all/proddocs/
en-us/ntcmds_shelloverview.mspx。
在路径规则中使用通配符
路径规则中可以使用“?”和“*”通配符。以下示例显示了应用于不同路径规则的通配符:
-
\\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\*.* 匹配特定子目录中的所有应用程序文件。
注册表路径规则
许多应用程序将其安装文件夹或应用程序目录的路径存储在 Microsoft Windows 注册表中。有些应用程序可以安装在文件系统中的任何位置。要找到它们,您可以创建路径规则来查找注册表项。
使用特定文件夹路径(如 C:\Program Files\Microsoft Platform SDK)或环境变量(如 %ProgramFiles%\Microsoft Platform SDK)可能不会很容易地标识这些位置。但是,如果程序将其应用程序目录存储在注册表中,则可以创建一个路径规则,该路径规则将使用注册表中所存储的值,例如:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PlatformSDK\Directories\
Install Dir%
此类路径规则称为注册表路径规则,其格式如下所示:
%<注册表配置单元>\<注册表项名称>\<值名称>%
注意:任何注册表路径规则后缀都不应在规则中的最后一个 % 符号之后紧跟一个 \ 字符。必须完整写出注册表配置单元的名称,缩写无效。
当将默认规则设置为“不允许的”,将设置四个注册表路径规则,以便操作系统能够访问系统文件。创建这些注册表路径规则是为了避免将您自己和所有其他用户锁定在系统之外。这些注册表路径规则被设置为“不受限的”。只有高级用户才可以修改或删除这些规则。注册表路径规则设置如下所示:
-
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot% -
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot%\*.exe -
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot%\System32\*.exe -
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\ProgramFilesDir%
路径规则优先权
如果有多个匹配的路径规则,则最特定的规则优先权最高。以下一组路径按优先权从最高(最特定的匹配)到最低(最一般的匹配)排序:
-
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.1 确定给定应用程序的最佳规则
|
任务 |
推荐规则 |
|---|---|
|
允许或不允许特定程序版本。 |
哈希规则
|
|
标识始终安装在同一位置的程序。 |
带有环境变量的路径规则
|
|
标识可以安装在客户端计算机上的任何位置的程序。 |
注册表路径规则
|
|
标识中央服务器上的一组脚本。 |
路径规则
|
|
标识一组服务器上的一组脚本。例如,DC01、DC02 和 DC03。 |
带有通配符的路径规则
|
|
禁止所有 .vbs 文件,但登录脚本目录中的 .vbs 文件除外。 |
带有通配符的路径规则 *.VBS 设置为“不允许的” \\LOGIN_SRV\Share\*.VBS 设置为“不受限的” |
|
不允许由病毒安装的名称始终为 Flcss.exe 的文件。 |
路径规则 Flcss.exe 设置为“不允许的” |
|
标识一组可以在任何位置运行的脚本。 |
证书规则 使用证书对脚本进行数字签名。 |
|
允许从受信任的 Internet 区域站点安装软件。 |
区域规则 将“受信任的站点”设置为“不受限的”。 |
软件限制策略优先权规则
规则按特定顺序进行评估。与程序匹配程度较高的规则比与同一程序匹配程度较低的规则优先。如果为同一软件建立了两个不同安全级别的相同规则,则安全级别最高的规则优先。例如,如果将两个哈希规则(一个哈希规则的安全级别为“不允许的”,另一个的安全级别为“不受限的”)应用于同一软件程序,则安全级别为“不允许的”的规则优先,程序将不会运行。以下列表定义了规则的优先权顺序(从特定到一般):
-
哈希规则
-
证书规则
-
路径规则
-
区域规则
-
默认规则
软件限制策略选项
本节论述影响软件限制策略的运行方式的各种强制选项。这些选项将改变为经过数字签名的文件强制实施 Microsoft Authenticode® 信任设置的方式。有两个强制选项:“动态链接库 (DLL) 检查”和“跳过管理员”。
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 检查”选项
跳过管理员
您可能想要禁止大多数用户运行某些程序,但允许管理员运行所有这些程序。例如,管理员可能有一台多个用户通过终端服务器连接的共享计算机。管理员可能希望用户只运行计算机上的特定应用程序,但希望本地 Administrators 组中的成员能够运行所有程序。可以使用“跳过管理员”强制选项来实现此功能。
如果软件限制策略是在链接到 Active Directory 中某个对象的 GPO 中创建的,Microsoft 建议您拒绝将 GPO 上的“应用组策略”权限授予 Administrators 组,而不使用“跳过管理员”选项。因为未下载不应用于管理员的 GPO 设置,因此此方法占用的网络带宽较少。
注意:本地安全策略对象中定义的软件限制策略无法筛选用户组,因此需要使用“跳过管理员”选项。
打开“跳过管理员”选项
-
在“强制属性”对话框(如图 6.8 所示)中,选择“除本地管理员以外的所有用户”。
定义可执行文件
下图中的“指派的文件类型属性”对话框列出了软件限制策略控制的文件类型。这些文件类型被视为可执行文件。例如,屏幕保护文件 (.scr) 便被视为可执行文件,因为在 Windows 资源管理器中双击该文件时,它将作为程序加载。
软件限制策略规则只适用于“指派的文件类型属性”对话框中列出的文件类型。如果环境使用要应用规则的文件类型,请将该文件类型添加到列表中。例如,对于 Perl 脚本文件,可以选择将 .pl 以及其他与 Perl 引擎关联的文件类型添加到位于“指派的文件类型属性”对话框中“常规”选项卡下的“指定的文件类型:”列表中。
对于本指南中定义的 GPO 设计,将删除文件类型 .mdb 和 .lnk,并添加 .ocx。下表列出了指派的文件类型。
表 6.2 指派的文件类型
|
文件扩展名 |
描述 |
文件扩展名 |
描述 |
|---|---|---|---|
|
.ade |
Microsoft Access 项目扩展 |
.msc |
Microsoft 通用管理文档 |
|
.adp |
Microsoft Access 项目 |
.msi |
Windows Installer 软件包 |
|
.bas |
Visual Basic 类模块 |
.msp |
Windows Installer 修补程序 |
|
.bat |
批处理文件 |
.mst |
Visual 测试源文件 |
|
.chm |
已编译的 HTML 帮助文件 |
.ocx |
ActiveX 控件 |
|
.cmd |
WindowsNT 命令脚本 |
.pcd |
Photo CD 图像 |
|
.com |
MS-DOS 应用程序 |
.pif |
指向 MS-DOS 程序的快捷方式 |
|
.cpl |
控制面板扩展 |
.reg |
注册表项 |
|
.crt |
安全证书 |
.scr |
屏幕保护程序 |
|
.exe |
应用程序 |
.sct |
Windows 脚本组件 |
|
.hlp |
Windows 帮助文件 |
.shs |
外壳片段对象 |
|
.hta |
HTML 应用程序 |
.url |
Internet 快捷方式(统一资源定位器) |
|
.inf |
安装信息文件 |
.vb |
Visual Basic 文件 |
|
.ins |
Internet 通讯设置 |
.vbe |
VBScript 编码的脚本文件 |
|
.isp |
Internet 通讯设置 |
.vbs |
VBScript 脚本文件 |
|
.js |
JScript 文件 |
.wsc |
Windows 脚本组件 |
|
.jse |
JScript 编码的脚本文件 |
.wsf |
Windows 脚本文件 |
|
.mde |
Microsoft Access MDE 数据库 |
.wsh |
Windows 脚本主机设置文件 |
受信任的发布者
您可以使用“受信任的出版商属性”对话框来配置哪些用户可以选择受信任的发布者。您还可以确定在信任发布者之前执行哪些证书吊销检查(如果存在)。启用证书规则后,软件限制策略将检查证书吊销列表 (CRL),以确保软件的证书和签名有效。但是,此过程可能造成签名程序启动时系统性能下降。
使用下图中显示的“受信任的出版商属性”对话框中“常规”选项卡上的选项,您可以配置与 ActiveX 控件以及其他签名内容相关的设置。
下表显示了与 ActiveX 控件以及其他签名内容相关的受信任发布者选项。
表 6.3 受信任发布者的任务和设置
|
设置名称 |
任务 |
|---|---|
|
企业管理员 |
用于仅允许企业管理员进行有关签名活动内容的决策。 |
|
本地管理员 |
用于允许本地计算机管理员进行有关签名活动内容的所有决策。 |
|
最终用户 |
用于允许用户进行有关签名活动内容的决策。 |
|
出版商 |
用于确保软件发布者使用的证书未被吊销。 |
|
时间戳 |
用于确保组织用于对活动内容加时间戳的证书未被吊销。 |
软件限制策略的设计和部署
本节介绍如何使用组策略管理单元来管理软件限制策略,首次编辑策略时的注意事项,以及如何将软件限制策略应用于用户组。此外,还论述了在部署软件限制策略时要考虑的各种问题。
与组策略集成
您可以对一组客户端计算机以及登录到计算机的所有用户使用组策略管理单元来管理软件限制策略。该策略会应用于本指南中定义的桌面计算机 OU 和便携式计算机 OU。
域
管理员应为软件限制策略创建一个单独的 GPO。此方法提供一种方式来在发生异常问题时禁用组策略,而不破坏应用到对象的其他策略。
本地
应该按照本指南的第 5 章“确保独立 Windows XP 客户端的安全”所述为您的环境中的独立客户端计算机配置本地策略。
设计策略
本节介绍在设计和部署软件限制策略时要遵循的步骤。策略设计需要作出几项决策,下表将对此进行详细说明。
表 6.4 重要策略设计注意事项
|
决策 |
要考虑的因素 |
|---|---|
|
便携式计算机或工作站 |
考虑环境中移动用户的需求,以便确定便携式计算机是否需要与桌面计算机不同的策略。便携式计算机通常比桌面计算机需要更大的灵活性。 |
|
服务器共享、登录脚本和主驱动器 |
您需要为从服务器共享目录或主目录启动的任何应用程序定义一个路径规则。您可以向路径规则添加登录脚本文件。如果脚本调用任何其他脚本,还应向路径规则中添加可执行文件的位置。 |
|
GPO 或本地安全策略 |
在本指南中,GPO 用于设计。然而,您应该考虑本地策略对设计产生的影响。 |
|
用户或计算机策略 |
此设计适用于计算机级的所有设置。 |
|
默认安全级别 |
建议将默认设置配置为“不允许的”,然后相应地配置策略的其余部分。也可以使用默认设置“不受限的”。 |
|
其他规则 |
使用默认策略“不允许的”时,需要根据需要应用其他操作系统路径规则。在“不允许的”配置中,自动创建了四个规则。 |
|
策略选项 |
如果您使用本地安全策略,并且不希望该策略应用于环境中客户端计算机上的管理员,请选择策略强制选项“跳过管理员”。 如果要检查 DLL 以及可执行文件和脚本,请选择策略强制选项“DLL 检查”。 如果要为指派的文件类型默认列表以外的文件类型建立规则,请使用该选项,根据需要将这些文件类型添加到“指派的文件类型属性”对话框中。 如果要更改可以对有关能否下载 ActiveX 控件和其他签名内容作出决策的用户,请选择“受信任的出版商属性”对话框中“常规”选项卡下的“出版商”的复选框。 |
|
将策略应用于站点、域或 OU |
该决策将驻留在桌面计算机和便携式计算机所在的 OU 之下。 |
注意:虽然本指南建议在计算机级别强制实施软件限制策略,但是许多情况下,在用户级别强制实施将更有意义。例如,拥有共享计算机(例如终端服务器应用程序服务器)或呼叫中心工作站的组织可能希望允许特定用户运行一套应用程序,但禁止所有其他用户访问。
最佳做法
Microsoft 建议为软件限制策略创建一个单独的 GPO,以便在紧急情况下需要禁用该策略时,它不会影响域策略或本地策略的其余部分。
此外,如果您在 OU 的设计阶段使用软件限制策略意外地锁定了工作站,则可以在“安全模式”下重新启动计算机,并以本地管理员的身份登录,然后修改该策略。在“安全模式”下启动 Windows 时将不应用软件限制策略。在“安全模式”下启动计算机后,请运行 Gpupdate.exe,然后重新启动计算机。
为了获得最大的安全性,请将 ACL 与软件限制策略配合使用,并且不要授予用户管理特权。用户可能尝试重命名或移动不允许的文件,或覆盖不受限的文件来规避软件限制策略。请使用 ACL 拒绝向用户授予执行这些操作的访问权限。属于本地 Administrators 组的成员的用户能够绕过您的软件限制策略实施;因此,Microsoft 建议在可行的情况下不向用户授予管理特权。
登录脚本通常位于域控制器或中央服务器上的 SYSVOL 下。域控制器通常会随每次登录而更改。如果默认规则设置为“不允许的”,请确保创建用于标识登录脚本位置的规则。如果登录服务器具有相似的名称,可考虑使用通配符来查找它们,或使用具有不受限设置的登录脚本名称。
注意:在将新的软件限制策略设置应用于域之前,应在整个测试环境中对其进行测试。新策略设置的行为可能与最初的预计行为不符。彻底测试可以减少在网络中部署软件限制策略设置时遇到问题的几率。
过程演练
以下信息将指导您完成设计软件限制策略,并将其作为 GPO 应用于环境中的便携式计算机和桌面计算机的全部过程。
步骤 1:为 OU 创建 GPO
找到为环境中的桌面计算机或便携式计算机创建的 OU。如果在独立客户端计算机上工作,则策略设置位于本地计算机策略中。在此策略中,单击“属性”,然后新建一个 GPO。根据组织的命名约定来命名策略。记住,此策略将只用于强制实施软件限制。
步骤 2:设置软件限制策略
突出显示该 GPO,然后单击“编辑”。遍历该树,直到找到“Windows 设置\安全设置\软件限制策略”。首次编辑该策略时,您将看到下列消息:
未定义软件安全策略。
此消息警告您创建策略时将定义默认值。这些默认值可能覆盖其他软件限制策略中的策略设置。由于尚未设置软件限制策略设置,因此将使用默认设置启动。右键单击“操作”菜单,然后选择“新建软件限制策略”。
步骤 3:设置路径规则
确定了工作站将使用的应用程序和脚本后,便可以设置路径规则。某些程序将启动其他程序来执行任务,环境中的软件应用程序可能依赖于支持其他程序的一个或多个程序。有关当前安装的软件的清单和安装文档对于跟踪路径规则非常有用。工作站设计示例可能包括下列规则:
-
Applications = *\Program Files
-
Shared Group Applications= g:\Group Applications
-
Logon script = Logon.bat
-
Desktop Shortcuts = *.lnk
-
Approved VBS Scripts =*.vbs
步骤 4:设置策略选项
下列选项包括本指南中定义的设计的策略设置建议。这些选项将改变数字签名文件的强制行为范围或 Authenticode 信任设置。
-
强制。如果计算机是域的组成部分,请确保 Domain Admins 组被自动添加到 Administrators 组。
-
应用于用户。包括所有用户(除本地管理员之外)。使用此选项将延迟每个应用程序的启动。为弥补此延迟,此设计将策略配置为不检查 DLL。
-
应用于文件。包括除库(如 DLL)以外的所有软件文件。使用此选项将延迟每个应用程序的启动。为弥补此延迟,此设计将策略配置为不检查 DLL。
-
指派的文件类型。对于本指南中定义的 GPO 设计,向列表中添加了 ocx 文件,删除了 .mdb 和 .lnk 文件类型。您可以根据需要添加自定义应用程序文件类型扩展,以使其遵守相同的规则。
-
受信任的发布者。对于本指南中定义的 GPO 设计,启用了 Administrators 组,并选择了“受信任的出版商属性:本地管理员”选项。
信任发布者之前,在设计 GPO 时选择“检查:发布者”选项,以确保该策略将验证证书。
步骤 5:应用默认设置
最好将策略配置为默认设置“不受限的”。此方法可以确保在应用软件限制之前正确初始化了该策略。检查策略设置之后,将默认设置重新设置为“不允许的”。
步骤 6:测试策略
如果计算机是域的一部分,请将该计算机移到应用该策略的 OU 容器中。重新启动测试计算机,然后登录到该计算机。测试计划应说明在应用策略后每个应用程序的运行方式。运行应用程序,以确保它们能够完全正常运行,并确保您能够访问它们的所有功能。验证应用程序的功能后,针对这些应用程序进行一次模拟攻击,以确保该策略没有安全漏洞。
如果计算机是独立客户端,请登录到测试计算机并执行测试计划。验证应用程序后,请再次启动模拟攻击,以确保该策略没有安全漏洞。
部署软件限制策略
全面测试该策略后,请将其应用于环境中的桌面计算机 OU 或便携式计算机 OU。如果它是独立客户端计算机,请将其应用于客户端上的本地计算机设置。打开 MMC 计算机和用户管理单元并遍历该目录,直到您找到桌面计算机或便携式计算机的 OU 容器。然后,使用组策略对象编辑器创建新 GPO。编辑属性,并基于下表中的信息将适当的策略设置应用于“Windows 设置\安全设置”下的“软件限制策略”。
表 6.5 安全级别
|
用户界面中的默认规则 |
描述 |
设置 |
|---|---|---|
|
不允许的 |
软件不会运行,无论用户拥有哪些访问权限。 |
使用此默认规则 |
表 6.6 其他规则
|
路径规则 |
设置 |
|---|---|
|
%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% |
不受限的 |
|
*.vbs |
不允许的 |
|
G:\Group Applications |
不受限的 |
|
Logon.bat 或登录脚本 |
不受限的 |
|
*\Program Files |
不受限的 |
表 6.7 对文件和用户强制实施
|
强制选项 |
建议 |
|---|---|
|
应用软件限制策略到下列: |
除 DLL 以外的所有软件文件。 |
|
将软件限制策略应用到下列用户: |
除本地管理员以外的所有用户。 |
表 6.8 指派的文件类型
|
文件类型 |
建议 |
|---|---|
|
指派的文件类型属性 |
删除 .mdb 和 .lnk 文件类型并添加 .ocx。 |
表 6.9 受信任的发布者
|
受信任的发布者 |
建议 |
|---|---|
|
允许下列用户组选择受信任的发布者: |
本地计算机管理员 |
|
确定证书是否已被吊销。 |
选择“出版商”选项。 |
总结
软件限制策略向管理员提供了一种有效的方式来标识和控制运行 Windows XP Professional 的计算机上的软件。您可以创建策略来阻止恶意脚本、以各种方式锁定计算机,并防止应用程序运行。在企业组织中,最佳做法是通过 GPO 来管理软件限制策略,并自定义每个策略以满足不同用户组和计算机的需要。Microsoft 建议不要尝试在独立环境中管理用户组。
正确应用时,软件限制策略可提高您的组织中的计算机的完整性和可管理性,从而最终降低那些计算机的操作系统的拥有和维护成本。
更多信息
以下链接提供有关 Windows XP Professional 安全相关主题的附加信息。
-
有关软件限制策略的详细信息,请参阅“Using Software Restriction Policies to Protect Against Unauthorized Software”,网址为 www.microsoft.com/technet/prodtechnol/winxppro/maintain/rstrplcy.mspx。
-
有关组策略的详细信息,请参阅“Windows 2000 Group Policy”,网址为 www.microsoft.com/windows2000/techinfo/howitworks/management/grouppolwp.asp。











下载《Windows XP 安全指南》