Google
      
发新话题
打印

组策略软件限制策略规则包编写之菜鸟入门

组策略软件限制策略规则包编写之菜鸟入门




HIPS区资源索引-介绍下载、教程规则、问题解答合集[2008.8. 6 00:01]
http://bbs.kafan.cn/viewthread.php?tid=280737



考虑到可能有些初学者不太理解,今天花了一下午时间,重新精简编辑了我自己的规则,以适合普通用户直接套用,并附带了详细的编写原理、注意事项等,希望借此抛砖引玉,使各位潜水的高手也能将自己的规则分享出来讨论,也希望初学者可以DIY出适合自己的规则。

非常欢迎大家将自己的规则拿出来讨论,以使此规则不断进步和完善,成为传统安全软件有力的辅助和补充。好了,废话说了一大堆,下面进入正文:

一、软件限制策略的作用
首先说一下HIPS的3D
AD——程序保护    保护应用程序不被恶意修改、删除、注入
FD——文件保护    保护关键的文件不被恶意修改、删除,禁止恶意程序创建和读取文件
RD——注册表保护    保护注册表关键位置不被恶意修改、读取、删除
XP系统软件限制策略可以做到上面的AD与FD,至于RD,可以通过注册表权限设置来实现
因此可以说,XP本身就具备3D功能,只是不被大家所熟悉。

二、软件限制策略的优劣势
1、优势
优势是很明显的,它是系统的一部分,不存在兼容性问题,不占用内存,属于系统最底层保护,保护能力远不是HIPS可以比拟的
2、劣势
劣势也很明显,与HIPS相比,它不够灵活和智能,不存在学习模式,它只会默认阻止或放行,不会询问用户,若规则设置不当,可能导致某些程序不能运行

三、软件限制策略 规则编写实例
我直接以一些最常见的例子来说明
1、首先要学会系统通配符、环境变量的含义,以及软件限制策略规则的优先级
关于这一点,大家可以看原帖
http://bbs.ylmf.com/read.php?fid=10&tid=435857&u=379569

2、如何阻止恶意程序运行
首先要注意,恶意程序一般会藏身在什么地方
?:\  分区根目录
C:\WINDOWS    (后面讲解一律以系统在C盘为例)
C:\WINDOWS\system32
C:\Documents and Settings\Administrator
C:\Documents and Settings\Administrator\Application Data
C:\Documents and Settings\All Users
C:\Documents and Settings\All Users\Application Data
C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
C:\Documents and Settings\All Users\「开始」菜单\程序\启动
C:\Program Files
C:\Program Files\Common Files

注意:
C:\Documents and Settings\Administrator
C:\Documents and Settings\Administrator\Application Data
C:\Documents and Settings\All Users
C:\Documents and Settings\All Users\Application Data
C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
C:\Documents and Settings\All Users\「开始」菜单\程序\启动
C:\Program Files
C:\Program Files\Common Files
这8个路径下是没有可执行文件的,只有在它们的子目录下才有可能存在可执行文件,那么基于这一点,规则就容易写了
%ALLAPPDATA%\*.*    不允许的
%ALLUSERSPROFILE%\*.*    不允许的
%ALLUSERPROFILE%\「开始」菜单\程序\启动\*.*    不允许的
%APPDATA%\*.*    不允许的
%USERSPROFILE%\*.*
%USERPROFILE%\「开始」菜单\程序\启动\*.*    不允许的
%ProgramFiles%\*.*    不允许的
%CommonProgramFiles%\*.*    不允许的

那么对于
C:\WINDOWS      C:\WINDOWS\system32    这两个路径的规则怎么写呢?
C:\WINDOWS下只有explorer.exe、notepad.exe、摄像头程序、声卡管理程序是需要运行的,而其他都不需要运行
则其规则可以这样写:
%SYSTEMROOT%\*.*    不允许的    (首先禁止C:\WINDOWS下运行可执行文件)
C:\WINDOWS\explorer.exe    不受限的  
C:\WINDOWS\notepad.exe    不受限的  
C:\WINDOWS\amcap.exe      不受限的
C:\WINDOWS\RTHDCPL.EXE    不受限的
(然后利用绝对路径优先级大于通配符路径的原则,设置上述几个排除规则,则,在C:\WINDOWS下,除了explorer.exe、notepad.exe、摄像头程序、声卡管理程序可以运行外,其他所有的可执行文件均不可运行)

对于C:\WINDOWS\system32就不能像上面那样写规则了,在SYSTEM32下面很多系统必须的可执行文件,如果一个一个排除,那太累了。所以,对system32,我们只要对它的子文件作一些限制,并对系统关键进程进行保护
子文件夹的限制
%SYSTEMROOT%\system32\config\**\*.*      不允许的
%SYSTEMROOT%\system32\drivers\**\*.*    不允许的
%SYSTEMROOT%\system32\spool\**\*.*      不允许的
当然你可以限制更多的子文件夹

