文档库 最新最全的文档下载
当前位置:文档库 › 组策略软件限制策略规则包编写之菜鸟入门

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

组策略软件限制策略规则包编写之菜鸟入门
昨天做了一个组策略软件限制策略规则编写教程,原帖见:
https://www.wendangku.net/doc/cc14454924.html,/read.php?fid=10&tid=435857&u=379569

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

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

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

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

三、软件限制策略 规则编写实例
我直接以一些最常见的例子来说明
1、首先要学会系统通配符、环境变量的含义,以及软件限制策略规则的优先级
关于这一点,大家可以看原帖
https://www.wendangku.net/doc/cc14454924.html,/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\regedit.exe 不受限的
C:\WINDOWS\hh.exe 不受限的
C:\WINDOWS\winhelp.exe 不受限的
C:\WINDOWS\winhlp32.exe 不受限的

(然后利用绝对路径优先级大于通配符路径的原则,设置上述几个排除规则,则,在C:\WINDOWS下,除了explorer.exe、notepad.exe、摄像头程序、声卡管理程序可以运行外,其他所有的可执行文件均不可运行)

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

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盘病毒的入侵
这个简单,1条规则就可以彻底搞定
?:\*.* 不允许的

6、预防双后缀名的典型恶意软件
许多恶意软件,他有双后缀,比如 mm.jpg.exe
由于很多人默认不显示后缀名,所以你看到的文件名是 mm.jpg
对于这类恶意,我本来想以一条规则彻底免疫
*.*.* 不允许的
可是这样做了之后,却发现我的ACDSee 3.1 无法运行
于是改成
*.???.bat 不允许的
*.???.cmd 不允许的
*.???.com 不允许的
*.???.exe 不允许的
*.???.pif 不允许的
这样5条规则,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 不允许的
………………………………

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

转载请注明出处及作者

分享到QQ空间 分享0 收藏1 喜欢0 无视0

115收藏 新浪微博 Qzone 搜狐微博 人人网 举报 返回顶部
.

发短消息加为好友尐小三~γ 荣誉会员 当前离线 主题365 UID379569 精华13 帖子6197 雨点2061 滴 威望2936 点 植树544 棵 在线时间1508小时 注册时间2007-3-17 最后登录2010-12-21 .

沙发 字体: 大 中 小 | 尐小三~γ 发表于 2007-11-4 18:30 |只看该作者 发短消息 加为好友
.11月11日说明

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

11月8日,更新说明

去掉了对双扩展名限制的规则,各位在使用电脑时,养成一个好的习惯,设置显示扩展名,则不会被双扩展名欺骗。最近正在流行一个叫 *.xls.exe的病毒,请注意预防。需要限制双扩展名的请自行添加规则。
增加了几条规则,对一些目录的子目录进行了限制,更为严密了。
修改了几条规则,取消了对一些子目录的限制,转而限制父目录。

修正一个原理上的错误:
**\\*.*(或者*?\\*.*) 只能表示某个目录子目录中的可执行文件,而不包含子目录的子目录,若要进行多层级目录的限制,使用 **\\** 即可,但这种语法也不包括父目录
例如: C:\\**\\** 即表示C盘中的所有可执行文件,但不包括C盘根目录
C:\\**\\*.* 则表示C盘子目录下的可执行文件,也不包括C盘根目录
C:\\*.* 表示C盘根目录下所有可执行文件

此次更新的规则,仅对回收站和系统备份文件夹使用了 **\\** 这样的通配符,其他均没有使用。**\\** 过于严厉,慎用,确有需要的,请自行修改规则。

11月6日,一个说明

由于*.???.bat *.???.exe 这两条规则的限制
致使DIY 1.6.exe无法运行,虽然表面看DIY 1.6.exe的命名并没有触犯上述两条规则,但DIY 1.6.exe是一个加壳打包的程序,运行时可能释放了其他exe及bat文件,并触犯上述规则。
解决方法很简单:
例如我的 DIY 1.6.exe所在路径为 D:\\Program Files\\雨林木风工具箱\\优化设置\\DIY_Y1.6.exe
那么我设置一条规则
D:\\Program Files\\雨林木风工具箱\\优化设置\\DIY_Y1.6.exe 不受限的
就OK了
这个原理利用了规则的优先级,绝对路径优先级高于通配符路径

