感染了病毒的移动磁盘(比如U盘和移动硬盘)是令我们非常头痛的一个问题,电脑免不了要插入U盘,如果U盘里有未知的病毒,或是遇到了伪装极深的病毒(比如伪装成U盘中已经存在的文件夹),我相信经验不怎么丰富的人很容易会中招的。不信我们来做个实验,打开“我的电脑”,将“工具”一“文件夹选项”中的“隐藏已知文件类型属性”取消掉,然后将一个exe文件改名为文件名+100个空格+几个点号+exe,这时我们再来看看,就会发现exe的后缀看不到,就连鼠标的提示信息也没有显示出文件类型,只有在左边的信息中才正确的显示出了文件的类型。如果将exe的图标再更换一下,几乎完全的做到了迷惑性隐藏,当然这个程序也是完全可以正常运行的。
看到这里,是不是有许多读者被吓了一跳!杀毒软件对付免杀的病毒本来就已经非常吃力了,虽然后来又出现了针对移动存储设备的HIPS(主动防御)功能来阻止U盘病毒,但是要实现这些主动防御的拦截功能就必须要用到HOOK API,甚至有的软件使用的就是驱动文件进行Ring0环境的HOOK。使用的技术确实是很先进,也很有效,但大家试想一下,你电脑上安装的360在使用驱动HOOK,你的杀毒软件也在使用驱动HOOK,防火墙和主动防御软件(比如微点、MD等)也都在使用驱动HOOK,对于很多系统API(比如进程创建的CreateProcessW函数),大家都在拦截,这直接也就导致了系统运行的缓慢。
可能一般的用户没有切身的体会,我系统里安装有卡巴+ZoneAlarm+360,在使用VB和E语言编译的时候会感觉到明显的延时,在使用联想IceBound还原软件的时候,经常会出现以前没有过的蓝屏。网上也有许多文章评论说现在一些不稳定的驱动和HOOK技术大大降低了系统的稳定性,看到这里大家还会使用那些功能强大的“驱动级”U盘防护软件吗?这些软件一般都是由个人编写的,没有经过充分的调试,也没有足够的资金来支持软件的完善,所以在使用HOOK以及驱动技术时是不能和卡巴这类大型软件相比的,稳定性相差很远。
上面介绍了这么多,我想还是很有必要让大家了解这些的,如果我们能利用无HOOK无驱动的“绿色”技术来达到我们的目的那该有多好啊!其实实现的技术是有的,同时也是尽人皆知的技术——组策略。比如我们要禁用系统G盘上所有可执行文件的运行,就可以在“运行”栏中输入“gpedit.msc”打开组策略,依次打开“计算机配置”一“Windows设置”一“安全设置”一“软件限制策略”一“其它规则”,如果出现“没有定义软件限制策略”,就需要在“软件限制策略”上点右键选择“创建新的策略”。“计算机配置”与“用户配置”的区别就在于前者的配置是针对所有用户,而后者针对的是当前用户。我们在右边窗口中点右键选择“新建路径规则(P)…”,在“路径”栏中填人“g:\”,“安全级别”就保持默认的“不允许”,“确定”后就行了。此时我们再运行G盘的可执行文件试试,就会出现结果,运行被阻止了。
轻易的就解决了这个大难题,以前没有使用过组策略的朋友难免会眼前一亮,但是我想大多数朋友也早就知道这个方法了。现在我们就进入正题,我们要解决的问题就是让系统自动添加这样的规则,或者是在我们想解除这些规则的时候系统会自动删除。我找了很久,终于还是找到了,下面就和大家分享一下,组策略配置文件位于“c:\WINDOWS\system32\GroupPolicy\”目录下,“计算机配置”位于Machine目录下,“用户配置”位于User目录下,保存配置的文件是Registry.pol,我们刚才设置了G盘阻止程序运行,这个信息已经写入了这个文件中,我们将这个内容拷贝出来,然后再将阻止G盘程序运行的规则删除掉,此时G盘的可执行程序就可以正常运行了。我们再将原有的“C:lWINDOWS\system32\GroupPolicy\Machine\Registry.pol”删除,将备份的Registry.pol还原,此时还不能还原组策略的规则,需要在CMD中执行gpupdate/force命令,此时组策略的规则就已经导入并刷新了,大家再次打开组策略就会发现阻止G盘的规则已经存在了,运行G盘程序时就会出现限制运行的提示了。
现在我们就来实现自动添加规则和删除规则,需要做的是在没有任何规则的时候备份Registry.pol文件(比如复制为Registry.pol.bakno),然后添加我们需要阻止的规则,再备份一次Registry.pol文件(比如再次复制为Registry.pol.bakyes),建立一个“阻止bat”文件,内容如下:
再来建立一个“取消阻止.bat”文件,内容如下:
当我们需要阻止移动磁盘的时候运行一下“阻止.bat”文件就行了,什么时候不想阻止了就执行一下“取消阻止.bat”。对于只用电脑做“正事”的朋友来说本文可以作为一篇知识性的文章来阅读,而对于“玩电脑”的朋友来说,这两个bat文件非常实用,不必每次修改,当然我也是抛砖引玉,对于其它的策略配置一样实用。
另外,我根据这个原理使用E语言编写了一个移动磁盘防执行墙,加入了很多人性化的配置,比如拦截了阻止执行时的对话框,换成了自己的对话框,对于DIY的朋友来说,这是个小小的亮点,总的来说非常有意思的,很值得一试。