3、如何保护system32下的系统关键进程
有些进程是系统启动时必须加载的,你不能阻止它的运行,但这些进程又常常被恶意软件仿冒,怎么办?其实很简单,这些仿冒的进程,其路径不可能出现在system32下,因为它们不可能替换这些核心文件,它们往往出现在其他的路径中。那么我们可以这样应对:
C:\WINDOWS\system32\csrss.exe      不受限的
C:\WINDOWS\system32\ctfmon.exe    不受限的
C:\WINDOWS\system32\lsass.exe      不受限的
C:\WINDOWS\system32\rundll32.exe    不受限的
C:\WINDOWS\system32\services.exe  不受限的
C:\WINDOWS\system32\smss.exe    不受限的
C:\WINDOWS\system32\spoolsv.exe    不受限的
C:\WINDOWS\system32\svchost.exe      不受限的
C:\WINDOWS\system32\winlogon.exe    不受限的

先完全允许正常路径下这些进程,再屏蔽掉其他路径下仿冒进程
csrss.*      不允许的  (.*  表示任意后缀名,这样就涵盖了  bat  com  等等可执行的后缀)
ctfm?n.*  不允许的
lass.*      不允许的
lssas.*      不允许的
rund*.*        不允许的
services.*      不允许的
smss.*      不允许的
sp???sv.*      不允许的
s??h?st.*      不允许的
s?vch?st.*    不允许的
win??g?n.*    不允许的

4、如何保护上网的安全
在浏览不安全的网页时,病毒会首先下载到IE缓存以及系统临时文件夹中,并自动运行,造成系统染毒,在了解了这个感染途径之后,我们可以利用软件限制策略进行封堵
%SYSTEMROOT%\tasks\**\*.*    不允许的    (这个是计划任务,病毒藏身地之一)
%SYSTEMROOT%\Temp\**\*.*    不允许的
%USERPROFILE%\Cookies\*.*    不允许的
%USERPROFILE%\Local Settings\**\*.*    不允许的  (这个是IE缓存、历史记录、临时文件所在位置)
另外可以免疫一些常见的流氓软件
3721.*    不允许的
CNNIC.*    不允许的
*Bar.*    不允许的
等等,不赘述,大家可以自己添加
注意,*.* 这个格式只会阻止可执行文件,而不会阻止 .txt  .jpg 等等文件
另外演示两条禁止从回收站和备份文件夹执行文件的规则
?:\Recycler\**\*.*    不允许的
?:\System Volume Information\**\*.*    不允许的

5、如何防止U盘病毒的入侵
这个简单,两条规则就可以彻底搞定
?:\autorun.inf      不允许的
?:\*.*          不允许的

6、预防双后缀名的典型恶意软件
许多恶意软件,他有双后缀,比如 mm.jpg.exe
由于很多人默认不显示后缀名,所以你看到的文件名是  mm.jpg
对于这类恶意,我本来想以一条规则彻底免疫
*.*.*  不允许的
可是这样做了之后,却发现我的ACDSee 3.1 无法运行
于是改成
*.???.bat    不允许的
*.???.cmd    不允许的
*.???.com      不允许的
*.???.exe  不允许的
*.???.pif    不允许的
这样5条规则,ACDSEE没有问题了。我现在还没搞清楚,我的ACDSEE并没有双后缀,为何不能运行

7、其他规则
注意  %USERPROFILE%\Local Settings\**\*.*  这条规则设置后,禁止了从临时文件夹执行文件,那么一些自解压的单文件就无法运行了,因为这类文件是首先解压到临时文件夹,然后从临时文件夹运行的。如果你的电脑中有自解压的单文件,那么,删除这条规则,增加3条:
%USERPROFILE%\Local Settings\Application Data\**\*.*      不允许的
%USERPROFILE%\Local Settings\History\**\*.*          不允许的
%USERPROFILE%\Local Settings\Temporary Internet Files\**\*.*      不允许的

威金的预防,很简单三条
logo?.*        不允许的
logo??.*        不允许的
_desktop.ini  不允许的
小浩病毒的预防
xiaohao.exe      不允许的
禁止conimi.exe进程
c?nime.*    不允许的
禁止QQ自动更新
QQUpdateCenter.exe    不允许的
TIMPlatform.exe      不允许的
禁止遨游自动更新
maxupdate.exe    不允许的
禁止小红伞C版的广告
avnotify.exe      不允许的
………………………………

就不一一列举了
大家根据自己的实际情况来设置吧

最后附上我自己精简后的规则,比较大众化,下载解压后直接运行即可
运行前,先备份C:\WINDOWS\system32\GroupPolicy\Machine\Registry.pol  这个文件
如果导入规则出现不良反应,可以用原文件替换回去
有兴趣的朋友可以深入研究,不良反应究竟是触发了哪一条规则,如何设置能达到最佳效果
附带啰嗦一句,现在很多病毒采用劫持IFEO的方法,致使杀毒软件无法启动。解决方法如下:
打开注册表编辑器,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
右击——权限,取消所有用户的写入、修改权限,仅保留读取和删除权限