考虑到易用性的问题,我还是将规则做了一些更新,以避免不能运行DIY1.6,更新内容如下:(附件有新的规则包)
删除 *.???.bat *.???.exe 等5条规则,增加22条双扩展名限制

,虽然规则条数增多,实际上没有原来的5条严密,只是为了通用和易用。有一定基础的可以参照我上面几段说的去修改,菜鸟就直接导入我的新规则吧
*.avi.*
*.bmp.*
*.doc.*
*.chm.*
*.hlp.*
*.gif.*
*.jpg.*
*.mp?.*
*.mpeg.*
*.png.*
*.rar.*
*.reg.*
*.rm.*
*.rmvb.*
*.swf.*
*.scr.*
*.torrent.*
*.txt.*
*.in?.*
*.wm?.*
*.xls.*
*.zip.*



占楼说明



附带啰嗦一句,现在很多病毒采用劫持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% 这两个临时文件变量做出限制
仍然是考虑到自解压文件的问题














3、软件限制策略 的优先权

一个特定的程序可以有多个不同的规则适用,为此,可以按下列优先权顺序来使用这些规则。优先权按从高到低的顺序排列如下:

散列规则 > 证书规则 > 路径规则 > Internet 区域规则

如果存在多个路径规则冲突,则最具限制性的规则占有优先权。总的原则就是:规则越匹配越优先。

例如:
C:\Windows\System32\Taskmgr.exe
C:\Windows\System32\*.exe
*.exe
C:\Windows\System32\
C:\Windows\

本例是按优先权从高到低排列的。从这里我们可以看出:
绝对路径 > 通配符路径
文件名规则 > 目录规则
对于同样是目录规则的,则目录数匹配越多就越优先。
如果同时存在两个相似的规则,则最具限制性的规则优先权最高。例如,如果 C:\Windows\ 上有一个路径规则,其安全级别为“不允许的”,而 %windir% 上也有一个路径规则,其安全级别为

“不受限制的”,则会采用最具限制性的规则,即“不允许的”。

这里,我们再顺便介绍一下环境变量和通配符。

在路径规则里,允许使用诸如“%windir%”“%userprofile%”之类的环境变量。一般情况下,我们的系统是在C盘,但也有些人基于其它一些原因如要安装双系统等,将系统安装在其它比如D盘下面,这时我们平常用到的一些路径比如“C:\windows\”就会无效,为了防止这种情况,我们就可以使用系统变量,像“%windir%”,系统会自动为我们匹配其目录。我们在创建规则的时候也可以使用这些环境变量,以适用于不同的系统。下面列出的是一些常使用的环境变量,更多的环境变量你可以运行 CMD 然后运行 SET 命令进行查看。

ALLUSERSPROFILE = C:\Documents and Settings\All Users
APPDATA = C:\Documents and Settings\Administrator\Application Data
CommonProgramFiles = C:\Program Files\Common Files
ComSpec = C:\WINDOWS\system32\cmd.exe
HOMEDRIVE = C:
HOMEPATH = \Documents and Settings\Administrator
ProgramFiles = C:\Program Files
SystemDrive = C:
SystemRoot = C:\WINDOWS
TEMP = C:\Documents and Settings\当前用户名\Local Settings\Temp
TMP = C:\Windows\Temp
USERPROFILE = C:\Documents and Settings\Administrator
WINDIR = C:\WINDOWS

同样,路径规则也支持使用通配符,对DOS熟悉的筒子应该知道这个东西,就是“?”和“*”。

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

对于通配符,其实网上很多教程上的做法是有误的。

