组策略——软件限制策略导读实际上,本教程主要为以下内容: 理论部分:1. 软件限制策略的路径规则的优先级问题2. 在路径规则中如何使用通配符3. 规则的权限继承问题4. 软件限制策略如何实现3D部署(难点是NTFS权限),软件限制策略的精髓在于权限, 如何部署策略也就是如何设置权限 规则部分:5. 如何用软件限制策略防毒(也就是如何写规则)6. 规则的示例与下载理论部分软件限制策略包括证书规则、散列规则、 Internet 区域规则和路径规则 我们主要用到 的是散列规则和路径规则,其中灵活性最好的就是路径规则了,所以一般我们谈到的策 略规则,若没有特别说明,则直接指路径规则一. 环境变量、通配符和优先级关于环境变量 (假定系统盘为 C 盘)%USERPROFILE%表示 当前用户名%HOMEPAT!表示 当前用户名%ALLUSERSPROFILE%?示 C:\Docume nts and Setti ngs\AII Users %ComSpec% 表示 C:\WINDOWS\System32\%APPDATA%??示 当前用户名 \Application Data%ALLAPPDATA%表?示 C:\Docume nts and Setti ngs\AII Users\Application Data %SYSTEMDRIV 表示 C:%HOMEDRIVE表示 C:%SYSTEMROOT(表?示 C:\WINDOWS%WINDIR% 表示 C:\WINDOWS%TEMP和 %TMP%?表示 当前用户名 \LocaISettings\Temp%ProgramFiIes% 表示 C:\Program FiIes%CommonProgramFiIes% 表示 C:\Program FiIes\Common FiIes关于通配符:Win dows里面默认* :任意个字符(包括 0 个),但不包括斜杠:1个或 0个字符几个例子*\Windows 匹配 C:\Windows 、D:\Windows、E:\Windows 以及每个目录下的所有子文件 夹。
C:\win* 匹配 C:\winnt 、C:\windows 、C:\w i n d i r 以及每个目录下的所有子文件夹vbs 匹配 Windows XP Professional 中具有此扩展名的任何应用程序 C:\Application Files\*.* 匹配特定目录( Application Files )中的应用程序文件,但不包括 Application Files 的子目录关于优先级 :1. 绝对路径 > 通配符相对路径 如 C:\Windows\ > *\Windows\2. 文件型规则 > 目录型规则如若在 Windows目录中,那么 > C:\Windows3. 环境变量 = 相应的实际路径 = 注册表键值路径如 %ProgramFiles% = C:\Program Files = %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDi r%4. 散列规则比任何路径规则优先级都高总的来说,就是规则越匹配越优先注:1. 通配符*并不包括斜杠 例如*\WINDOWS匹配C:\Windows,但不匹配C:\Sandbox\WINDOWS2. * 和 ** 是完全等效的,例如 **\**\abc = *\*\abc3. C:\abc\* 可以直接写为 C:\abc\ 或者 C:\abc ,最后的 * 是可以省去的,因为 软件限制策略的规则可以直接匹配到目录。
4. 软件限制策略只对“指派的文件类型”列表中的格式起效例如 *.txt 不允许的,这样的规则实际上无效,除非你把 TXT格式也加入“指派的文件类型”列表中5. *和**是有区别的,后者要求文件名或路径必须含有“ • ”,而前者没有此限制,因此,**的优先级比*的高6. :\* 与:\** 是截然不同的,前者是指所有分区下的每个目录下的所有子文件夹,简单说,就是整个硬盘;而:\*.* 仅包括所有分区下的带“ 的文件或目录,一般情况下,指的就是各盘根目录下的文件那非一般情况是什么呢请参考第 7点7. :\*.* 中的”可能使规则范围不限于根目录这里需要注意的是:有“.”的不一定是文件,可以是文件夹例如 ,一样符合:\*.* ,所以规则对 下的所有文件及子目录都生效8. 这是很多人写规则时的误区首先引用《组策略软件限制策略规则包编写之菜鸟入门 (修正版)》里的一段:引用:4、如何保护上网的安全在浏览不安全的网页时,病毒会首先下载到IE缓存以及系统临时文件夹中,并自动运行, 造成系统染毒,在了解了这个感染途径之后,我们可以利用软件限制策略进行封堵 %SYSTEMROOT%\tasks\**\**不允许的(这个是计划任务,病毒藏身地之一) %SYSTEMROOT%\Temp\**\* 不允许的%USERPROFILE%\Cookies\**不允许的%USERPROFILE%\Local Settings\**\** 不允许的 (这个是IE缓存、历史记录、临时文件所在位置)说实话,上面引用的部分不少地方都是错误的先不谈这样的规则能否保护上网安全,实际上这几条规则在设置时就犯了一些错误例如:%USERPROFILE%\Local Settings\**\** 不允许的可以看出,规则的 原意是阻止程序从Local Settings (包括所有子目录)中启动现在大家不妨想想这规则的实际作用是什么?先参考注1和注2, **和*是等同的,而且不包含字符“ ”。
所以,这里规则的实际效 果是“禁止程序从Local Settings文件夹的一级子目录中启动”,不包括Local Settings 根目录,也不包括二级和以下的子目录现在我们再来看看 Local Setti ngs 的一级子目录有哪些:Temp Temporary In ternet Files、Application Data 、History阻止程序从Temp根目录启动,直接的后果就是很多软件不能成功安装那么,阻止程序从 Temporary In ternet Files 根目录启动又如何呢?实际上,由于IE的缓存并不是存放Temporary In ternet Files 根目录中,而是存于Temporary In ternet Files的子目录的子目录里(-_-|| ),所以这种写法根本不能阻止 程序从IE缓存中启动,是没有意义的规则若要阻止程序从某个文件夹及所有子目录中启动,正确的写法应该是:某目录\**某目录\* 某目录\ 某目录9.引用::\不允许的这是流传的所谓防U盘病毒规则,事实上这条规则是没有作用的,关于这点在 已经作 了分析二. 软件限制策略的3D的实现:“软件限制策略本身即实现 AD,并通过NTFS权限实现FD,同时通过注册表权限实现 RD, 从而完成3D的部署”对于软件限制策略的AD限制,是由权限指派来完成的,而这个权限的指派,用的是微软 内置的规则,即使我们修改“用户权限指派”项的内容,也无法对软件限制策略中的安 全等级进行提权。
所以,只要选择好安全等级, AD部分就已经部署好了,不能再作干预 而软件件限制策略的FD和RD限制,分别由NTFSR限、注册表权限来完成而与 AD部 分不同的是,这样限制是可以干预的,也就是说, 我们可以通过调整NTFS和注册表权限来配置FD和RD这就比AD部分要灵活得多小结一下,就是AD用户权利指派FDNTFS权限RD注册表权限先说 AD部分,我们能选择的就是采用哪种权限等级,微软提供了五种等级:不受限的、基本用户、受限的、不信任的、不允许的不受限的,最高的权限等级,但其意义并不是完全的不受限,而是“软件访问权由用户 的访问权来决定”,即继承父进程的权限基本用户,基本用户仅享有“跳过遍历检查”的特权,并拒绝享有管理员的权限受限的,比基本用户限制更多,也仅享有“跳过遍历检查”的特权不信任的,不允许对系统资源、用户资源进行访问,直接的结果就是程序将无法运行不允许的,无条件地阻止程序执行或文件被打开 很容易看出,按权限大小排序为 不受限的 > 基本用户 > 受限的 > 不信任的 > 不允许 的其中,基本用户 、受限的、不信任的 这三个安全等级是要手动打开的具体做法:打开注册表编辑器,展开至 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers 新建一个DOWRD命名为Levels,其值可以为0x10000 不允许的”级别不包含任何 FD操作。
你可以对一个设定成“不允许的”文件进行读取、复制、粘贴、修改、删除等操作,组策略不会阻 止,前提当然是你的用户级别拥有修改该文件的权限2. “不受限的”级别不等于完全不受限制,只是不受软件限制策略的附加限制事实上, “不受限的”程序在启动时,系统将赋予该程序的父进程的权限字,该程序所获得的访 问令牌决定于其父进程,所以任何程序的权限将不会超过它的父进程权限的分配与继承 :这里的讲解默认了一个前提:假设你的用户类型是管理员在没有软件限制策略的情况下,很简单,如果程序a启动程序b,那么a是b的父进程,b继承a的权限现在把a设为基本用户,b不做限制(把b设为不受限或者不对b设置规则效果是一样的) 然后由a启动b,那么b的权限继承于a,也是基本用户,即:a (基本用户)-> b (不受限的)=b (基本用户)若把b设为基本用户,a不做限制,那么a启动b后,b仍然为基本用户权限,即a (不受限的)-> b (基本用户)=b (基本用户)可以看到,一个程序所能获得的最终权限取决于:父进程权限 和 规则限定的权限 的最 低等级,也就是我们所说的最低权限原则举一个例:若我们把 IE 设成基本用户等级启动,那么由 IE 执行的任何程序的权限都将不高于基本 用户级别,只能更低。
所以就可以达到防范网马的效果——即使 IE 下载病毒并执行了, 病毒由于权限的限制,无法对系统进行有害的更改,如果重启一下,那么病毒就只剩下 尸体了甚至,我们还可以通过 NTFS权限的设置,让IE无法下载和运行病毒,不给病毒任何的 机会FD NTFS权限*要求磁盘分区为NTFS格式*其实Microsoft Windows的每个新版本都对NTFS文件系统进行了改进NTFS的默认权 限对大多数组织而言都已够用NTFS权限的分配1. 如果一个用户属于多个组,那么该用户所获得的权限是各个组的叠加2. “拒绝”的优先级比“允许”要高例如:用户A同时属于 Administrators 和Everyone组,若Administrators 组具有完全 访问权,但Everyone组拒绝对目录的写入,那么用户A的实际权限是:不能对目录写入, 但可以进行除此之外的任何操作高级权限名称描述(包括了完整的FD和部分AD引用:遍历文件夹/运行文件 (遍历文件夹可以不管,主要是“运行文件”,若无此权限则不能启动文件,相当于AD的运行应用程序)允许或拒绝用户在整个文件夹中移动以到达其他文件或文件夹的请求,即使用户没有遍 历文件夹的权限(仅适用于文件夹)。
列出文件夹/读取数据允许或拒绝用户查看指定文件。