规则导入完成之后,利用NTFS格式的安全设定,设置Registry.pol 的权限,取消所有用户的修改、写入和删除权限,这样恶意软件便不能修改或删除这个规则了(磁碟机病毒可以删除组策略,有了这个呵呵就安全了,哈哈!)

同理,可以利用NTFS的权限设置,保护任意文件不被修改和删除,和软件限制策略相辅相成,达到HIPS的FD功能。
这个是FAT格式无法享有的优越性


注意,上面的规则没有对windows目录进行限制,大家的摄像头和声卡可能都不一样,所以没有办法写出通用的规则,那么大家可以依据我帖子中的方法,对自己的windows目录进行限制,这里是病毒非常喜欢呆的地方。

11月5号
今天将规则包作了一些更新,使之更严密,且不影响正常的使用
规则的每一条都添加了注释
各位可以根据自己的实际情况进行修改
BS 某些以为我抄袭他的人
  我以100K左右的规则包,实现了他200多K规则包的功能,甚至比他更严密,引起嫉妒了

此规则依然没有对%TEMP%  %TMP% 这两个临时文件变量做出限制
仍然是考虑到自解压文件的问题

附件: 您所在的用户组无法下载或查看附件
缘起性空。

TOP

若要卸载规则包,删除C:\WINDOWS\system32\GroupPolicy\Machine\Registry.pol  这个文件
再开始——运行——gpupdate /force,(/前有一个空格)
刷新一下策略即可。
缘起性空。

TOP

组策略之软件限制策略——完全教程与规则示例

实际上,本教程主要为以下内容:

理论部分:
1.软件限制策略的路径规则的优先级问题
2.在路径规则中如何使用通配符
3.规则的权限继承问题
4.软件限制策略如何实现3D部署(难点是NTFS权限),软件限制策略的精髓在于权限,如何部署策略也就是如何设置权限

规则部分:
5.如何用软件限制策略防毒(也就是如何写规则)
6.规则的示例与下载

其中,1、2、3点是基础,很多人写出无效或者错误的规则出来都是因为对这些内容没有搞清楚;第4点可能有
点难,但如果想让策略有更好的防护效果并且不影响平时正常使用的话,这点很重要。
如果使用规则后发现有的软件工作不正常,请参考这部分内容,注意调整NTFS权限

理论部分

软件限制策略包括证书规则、散列规则、Internet 区域规则和路径规则。我们主要用到的是散列规则和路径规则,其中灵活性最好的就是路径规则了,所以一般我们谈到的策略规则,若没有特别说明,则直接指路径规则。
20080304_d40265b8553a703daf15Xdar4Rohek4Y.jpg (31.85 KB)
2008-5-28 04:06 AM





一.环境变量、通配符和优先级
关于环境变量(假定系统盘为 C盘)
%USERPROFILE%  表示 C:\Documents and Settings\当前用户名
%HOMEPATH%    表示 C:\Documents and Settings\当前用户名
%ALLUSERSPROFILE%  表示 C:\Documents and Settings\All Users
%ComSpec%  表示 C:\WINDOWS\System32\cmd.exe
%APPDATA%  表示 C:\Documents and Settings\当前用户名\Application Data
%ALLAPPDATA%  表示 C:\Documents and Settings\All Users\Application Data
%SYSTEMDRIVE% 表示 C:
%HOMEDRIVE%   表示 C:
%SYSTEMROOT%  表示 C:\WINDOWS
%WINDIR%      表示 C:\WINDOWS
%TEMP% 和 %TMP%  表示 C:\Documents and Settings\当前用户名\Local Settings\Temp
%ProgramFiles%  表示 C:\Program Files
%CommonProgramFiles%  表示 C:\Program Files\Common Files

关于通配符:
Windows里面默认
* :任意个字符(包括0个),但不包括斜杠
? :1个或0个字符

几个例子
*\Windows 匹配 C:\Windows、D:\Windows、E:\Windows 以及每个目录下的所有子文件夹。
C:\win* 匹配 C:\winnt、C:\windows、C:\windir 以及每个目录下的所有子文件夹。
*.vbs 匹配 Windows XP Professional 中具有此扩展名的任何应用程序。
C:\Application Files\*.* 匹配特定目录(Application Files)中的应用程序文件,但不包括Application Files的子目录


关于优先级:
1.绝对路径 > 通配符相对路径
如 C:\Windows\explorer.exe > *\Windows\explorer.exe  

2.文件型规则 > 目录型规则      
如若a.exe在Windows目录中,那么   a.exe > C:\Windows

3.环境变量 = 相应的实际路径 = 注册表键值路径
如 %ProgramFiles% = C:\Program Files = %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%

4.散列规则比任何路径规则优先级都高

总的来说,就是规则越匹配越优先

注:
1. 通配符 * 并不包括斜杠 \。例如*\WINDOWS 匹配 C:\Windows,但不匹配 C:\Sandbox\WINDOWS

