对于Windows的组策略,也许大家使用的更多的只是“管理模板”里的各项功能。对于“软件限制策略”相信用过的朋友们不是很多。 软件限制策略如果用的好的话,相信可以和某些HIPS类软件相类比了。如果再结合NTFS权限和注册表权限,完全可以实现系统的全方位的安全配置,同时由于这是系统内置的功能,与系统无缝结合,不会占用额外的CPU及内存资源,更不会有不兼容的现象,由于其位于系统的最底层,其拦截能力也是其它软件所无法比拟的,不足之处则是其设置不够灵活和智能,不会询问用户。下面我们就来全面的了解一下软件限制策略。
本系列文章将从以下几方面为重点来进行讲解:
·概述
·附加规则和安全级别
·软件限制策略的优先权
·规则的权限分配及继承
·如何编写规则
·示例规则
今天我们介绍Windows的组策略中软件限制策略规则编写示例。 根目录规则
如果我们要限制某个目录下的程序运行,一般是创建诸如:
C:\Program Files\*.* 不允许
这样的规则,看起来是没有问题的,但在特殊情况下则可能引起误伤,因为通配符即可以匹配到文件,也可以匹配到文件夹。如果此目录
下存在如 SiteMapBuilder.NET 这样的目录(如C:\Program Files\SiteMapBuilder.NET\Site Map Builder.NET),同样可以和规则匹配,从而造成误伤,解决方法是对规则进行修改:
C:\Program Files 不允许的
C:\Program Files\*\ 不受限的
这样就排除了子目录,从而不会造成误伤。
上网安全的规则
我们很多时候中毒,都是在浏览网页时中的毒,在我们浏览网页时,病毒会通过浏览器漏洞自动下载到网页缓存文件夹中,然后再将自身
复制到系统敏感位置,比如 windows system32 program files等等目录下,然后运行。所以单纯的对浏览器缓存文件夹进行限制是不够的。比较实用的防范方法就是禁止IE浏览器在系统敏感位置创建文件,基于此,我们可以创建如下规则:
%ProgramFiles%\Internet Explorer\iexplore.exe 基本用户
%UserProfile%\Local Settings\Temporary Internet Files\** 不允许的
%UserProfile%\Local Settings\Temporary Internet Files\* 不允许的
%UserProfile%\Local Settings\Temporary Internet Files\ 不允许的
%UserProfile%\Local Settings\Temporary Internet Files 不允许的
如果你使用的是其它浏览器,同样将其设置为“基本用户”即可。
U盘规则
比较实际的作法:
U盘符:\* 不允许的 不信任的 受限的 都可以
不过设为不允许的安全度更高,也不会对U盘的正常操作有什么限制。
CMD限制策略
%Comspec% 基本用户
这里要注意的是系统对于CMD和批处理文件是分开处理的,即使对CMD设置了不允许,仍然可以运行批处理
对于一些系统中平时我们极少用,但存在潜在威胁的程序我们也要进行限制。比如ftp.exe、 tftp.exe、 telnet.exe、 net.exe 、net1.exe 、debug.exe 、at.exe、 arp.exe 、wscript.exe、 cscript.exe等等,都可以将其设置为受限的或者直接设成不允许的。
禁止伪装的系统进程
svchost.exe 不允许的
C:\Windows\System32\Svchost.exe 不受限的
如果你有兴趣,有精神,还可以为系统的所有进程做一个白名单,这样安全性可能会更高。
其它规则大家可以自由发挥。
策略的备份
最后提一下策略的备份。不能这么辛苦做完下次重做系统再来一次吧,呵呵,备份很简单,我们可以通过导出注册表来备份(不提倡,也就不介绍了)。
也可以通过直接备份文件来备份,打开 C:\WINDOWS\system32\GroupPolicy\Machine ,在这个目录下有一个 Registry.pol 文件,对,就是它了。备份它,重做系统后直接COPY过来就可以了,当然你也可以将你的策略分享给更多人使用。这里有一点要注意的,就是这个Machine文件夹如果没有,千万不能手动建立,否则无效,可以使用我们前面介绍过的创建策略的方法,创建以后就会生成这个文件夹,也可以你在备份的时候直接备份这个文件夹。千万要记得不能手动建立。如果你不想使用这些策略了,很简单,将 Registry.pol 文件改名或者删除即可。实战:U盘病毒解决方法
我这里介绍的都是一些通过系统自身来实现的方法,不使用第三方软件。喜欢用第三方软件的朋友们就不要讨论了。
前面已经介绍过第一种方法了:使用 软件限制策略,创建一条规则 “?\*.* 不允许的” ,这样即使你中了U盘病毒它也没办法运行。
第二种方法,其实也算是第一种方法的延伸吧。前面我们分析过系统对 autorun.inf 文件的处理流程,从中我们可以看出有一步,
explorer.exe 读取 autorun.inf 的内容后会将其写入注册表中,由此,我们可以通过对注册表相关键值的权限进行限制,从而使其无法修改注册表,进而达到防止U盘病毒运行的目的。相关注册表键:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\open
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\autorun
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\explorer
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\*\Command
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
具体做法是将这些键降低权限,或者直接将所有用户对其的访问权限取消都可以。
第三种方法就是利用Windows的一个漏洞,建立Bug文件夹,来防止Autorun类病毒。具体方法是:
首先在U盘下建立一个名为Autorun.inf的文件夹,然后在这个文件夹下建立一个带“.”的BUG文件夹,这样的话 autorun.inf 文件夹就无法删除了,比如我们在D盘下建立:
首先在D盘下建立 Autorun.inf 文件夹 然后运行CMD,输入
md d:\autorun.inf\test..\
这样就可以在autorun.inf文件夹里建一个名为“test.”的文件夹,在资源管理器中无法访问,无法改名,无法删除。
这种方法比较消极,但适用于经常在别人机子上使用U盘的情况。不过据说有些病毒已经可以对付这种方法了。
第四种方法,也是流传很广的一种做法,就是通过组策略或者注册表禁止自动播放功能。这种方法以前我也是深信不疑的,但通过近来的
几个小实验,发现这种方法也是有缺陷的,它只能防止一些做工粗糙的U盘病毒,对于很多病毒其实是防不了的。这个我们可以做如下实验来验证。我们自己建立一个 autorun.inf 文件,放于U盘根目录下,再COPY一个NOTEPAD到你的U盘根目录下,其内容如下:
[autorun]
OPEN=NOTEPAD.exe
shell\open=打开(&O)
shell\open\Command=NOTEPAD.exe
shell\open\Default=1
shell\explore=资源管理器(&X)
shell\explore\Command=NOTEPAD.exe
从组策略中关闭自动播放功能,在U盘点击右键,新菜单里没有多出来的选项,但你双击U盘试试,你会发现NOTEPAD运行了。使用右键选择打开或者资源管理器也一样,都会运行,因为这里 autorun.inf 已经修改了右键菜单里原来这两项的功能了。 那么自动播放是用来干嘛的呢?相信很多筒子都知道,现在有好多光盘,当你把光盘放入光驱后,不用你进行任何操作,就会弹出一个界面,让你选择运行什么,或者播放什么这一类,记得瑞星的杀软就是这样,还有一些主板显卡的驱动盘也有这功能,但是把同样的内容放入U盘中,插入U盘的时候却不会自动运行,很显然操作系统的这个功能只是对光盘有效,这就是我们所知道的自动播放功能,我们在组策略中关闭了自动播放功能,仅仅只是使光盘放入光驱后不会自动运行,但你点击光驱右键,你会发现 自动播放 的选择还是存在的,所以关闭自动播放毫无意义。在这里我们要注意一个小小的概念,自动播放(AutoPlay) 自动运行(AutoRun) 这是有区别的。要想彻底关闭系统的这个功能,我们只能从服务入手,对系统熟的话你就会知道系统处理自动播放和自动运行的服务是 Shell Hardware Detection ,所以我们只要关闭了 Shell Hardware Detection 这个服务,所有的U盘病毒都不可能运行起来了。但这种方法也不是万能的,因为系统的差异,可能某些系统关闭此服务后会导致系统启动缓慢。
个人认为,对于U盘病毒的防范,修改注册表的那种方法是最有效而且没有什么副作用的。
本系列文章将从以下几方面为重点来进行讲解:
·概述
·附加规则和安全级别
·软件限制策略的优先权
·规则的权限分配及继承
·如何编写规则
·示例规则
今天我们介绍Windows的组策略中软件限制策略规则编写示例。 根目录规则
如果我们要限制某个目录下的程序运行,一般是创建诸如:
C:\Program Files\*.* 不允许
这样的规则,看起来是没有问题的,但在特殊情况下则可能引起误伤,因为通配符即可以匹配到文件,也可以匹配到文件夹。如果此目录
下存在如 SiteMapBuilder.NET 这样的目录(如C:\Program Files\SiteMapBuilder.NET\Site Map Builder.NET),同样可以和规则匹配,从而造成误伤,解决方法是对规则进行修改:
C:\Program Files 不允许的
C:\Program Files\*\ 不受限的
这样就排除了子目录,从而不会造成误伤。
上网安全的规则
我们很多时候中毒,都是在浏览网页时中的毒,在我们浏览网页时,病毒会通过浏览器漏洞自动下载到网页缓存文件夹中,然后再将自身
复制到系统敏感位置,比如 windows system32 program files等等目录下,然后运行。所以单纯的对浏览器缓存文件夹进行限制是不够的。比较实用的防范方法就是禁止IE浏览器在系统敏感位置创建文件,基于此,我们可以创建如下规则:
%ProgramFiles%\Internet Explorer\iexplore.exe 基本用户
%UserProfile%\Local Settings\Temporary Internet Files\** 不允许的
%UserProfile%\Local Settings\Temporary Internet Files\* 不允许的
%UserProfile%\Local Settings\Temporary Internet Files\ 不允许的
%UserProfile%\Local Settings\Temporary Internet Files 不允许的
如果你使用的是其它浏览器,同样将其设置为“基本用户”即可。
U盘规则
比较实际的作法:
U盘符:\* 不允许的 不信任的 受限的 都可以
不过设为不允许的安全度更高,也不会对U盘的正常操作有什么限制。
CMD限制策略
%Comspec% 基本用户
这里要注意的是系统对于CMD和批处理文件是分开处理的,即使对CMD设置了不允许,仍然可以运行批处理
对于一些系统中平时我们极少用,但存在潜在威胁的程序我们也要进行限制。比如ftp.exe、 tftp.exe、 telnet.exe、 net.exe 、net1.exe 、debug.exe 、at.exe、 arp.exe 、wscript.exe、 cscript.exe等等,都可以将其设置为受限的或者直接设成不允许的。
禁止伪装的系统进程
svchost.exe 不允许的
C:\Windows\System32\Svchost.exe 不受限的
如果你有兴趣,有精神,还可以为系统的所有进程做一个白名单,这样安全性可能会更高。
其它规则大家可以自由发挥。
策略的备份
最后提一下策略的备份。不能这么辛苦做完下次重做系统再来一次吧,呵呵,备份很简单,我们可以通过导出注册表来备份(不提倡,也就不介绍了)。
也可以通过直接备份文件来备份,打开 C:\WINDOWS\system32\GroupPolicy\Machine ,在这个目录下有一个 Registry.pol 文件,对,就是它了。备份它,重做系统后直接COPY过来就可以了,当然你也可以将你的策略分享给更多人使用。这里有一点要注意的,就是这个Machine文件夹如果没有,千万不能手动建立,否则无效,可以使用我们前面介绍过的创建策略的方法,创建以后就会生成这个文件夹,也可以你在备份的时候直接备份这个文件夹。千万要记得不能手动建立。如果你不想使用这些策略了,很简单,将 Registry.pol 文件改名或者删除即可。实战:U盘病毒解决方法
我这里介绍的都是一些通过系统自身来实现的方法,不使用第三方软件。喜欢用第三方软件的朋友们就不要讨论了。
前面已经介绍过第一种方法了:使用 软件限制策略,创建一条规则 “?\*.* 不允许的” ,这样即使你中了U盘病毒它也没办法运行。
第二种方法,其实也算是第一种方法的延伸吧。前面我们分析过系统对 autorun.inf 文件的处理流程,从中我们可以看出有一步,
explorer.exe 读取 autorun.inf 的内容后会将其写入注册表中,由此,我们可以通过对注册表相关键值的权限进行限制,从而使其无法修改注册表,进而达到防止U盘病毒运行的目的。相关注册表键:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\open
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\autorun
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\explorer
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\*\shell\*\Command
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
具体做法是将这些键降低权限,或者直接将所有用户对其的访问权限取消都可以。
第三种方法就是利用Windows的一个漏洞,建立Bug文件夹,来防止Autorun类病毒。具体方法是:
首先在U盘下建立一个名为Autorun.inf的文件夹,然后在这个文件夹下建立一个带“.”的BUG文件夹,这样的话 autorun.inf 文件夹就无法删除了,比如我们在D盘下建立:
首先在D盘下建立 Autorun.inf 文件夹 然后运行CMD,输入
md d:\autorun.inf\test..\
这样就可以在autorun.inf文件夹里建一个名为“test.”的文件夹,在资源管理器中无法访问,无法改名,无法删除。
这种方法比较消极,但适用于经常在别人机子上使用U盘的情况。不过据说有些病毒已经可以对付这种方法了。
第四种方法,也是流传很广的一种做法,就是通过组策略或者注册表禁止自动播放功能。这种方法以前我也是深信不疑的,但通过近来的
几个小实验,发现这种方法也是有缺陷的,它只能防止一些做工粗糙的U盘病毒,对于很多病毒其实是防不了的。这个我们可以做如下实验来验证。我们自己建立一个 autorun.inf 文件,放于U盘根目录下,再COPY一个NOTEPAD到你的U盘根目录下,其内容如下:
[autorun]
OPEN=NOTEPAD.exe
shell\open=打开(&O)
shell\open\Command=NOTEPAD.exe
shell\open\Default=1
shell\explore=资源管理器(&X)
shell\explore\Command=NOTEPAD.exe
从组策略中关闭自动播放功能,在U盘点击右键,新菜单里没有多出来的选项,但你双击U盘试试,你会发现NOTEPAD运行了。使用右键选择打开或者资源管理器也一样,都会运行,因为这里 autorun.inf 已经修改了右键菜单里原来这两项的功能了。 那么自动播放是用来干嘛的呢?相信很多筒子都知道,现在有好多光盘,当你把光盘放入光驱后,不用你进行任何操作,就会弹出一个界面,让你选择运行什么,或者播放什么这一类,记得瑞星的杀软就是这样,还有一些主板显卡的驱动盘也有这功能,但是把同样的内容放入U盘中,插入U盘的时候却不会自动运行,很显然操作系统的这个功能只是对光盘有效,这就是我们所知道的自动播放功能,我们在组策略中关闭了自动播放功能,仅仅只是使光盘放入光驱后不会自动运行,但你点击光驱右键,你会发现 自动播放 的选择还是存在的,所以关闭自动播放毫无意义。在这里我们要注意一个小小的概念,自动播放(AutoPlay) 自动运行(AutoRun) 这是有区别的。要想彻底关闭系统的这个功能,我们只能从服务入手,对系统熟的话你就会知道系统处理自动播放和自动运行的服务是 Shell Hardware Detection ,所以我们只要关闭了 Shell Hardware Detection 这个服务,所有的U盘病毒都不可能运行起来了。但这种方法也不是万能的,因为系统的差异,可能某些系统关闭此服务后会导致系统启动缓慢。
个人认为,对于U盘病毒的防范,修改注册表的那种方法是最有效而且没有什么副作用的。
>> 本文固定链接: http://www.vcgood.com/archives/2712
>> 转载请注明: mei1977mei 2008年09月08日 于 C语言帝国 发表