例如有一条:%USERPROFILE%\Local Settings\**\*.* 不允许的
这条规则本意是 阻止所有被指派的文件从 Local Settings 目录(包括其子目录)启动,但是经过验证发现,“**”和“*”是完全等效的,并且“*”不包括“\”。那么这条规则的实际意思就是“阻止所有被指派的文件从 Local Settings 的一级目录运行”,不包括 Local Settings 目录本身,也不包括二级及其下的所有子目录。我们来看看 Local Settings 目录下的一级目录有哪些呢?默认情况下是:Temp、Temporary Internet Files、Application Data、History,那么这条规则里就包括有 禁止TEMP目录下的所有被指派的文件运行 的意思,其根本结果就是会造成很多软件无法安装。因为有些软件在安装时会先行解压到TEMP目录。

影响最大(简直可以列入本年度十大最错误的做法中了)的一条:?:\autorun.inf “不允许的”

相信对 软件限制策略 有研究的筒子都见过这条规则吧,这条规则的本意是阻止所有盘根目录下的 autorun.inf 文件运行,以阻止U盘病毒的运行。它也确实达到了它的目的, autorun.inf 文件双击的时候被阻止了。但病毒被阻止了吗?答案是否定的,病毒还是会被正常运行



为什么呢?我们来了解一下系统是怎么处理 autorun.inf 文件的。

首先,svchost.exe 读取 autorun.inf,然后 explorer.exe 读取 autorun.inf,再然后 explorer.exe 将 autorun.inf 里的相关内容写入注册表中 MountPoints2 这个键值。只要 explorer.exe 成功写入注册表,那么这个 autorun.inf 文件的使命就完成了,U盘里的病毒就等着你去双击U盘了。

那么我们的软件限制策略中,将 autorun.inf 设为”不允许的”这一做法在这个过程中起到什么作用?

很遗憾地告诉你:没有任何作用。

真要说它起到的作用,仅仅是阻止你打开 autorun.inf 这个文件而已。所以,对于 autorun.inf 的所有策略,都是无效的。

真要想防止U盘病毒的运行,策略的设置只有一种方法:
?:\*.* 不允许 意思就是阻止所有盘下面的被指派文件运行。当然,如果你只想阻止U盘下的文件运行的话,那就将规则里的“?”改为具体的盘符即可。当然还有其它很多办法来防止U盘病毒的,这个我会在文后附上其它解决方法的,欢迎筒子们进行验证。让我们去伪存真,找到最好的解决办法吧:)
















证书规则

证书规则指定代码签名软件发布者的证书。例如,管理员可能需要所有脚本和 ActiveX 控件的签名证书。符合证书规则的允许来源包括:?
商业证书颁发机构 (CA),如 VeriSign。
?
Windows 2000 或 Windows Server 2003? 公钥基础结构 (PKI)。
?
自签名证书。


证书规则是一种非常有效的标识软件的方法,因为它使用已签名文件的签名中包含的已签名哈希来匹配文件,而不管文件的名称或位置如何。要创建证书规则的例外,可以使用哈希规则对其进行标识。
启用证书规则

证书规则在默认情况下不启用。可以执行下列步骤来启用证书规则。?
要启用证书规则,请执行下列操作:
1.
在组策略对象编辑器中打开 GPO。

2.
在控制台树中,单击“安全选项”。

3.
在详细信息窗格中,双击“系统设置: 为软件限制策略对 Windows 可执行文件使用证书规则”。

4.
单击“启用”以启用证书规则。



大多数商业 Web 站点的软件代码都由商业 CA 进行签名。这些证书通常在一到几年内有效。使用证书规则时,应注意证书的有效期。可以与软件发布者联系,以获取有关他们所发行证书的有效期的详细信息。从商务 CA 收到证书时,可以将其导出到文件中,以创建证书规则。


路径规则

路径规则指定程序的文件夹路径或完全限定路径。当路径规则指定文件夹时,它将匹配该文件夹中包含的任何程序以及相关子文件夹中包含的任何程序。路径规

则既支持本地路径也支持 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 注册表中。有些应用程序可以安装在文件系统中的任何位置。要找到它们,可以创建路径规则来查找这些注册表项。

使用特定文件夹路径(如 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 下载的软件。受区域规则影响的所有其他文件类型已在此模块后面提供的指派文件类型表中列出。有一个由所有区域规则共享的指派文件类型组成的列表。

相关文档
相关文档 最新文档