2. * 和 ** 是完全等效的,例如 **\**\abc = *\*\abc

3. C:\abc\*  可以直接写为 C:\abc\ 或者 C:\abc,最后的* 是可以省去的,因为软件限制策略的规则可以直接匹配到目录。

4. 软件限制策略只对“指派的文件类型”列表中的格式起效。例如 *.txt 不允许的,这样的规则实际上无效,除非你把TXT格式也加入“指派的文件类型”列表中。
指派的文件类型 属性.jpg (27.83 KB)
2008-3-2 03:53 AM




5. * 和 *.* 是有区别的,后者要求文件名或路径必须含有“.”,而前者没有此限制,因此,*.* 的优先级比 * 的高

6. ?:\* 与 ?:\*.* 是截然不同的,前者是指所有分区下的每个目录下的所有子文件夹,简单说,就是整个硬盘;而 ?:\*.* 仅包括所有分区下的带“.”的文件或目录,一般情况
下,指的就是各盘根目录下的文件。那非一般情况是什么呢?请参考第7点

7. ?:\*.* 中的“.” 可能使规则范围不限于根目录。这里需要注意的是:有“.”的不一定是文件,可以是文件夹。例如 F:\ab.c,一样符合 ?:\*.*,所以规则对F:\ab.c下的所有文件及子目录都生效。

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 Settings的一级子目录有哪些:Temp、Temporary Internet Files、Application Data、History。
阻止程序从Temp根目录启动,直接的后果就是很多软件不能成功安装

那么,阻止程序从Temporary Internet Files根目录启动又如何呢?
实际上,由于IE的缓存并不是存放Temporary Internet Files根目录中,而是存于Temporary Internet Files的子目录Content.IE5的子目录里(-_-||),所以这种写法根本不能阻止程序从IE缓存中启动,是没有意义的规则
若要阻止程序从某个文件夹及所有子目录中启动,正确的写法应该是:
某目录\**

某目录\*
某目录\
某目录

9. 引用:
?:\autorun.inf    不允许的

这是流传的所谓防U盘病毒规则,事实上这条规则是没有作用的,关于这点在 关于各种策略防范U盘病毒的讨论 已经作了分析




二.软件限制策略的3D的实现:
“软件限制策略本身即实现AD,并通过NTFS权限实现FD,同时通过注册表权限实现RD,从而完成3D的部署”
对于软件限制策略的AD限制,是由权限指派来完成的,而这个权限的指派,用的是微软内置的规则,即使我们修改“用户权限指派”项的内容,也无法对软件限制策略中的安全等级进行提权。所以,只要选择好安全等级,AD部分就已经部署好了,不能再作干预
而软件件限制策略的FD和RD限制,分别由NTFS权限、注册表权限来完成。而与AD部分不同的是,这样限制是可以干预的,也就是说,我们可以通过调整NTFS和注册表权限来配置FD和RD,这就比AD部分要灵活得多。

小结一下,就是
AD——用户权利指派
FD——NTFS权限
RD——注册表权限

先说AD部分,我们能选择的就是采用哪种权限等级,微软提供了五种等级:不受限的、基本用户、受限的、不信任的、不允许的。

不受限的,最高的权限等级,但其意义并不是完全的不受限,而是“软件访问权由用户的访问权来决定”,即继承父进程的权限。
基本用户,基本用户仅享有“跳过遍历检查”的特权,并拒绝享有管理员的权限。
受限的,比基本用户限制更多,也仅享有“跳过遍历检查”的特权。
不信任的,不允许对系统资源、用户资源进行访问,直接的结果就是程序将无法运行。
不允许的,无条件地阻止程序执行或文件被打开

很容易看出,按权限大小排序为 不受限的 > 基本用户 > 受限的 > 不信任的 > 不允许的

其中,基本用户 、受限的、不信任的 这三个安全等级是要手动打开的
具体做法:
打开注册表编辑器,展开至
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers
新建一个DOWRD,命名为Levels,其值可以为

0x10000                  //增加受限的
0x20000                  //增加基本用户
0x30000                  //增加受限的,基本用户
0x31000                  //增加受限的,基本用户,不信任的

设成0x31000(即4131000)即可

如图:
注册表编辑器.jpg (49.52 KB)
2008-3-5 02:16 PM



或者将下面附件中的reg双击导入注册表即可

safer.rar (279 Bytes)
再强调两点:
1.“不允许的”级别不包含任何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的运行应用程序)
允许或拒绝用户在整个文件夹中移动以到达其他文件或文件夹的请求,即使用户没有遍历文件夹的权限(仅适用于文件夹)。

列出文件夹/读取数据
允许或拒绝用户查看指定文件夹内文件名和子文件夹名的请求。它仅影响该文件夹的内容,而不影响您对其设置权限的文件夹是否会列出(仅适用于文件夹)。

读取属性 (FD的读取)
允许或拒绝查看文件中数据的能力(仅适用于文件)。

读取扩展属性
允许或拒绝用户查看文件或文件夹属性(例如只读和隐藏)的请求。属性由 NTFS 定义。

