组策略管理——软件限制策略

 
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://marui.blog.51cto.com/1034148/344446
在系统安全方面,有人曾说,如果把 HIPS (Host-based Intrusion Prevention System ,基于主机的***防御系统)用的很好,就可以告别杀毒软件了。其实,在 Windows 中,如果能将组策略中的“软件限制策略”使用的很好,再结合 NTFS 权限和注册表权限限制,依然可以很淡定的告别杀软。
另一方面,由于组策略是原生于系统之上的,可能在底层与操作系统无缝结合,于是不会产生各种兼容性问题或者产生 CPU 占用过高、内存消耗太大等问题。从这一点来看,组策略中的“软件限制策略”才算是最好的系统管理利器。
当然,对于大多数用户来说,使用组策略来配置“软件管理策略”未免显得太过于繁杂专业,不得不承认的是,组策略的设计并没有为了最终用户体验而进行过优化的,相比其他 HIPS 软件,它在智能与灵活性上稍显不足。
注:本文实现环境基于 Windows 7 Ultimate x64 版本
软件限制策略的基本概念
“软件限制策略”,目的是通过标识或指定应用程序,实现控制应用程序运行的功能,使得计算机环境免受不可信任的代码的侵扰。通过制定散列规则、证书规则、路径规则和网络区域规则,则可使得程序可以在策略中得到标识,其中,路径规则在配置和应用中显得更加灵活。在默认情况下,软件可以运行在“不受限”与“不允许”这两个级别上。
启用软件限制策略
在默认情况下,组策略中的“软件限制策略”是处在关闭状态的。通过以下步骤我们来启用它:
● 打开组策略编辑器:gpedit.msc
● 将树目录定位至:计算机配置 -> Windows 设置 -> 安全设置 -> 软件限制策略
● 在“软件限制策略”上点击右键,点选“创建软件限制策略”
创建成功之后,组策略编辑窗口中会显示相关配置条目:
什么是“安全级别”?
安全级别
在默认情况下,系统默认为我们提供了三个安全级别:“不允许”、“基本用户”以及“不受限”。
不允许 不允许软件运行。
此级别不包含任何文件保护操作。只要用户的具有修改该文件的权限,即可对一个设定成“不允许”的文件进行读取、复制、粘贴、修改、删除等操作,组策略不会进行阻止。
不受限:允许软件在登录到计算机的用户的完全权限下运行。
此级别不等于完全不受限制,只是不受软件限制策略的附加限制。事实上,“不受限的”程序在启动时,系统将赋予该程序的父进程的权限,该程序所获得的访问令牌决定于其父进程,所以任何程序的权限将不会超过它的父进程。
基本用户:允许程序访问一般用户可以访问的资源,但没有管理员的访问权。
基本用户仅享有“跳过遍历检查”的特权,并拒绝享有管理员的权限。
在高级配置中,还有两个处于隐藏状态的安全级别供用户选择,我们可以通过修改注册表进行启用:
● 打开注册表编辑器:regedit.exe
● 定位注册表位置至:
 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers
● 新建名为 Levels 的 DOWRD 项,其值为十六进制的 0x4131000(十进制为:1094791424)
注册表项创建完毕后重新打开组策略编辑器,可以看到另外两个级别此时已经显示出来了。
 受限 :无论用户的访问权如何,软件都无法访问某些资源,如加密密钥和凭据。