创建文件/写入数据 (FD的创建)
“创建文件”允许或拒绝在文件夹中创建文件(仅适用于文件夹)。“写入数据”允许或拒绝对文件进行修改并覆盖现有内容的能力(仅适用于文件)。

创建文件夹/追加数据
“创建文件夹”允许或拒绝用户在指定文件夹中创建文件夹的请求(仅适用于文件夹)。“追加数据”允许或拒绝对文件末尾进行更改而不更改、删除或覆盖现有数据的能力(仅适用于文件)。

写入属性 (即改写操作了,FD的写)
允许或拒绝用户对文件末尾进行更改,而不更改、删除或覆盖现有数据的请求(仅适用于文件)。  即写操作

写入扩展属性
允许或拒绝用户更改文件或文件夹属性(例如只读和隐藏)的请求。属性由 NTFS 定义。

删除子文件夹和文件 (FD的删除)
允许或拒绝删除子文件夹和文件的能力,即使子文件夹或文件上没有分配“删除”权限(适用于文件夹)。

删除 (与上面的区别是,这里除了子目录及其文件,还包括了目录本身)
允许或拒绝用户删除子文件夹和文件的请求,即使子文件夹或文件上没有分配“删除”权限(适用于文件夹)。

读取权限 (NTFS权限的查看)
允许或拒绝用户读取文件或文件夹权限(例如“完全控制”、“读取”和“写入”)的请求。

更改权限 (NTFS权限的修改)
允许或拒绝用户更改文件或文件夹权限(例如“完全控制”、“读取”和“写入”)的请求。

取得所有权
允许或拒绝取得文件或文件夹的所有权。文件或文件夹的所有者始终可以更改其权限,而不论用于保护该文件或文件夹的现有权限如何。

以基本用户为例,基本用户能做什么?

在系统默认的NTFS权限下,基本用户对系统变量和用户变量有完全访问权,对系统文件夹只读,对Program Files的公共文件夹只读,Document and Setting下,仅对当前用户目录有完全访问权,其余不能访问

如果觉得以上的限制严格了或者宽松了,可以自行调整各个目录和文件的NTFS权限。
如果发现浏览器在基本用户下无法使用某些功能的,很多都是由于NTFS权限造成的,可以尝试调整对应的NTFS权限

基本用户、受限用户属于以下组
Users
Authenticated Users
Everyone
INTERACTIVE

但受限用户权限更低,无论NTFS权限如何,受限用户始终受到限制。

调整权限时,主要利用到的组为 Users

例:对用户变量Temp目录进行设置,禁止基本用户从该目录运行程序,可以这样做:
首先进入“高级”选项,取消勾选“从父项继承那些可以应用到子对象的权限项目,包括那些在此明确定义的项目(I)”
WINDOWS 的高级安全设置.jpg (38.4 KB)
2008-3-2 03:53 AM




然后设置Users的权限如图
组策略NTFS.jpg (27.94 KB)
2008-3-2 03:53 AM



这样基本用户下的程序就无法从Temp启动文件了

注意:
1. 不要使用“拒绝”,不然管理员权限下的程序也会受影响
2. everyone组的权限适用于任何人、任何程序,故everyone组的权限不能太高,至少要低于Users组


其实利用NTFS权限还可以实现很多功能
又例如,如果想保护某些文件不被修改或删除,可以取消Users的删除和写入权限,从而限制基本用户,达到保护重要文件的效果
当然,也可以防止基本用户运行指定的程序

以下为微软建议进行限制的程序:
regedit.exe

arp.exe

at.exe

attrib.exe

cacls.exe

debug.exe

edlin.exe

eventcreate.exe

eventtriggers.exe

ftp.exe

nbtstat.exe

net.exe

net1.exe

netsh.exe

netstat.exe

nslookup.exe

ntbackup.exe

rcp.exe

reg.exe

regedt32.exe

regini.exe

regsvr32.exe

rexec.exe

route.exe

rsh.exe

sc.exe

secedit.exe

subst.exe

systeminfo.exe

telnet.exe

tftp.exe

tlntsvr.exe


RD部分注册表权限。由于微软默认的注册表权限分配已经做得很好了,不需要作什么改动,所以这里就直接略过了


三.关于组策略规则的设置:

规则要顾及方便性,因此不能对自己有过多的限制,或者最低限度地,即使出现限制的情况,也能方便地进行排除
规则要顾及安全性,首先要考虑的对象就是浏览器等上网类软件和可移动设备所带来的威胁。没有这种防外能力的规则都是不完整或者不合格的
基于文件名防病毒、防流氓的规则不宜多设,甚至可以舍弃。
一是容易误阻,二是病毒名字可以随便改,特征库式的黑名单只会跟杀软的病毒库一样滞后。

于是,我们有两种方案:
如果想限制少一点的,可以只设防“入口”规则,主要面向U盘和浏览器
如果想安全系数更高、全面一点的,可以考虑全局规则+白名单

具体内容见二楼
待续.....
最后布置几道作业 ,看看大家对上面的内容消化得如何


1. 在规则“F:\**\*\*.*  不允许”下,下面那些文件不能被打开?
A:F:\a.exe
B.F:\Folder.1\b.exe
C.F:\Folder1\Folder.2\C.txt
D.F:\Folder1\Folder.2\Folder.3\d.exe

2. 在以管理员身份登陆的情况下,建立规则如下:
%Temp%                                                                                        受限的
%USERPROFILE%\Local Settings\Temporary Internet Files                         不允许的
%ProgramFiles%\Internet Explorer\iexplore.exe                                                 基本用户
%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%  不受限的
在这四条规则下,假设这样的情况:
iexplore.exe 下载一个test.exe到Temporary Internet Files目录,然后复制到Temp目录,再从Temp目录中运行test.exe,(复制和运行的操作都是IE在做),然后由text.exe释放test2.exe到桌面,并运行test2.exe。
那么test2.exe的访问令牌为:
A.不受限的        B.不允许的      C.基本用户       D.受限的

3. 试说出 F:\win* 和 F:\win*\ 的区别

4. 若想限制QQ的行为,例如右下方弹出的广告,并不允许QQ调用浏览器,可以怎么做?

答对两题即及格。不过貌似还是有些难度
缘起性空。

TOP

规则部分


基础部分,如何建立规则:

首先,打开组策略
开始-运行,输入 “gpedit.msc”(不包含引号)并回车。
在弹出的对话框中,依次展开 计算机配置-Windows设置-安全设置-软件限制策略

如果你之前没有配置过软件限制策略,那么可以在菜单栏上选择 操作-创建新的策略
如图
   创建规则.jpg (33.71 KB)
2008-3-4 12:13 AM




然后转到“其它规则”项,在菜单栏选择“操作”,在下拉菜单选择“新路径规则”
在弹出的对话框中,就可以编辑规则了
   建立规则.jpg (31.71 KB)
2008-3-4 12:13 AM










~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~华丽丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

软件限制策略的其实并不复杂,在规则设置上是十分简单的,只有五个安全级别,不像HIPS那样,光
AD部分就细分成N项。
但软件限制策略的难点在于:如何确保你的规则真正有效并按你的意愿去工作,即如何保证规则的正
确性和有效性。
从四道题目的答对率来看,发现问题还是不少的

附上题目的参考答案

引用:
1.D
考点:注2、注4、注7
这题的C选项是陷阱,因为TXT文件不在规则的阻挡范围之内。
D项参考注7,F:\Folder1\Folder.2\Folder.3 (注意“.”)正好能匹配 F:\**\*\*.*,因此Folder.3下面的EXE文件不能被打开

2.D
说明:此题的考点为“AD权限的分配/最低权限原则”
我们先整理一下父子进程的关系:
iexplore.exe -> test.exe -> test2.exe
(基本用户)    (受限的)  (受限的)

其中,test.exe从Temp目录启动,受规则“%Temp%  受限的”的限制,其权限降为“受限的”。test2.exe从桌面启动,虽然桌面的程序是不受限的,但由于其父进程为test.exe,故继承test.exe的权限,故test2.exe的最终获得访问令牌还是“受限的”

另外要注意的是,复制、创建文件等操作都不会构成权限的继承

3.考点:注1、注3、综合分析
说明:F:\win* 和 F:\win*\ 仅相差一个字符 “\”,由注1可知,* 并不包括斜杠。那么斜杠“\”在这里的作用是什么?
实际上,这个斜杠在规则中的作用相当于声明斜杠前的路径指的是目录,而不是文件,注意到这点后,就可以看出区别了:
F:\win* 既可以匹配到 F:\windows、F:\windir、F:\winrar等目录,也可以匹配到F:\winrar.exe、F:\winNT.bat等文件
而F:\win*\ 仅能匹配到目录

4.考点:NTFS权限
此题答案不唯一,只要是合理可行的方案即可
下面答案仅供参考:
限制QQ的行为,可以把QQ设为基本用户。
防止QQ广告,可以对Tencent下的AD目录调整NTFS权限——取消Users组的创建、写入权限
不允许QQ调用浏览器,可以对IE调整NTFS权限——取消Users组的“读取和运行”的权限




参考答案.rar (1019 Bytes) 参考答案.rar (1019 Bytes)
下载次数: 184
2008-3-4 12:13 AM






下面将详细讨论规则部分


一、再次强调一下通配符的使用
Windows里面默认

* :任意个字符(包括0个),但不包括斜杠
? :1个或0个字符

在组策略中*不包括斜杠,这和HIPS是不同的,一定要注意

例如:
C:\Windows\system32 可以表示为 *\*\system32
而以下的表达式都是无效的:
*\system32 、system32\*、system32