比基本用户限制更多,但也享有“跳过遍历检查”的特权。
不信任 :允许程序访问只对众所周知的组授权的资源,不允许访问管理员特权和个人授予的权利。
不允许对系统资源、用户资源进行访问,直接的结果就是程序将无法运行。
根据权限限制程度,对所有安全级别进行排序的顺序依次为:
 
        
不受限 > 基本用户 > 受限 > 不信任 > 不允许
 
 
软件限制策略采取的规则
在组策略“软件限制策略”条目下,除了“安全级别”,还有一项目录称作“其他规则”。在对软件进行限制时,就需要使用“规则”来对软件进行标识。
右键单击“其他规则”,用户可根据不同的需要创建不同种类规则,分别有:证书规则、哈希规则、网络区域规则以及路径规则。
证书规则
软件限制策略可以通过其 签名证书来标识文件。证书规则不能应用到带有 .exe 或 .dll 扩展名的文件。它们可以应用到脚本和 Windows 安装程序包。可以创建标识软件的证书,然后根据安全级别的设置,决定是否允许软件运行。
路径规则
路径规则通过程序的文件路径对其进行标识。由于此规则按路径指定,所以程序发生移动后路径规则将失效。路径规则中可以使用诸如 %programfiles% 或 %systemroot% 之类环境变量。路径规则也支持通配符,所支持的通配符为 * 和 ?。相对其他规则而言,此规则设置更为灵活方便。
散列规则
散列是唯一标识程序或文件的一系列定长字节。散列按散列算法算出来。软件限制策略可以用 SHA-1(安全散列算法)和 MD5 散列算法根据文件的散列对其进行标识。重命名的文件或移动到其他文件夹的文件将产生同样的散列。
例如,可以创建散列规则并将安全级别设为“不允许的”以防止用户运行某些文件。文件可以被重命名或移到其他位置并且仍然产生相同的散列。但是,对文件的任何篡改都将更改其散列值并允许其绕过限制。软件限制策略将只识别那些已用软件限制策略计算过的散列。
网络区域规则
区域规则只适用于 Windows 安装程序包。区域规则可以标识那些来自 Internet Explorer 指定区域的软件。这些区域是 Internet、本地计算机、本地 Intranet、受限站点和可信站点。 
软件限制策略规则的优先权
对同一个软件可以应用几个软件限制策略规则。这些规则将以下列优先权顺序应用(从高到低):
 哈希规则 > 证书规则 > 路径规则 > 网络区域规则
例如,如果某个软件程序所驻留的文件夹被指派了具有“不允许的”安全级别的路径规则,则在为该程序创建了具有“不受限的”安全级别的哈希规则后,该程序将能运行。哈希规则优先于路径规则。
如果对同一对象应用了两个路径规则,则两者中更为具体的规则将具有优先权。例如,如果 C:\Windows\ 有一个具有“不允许的”安全级别的路径规则,而 C:\Windows\System32\ 有另一个具有“不受限的”安全级别的路径规则,则更为具体的路径规则将获得优先权。因此,C:\Windows\ 中的软件程序无法运行,而C:\Windows\System32\ 中的程序将运行。
如果对软件应用了两个仅在安全级别方面不同的规则,则更为保守的规则将获得优先权。例如,如果有两个哈希规则,一个具有“不允许的”的安全级别,一个具有“不受限的”的安全级别,当它们应用于同一软件程序时,具有“不允许的”安全级别的规则将获得优先权,因此该程序将不运行。
另外,对于路径规则,总的原则就是:规则越匹配越优先。
例如按照优先级从高到低排列:
 C:\Windows\System32\Taskmgr.exe
C:\Windows\System32\*.exe
*.exe
C:\Windows\System32\
C:\Windows\
在路径规则中,即有如下特征:
 
 
 绝对路径 > 通配符路径
文件名规则 > 目录规则
 
对于同样是目录规则的,则目录数匹配越多就越优先。
指定文件类型
在组策略中对软件的限制,其作用范围仅限于已被指定的文件类型。在“软件限制策略”根目录树下可以看到“指定的文件类型”策略条目。该条目允许我们自定义软件限制策略的作用范围。
默认情况下列表中的文件类型包括:
ADE ADP BAS BAT CHM CMD COM CPL CRT EXE HLP HTA INF INS ISP LNK MDB MDE MSC MSI MSP MST OCX PCD PIF REG SCR SHS URL VB WSC
因此,对于正常的非可执行的文件,例如 TXT JPG GIF 这些是不受影响的,如果用户认为还有哪些扩展的文件有威胁,也可以将其扩展加入这里,或者是认为哪些扩展无威胁,也可以将其删除。