二、根目录规则
软件限制策略对初学者来说有一定的难度,因为它没有HIPS那么丰富的功能选项,故利用规则实现某一功能需要一定的
技巧。
根目录规则就是一例(禁止在某个目录的根目录下的程序行为)
若在EQ中,设置规则时取消“包含该目录下面的所有文件”选项就可以保证规则仅对根目录起效
而组策略却不是那么简单就可以做到。

看看下面的规则: 引用:
C:\Program Files\*.* 不允许的



前面已经提过,* 不包含斜杠,因此这个规则可视为Program Files的根目录规则。在此规则下,形
如 C:\Program Files\a.exe 等程序将不能启动。

但这规则可能导致一些问题,因为通配符即可以匹配到文件,也可以匹配到文件夹。
如果Program Files存在带有“.”的目录(形如C:\Program Files\TTplayer5.2),一样可以和规则
C:\Program Files\*.* 匹配,这将导致该文件夹下的程序无法运行,造成误伤。

改进一下的话,可以用两条规则来实现根目录限制
引用:
C:\Program Files     不允许的
C:\Program Files\*\  不受限的

这样就保证了子目录的程序不受规则影响

三、一些规则的模板

根目录规则:                                                某目录\* + 某目录\*\*

目录规则(包含目录中所有文件):             某目录\* 或 某目录\ 或 某目录

含“*”的目录规则:                                    某目录*\   (注意要加上斜杠“\”)

文件型规则:                                                a.exe 、*.com 等

绝对路径规则:                                            如 C:\Windows\explorer.exe

全局型规则:                                               *

这里需要说明的是,为什么全局型规则要使用“*”?

因为 * 属于仅有通配符的规则,其覆盖范围是最大的,而优先级是最低的,不会遗漏,便于排除,
最适合作为全局规则。
对比“*.*”,一个字符“.”的存在使规则的优先级提高了,这将会给排除工作带来不便


四、规则实例

1. 保证上网安全
很多人问,浏览毒网时,病毒会下载到什么位置执行?
首先是,下载到网页缓存中(Content.IE5),这点很多人都注意到了。不过呢,病毒一般却不会选
择在缓存中执行,而是通过浏览器复制病毒文件到其它目录,例如Windows。system32、Temp,当前
用户文件夹、桌面、系统盘根目录、ProgramFiles根目录及其公有子目录、浏览器所在目录等
所以在这里再重复一次已说过N次的话,不要以为把缓存目录设为不允许的就万事大吉了。

至于防范,比较好的方法就是禁止浏览器在敏感位置新建文件,这点使用“浏览器基本用户”就可以
做到,规则如下 引用:
%ProgramFiles%\Internet Explorer\iexplore.exe  基本用户

如果使用的是其它浏览器,也可以设成 基本用户

若配合以下规则,效果更佳: 引用:
*\Documents and Settings  不允许的       程序一般不会从Documents and Settings中启动
%ALLAPPDATA%\*\*          不受限的       允许程序从Application Data的子目录启动
%APPDATA%                     不允许的       当前用户的Application Data目录限制
%APPDATA%\*\                  不受限的       允许程序从Application Data的子目录启动
%SystemDrive%\*.*             不允许的       禁止程序从系统盘根目录启动
%Temp%                            不受限的       允许程序从Temp目录启动,安装软件必须
%TMP%                              不受限的       同上

并设置用户变量Temp的NTFS权限:

Temp的默认路径为 Documents and Settings\Administrator\Local Settings\Temp
在系统盘格式为NTFS的情况下,右击Temp文件夹,选择“安全”项,取消Users组的“读取与运行
权限即可。(同时要取消Everyone组的访问权,且保证Administrators组具有完全访问权限)
如此设置的作用是:基本用户下的程序将无法从Temp文件夹运行程序

2.U盘规则
比较实际的做法是 引用:
U盘:\*        不允许的、不信任的、受限的,都可以

不允许的安全度更高一些,这样也不会影响U盘的一般使用(正常拷贝、删除等)
假设你的U盘一般盘符是I,那么规则可以写成: 引用:
I:\*  不允许的

3.双后缀文件防范规则
以下是微软的帮助: 引用:
注意
某些病毒使用的文件具有两个扩展名以使得危险文件看起来像安全的文件。例如,Document.txt.exe
或 Photos.jpg.exe。最后面的扩展名是 Windows 将尝试打开的扩展名。具有两个扩展名的合法文件
非常少,因此避免下载或打开这种类型的文件。
有些文件下载起来比程序或宏文件更安全,例如文本 (.txt) 或图像 (.jpg, .gif, .png) 文件。但
是,仍然要警惕未知的来源,因为已知这些文件中的一些文件使用了特意精心设计的格式,可以利用
计算机系统的漏洞。

双后缀文件可能的形式比较多,这里仅放出谍照一张

   双后缀n.jpg (74.64 KB)
2008-3-4 12:13 AM




4.全局规则

就一条: 引用:
*    基本用户

如果设成受限的或者不信任/不允许的话,无疑会更安全,但也会带来一些不便。综合考虑还是基本用户比较适合
在全局规则下,肯定需要对合法的程序进行排除的。在排除的时候,你就会发现使用 * 作为全局规
则的优越性了——任何一条规则的优先级都比它高,所以我们可以很方便地进行排除。

为了减少排除的工作量,这里建议大家把软件集中安装在少数的目录,例如ProgramFiles目录,那么
排除时就可以对整个目录进行,不必慢慢添加

示例排除规则: 引用:
%ProgramFiles%  不受限的         (软件所在目录)
*\ApplicationSetups   不受限的  (安装软件用的文件夹)

还要排除一些文件格式,以使其被正常打开: 引用:
*.lnk            不受限的
*.ade           不受限的
*.adp           不受限的
*.msi           不受限的
*.msp           不受限的
*.chm           不受限的
*.hlp           不受限的
*.pcd           不受限的

5. 其它辅助规则
CMD限制策略: 引用:
%Comspec%   基本用户

注意:在组策略中,微软把cmd.exe和批处理是分开处理的,即使把cmd设成“不允许的”,仍然可以运行.bat等批处理

由于桌面一般只放快捷方式,所以 引用:
%HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%  不允许的

同时要让快捷方式能够正常工作: 引用:
*.lnk     不受限的

计划任务功能很少会用到,所以 引用:
%SystemRoot%\task    不允许的

帮助文件阅读器的管制策略: 引用:
%WinDir%\hh.exe    基本用户  (防范CHM捆毒)
%WinDir%\winhelp.exe    基本用户
%WinDir%\winhlp32.exe    基本用户

脚本宿主管制 引用:
%WinDir%\system32\?script.exe  受限的(或者直接不允许)

一些不会有程序启动的位置、一些极少用到的系统程序,你不用但病毒会用,所以建议禁止...........

规则可以有很多,大可自己发挥,放出图一张:

   系统程序.jpg (69.96 KB)
2008-3-4 12:13 AM




禁止伪装系统程序
如: 引用:
lsass.exe                  不允许的
%WinDir%\system32\lsass.exe   不受限的

剩下的规则就留给各位自由发挥了



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~华丽丽的分割线,怎么? 不够华丽?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

至此,教程完毕

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

组策略规则发布:

根据防入口和全局防护的思路,做了两套规则——简单规则和全局规则



简单规则说明:

以基本用户限制主流浏览器
Avant.exe Brexpo.exe firefox.exe GE.exe GreenBrowser.exe gsfbwsr.exe iexplore.exe MaxFox.exe maxthon.exe
miniie.exe netscape.exe opera.exe Orca.exe realplay.exe Safari.exe SeaMonkey.exe Sleipnir.exe theworld.exe
TTraveler.exe

限制或禁用一些不常用的系统程序

禁止程序从U盘启动(需要手动修改一下规则)


全局规则说明:


采用全局基本用户

并加入了数目可观的系统程序白名单

规则默认状态没有对system32目录进行白名单式的限制,主要考虑到一些安全软件会安装程序文件在这些目录下,可能会影响其工作,如DW、
ZA等

如果想打开此限制,进入System32的白名单模式,可以把规则中的
%WinDir%System32\*.exe 设成“基本用户”或者“受限的”

默认排除(不受限的)的目录有:
1.所有分区根目录下的Program Files文件夹  请把软件安装在此目录中,或者另外进行目录排除
2.所有分区根目录下的“安装程序”文件夹   请从此目录安装程序,或者另外进行目录排除
3.所有分区根目录下的“信任目录”文件夹
4.System32下exe后缀的程序

以基本用户限制的主流浏览器
Avant.exe Brexpo.exe firefox.exe GE.exe GreenBrowser.exe gsfbwsr.exe iexplore.exe MaxFox.exe maxthon.exe
miniie.exe netscape.exe opera.exe Orca.exe realplay.exe Safari.exe SeaMonkey.exe Sleipnir.exe theworld.exe
TTraveler.exe



另外提醒一下,大家在设置规则时,注意要考虑以下4条系统默认规则的影响:
%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% 路径 不受限的
相当于规则:
%SystemRoot% 不受限的                   整个Windows目录不受限
%SystemRoot%\*.exe 不受限的             Windows下的exe文件不受限
%SystemRoot%\System32\*.exe 不受限的   System32下的exe文件不受限
%ProgramFiles%    不受限的             整个ProgramFiles目录不受限

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

规则已做成安装包,双击运行即可导入

简单规则和全局规则之间可以方便地进行转换^_^

若需要取消所有规则,执行“还原软件限制策略”附件中的批处理即可

规则可能还不是很完善,欢迎测试和反馈意见

[ 本帖最后由 rappar 于 2008-5-28 04:41 编辑 ]
附件 简单规则.rar (63.82 KB) 2008-4-9 02:07 AM, 下载次数: 953
全局规则.rar (75.62 KB) 2008-3-26 11:50 PM, 下载次数: 968
还原软件限制策略.rar (181 Bytes) 2008-3-6 11:33 PM, 下载次数: 780
缘起性空。

TOP

发新话题