巴黎豆豆 2008-3-22 19:01
Hips规则优化个人经验
前言:
本文以EQ为例(其他hips同理可得),探讨hips规则对[url=http://security.ctocio.com.cn/]安全[/url]性和性能的影响。目标是在保证基本安全的同时尽量降低对性能影响。
首先了解一下hips的工作原理。
Hips中FD的作用就是监控系统对任何文件的读取,修改,创建,删除操作;
AD监控程序运行,加载,访问物理内存,操作底层磁盘,键盘记录等等的关键操作;
[url=http://whatis.ctocio.com.cn/searchwhatis/18/6093518.shtml]RD[/url]监控对注册表的操作。
假设有病毒入侵电脑:
1病毒首先会在硬盘上建立病毒实体,这时候就会触发FD的“创建”规则
2接着读取病毒体,触发FD的“读取”规则
3接着运行病毒体,触发AD的各项规则
4如果是感染型病毒,在运行过程中还会修改硬盘的文件,例如感染exe文件,触发FD的“修改”规则;如果是破坏型病毒,运行过程中还会删除硬盘的文件,例如删除exe,gho等文件,触发FD的“删除”规则.
5接着病毒通常会修改注册表来达到自启动或破坏的目的,此时会触发RD规则;如果病毒连接[url=http://networking.ctocio.com.cn/]网络[/url]的话,就会触发ND规则(也就是防火墙规则,这就在EQ范围之外了)。
从上面可以看到,重要性由高到低的排列:FD的“创建”> FD的“读取”> AD > FD的“修改,删除”> ND > RD。前三项是最为重要的,因为关系到病毒能否成功运行,后面的只是病毒运行之后的补救措施而已。
每次触发规则,hips就会从规则库里面查找,如果里面已经有对该操作的规则,就按规则办;没有的话,就会询问使用者。从性能来讲,触发得越频繁,匹配的规则越多,导致的性能越低下。对触发频繁程度由高到低的排列:FD的“读取”> RD > FD的“修改”> AD > FD的“删除”> FD的“创建” 。(本排列是在本机的eq上添加监视规则,统计日志得出的。)
要写出高效的规则,必先了解所用的hips对规则的处理方法。以EQ为例,它的规则分3个组。组间优先级从高到低的排列:“黑名单”>“应用程序规则”> “所有程序规则”。在“黑名单”和“所有程序规则”两个组之中,同组的规则是优先级是从上到下排列。“应用程序规则”是按程序的[url=http://whatis.ctocio.com.cn/searchwhatis/292/7333792.shtml]进程[/url]查找匹配,同组的规则没有优先级之分。
根据以上排列,我们就可以通过调整规则,达到安全性和性能的平衡。将对性能影响很大,但安全性影响不大的规则尽量简化;将对性能影响不大,但安全性影响很大的规则尽量详细。
编写规则大致存在以下两种思路:
1,允许所有“安全的”执行,其余全部阻止。
2,阻止所有“危险的”执行,其余全部放行。
这两种思路代表不同的安全性和性能。基于正常电脑里面的文件“安全的”比“危险的”要多这个理论。要允许所有“安全的”比 阻止所有“危险的”所需要的规则多。"1"性能就自然低下,但也相对安全;"2"相反。根据本文目标,选择的是思路2.
巴黎豆豆 2008-3-22 19:02
编写规则的原则以下:
原则1:尽量把“允许”的规则写在前,“拒绝”的规则写在后。因为在大部分时间都是运行正常程序,这可以减少匹配时间。可能触发的越频繁的规则写在前,冷门的规则在后。将系统进程规则,杀毒软件规则在前,普通应用软件规则在后。使用通配符会增加规则匹配的时间,但同时会减少规则的数目,是一把双刃剑。
原则2:能在“应用程序规则”写的规则,尽量在这里写。因为这里是直接匹配进程的,效率较高。但过多也不好,能概括的尽量概括。建议不要选上“MD5校验程序文件”和“搜索所有程序”这两个参数。
原则3:FD的“读取”规则放在最前,而且规则数越少越好。因为FD的“读取”非常频繁,对性能影响最大。虽然它对安全性影响很大,但很难用“读取”规则区分正常程序和病毒。除了autorun型病毒是较容易区分的一种。
原则4:FD的“修改,删除”规则是用来保护数据的。建议建立一个“保护文件夹”,里面放要保护的所有文件,用规则来防止里面的修改和删除;再建立一个“临时下载文件夹”,用来下载的,用规则允许对里面文件的操作。下载完成后再移到“保护文件夹”;另外,对系统频繁操作的地方相对集中,就是临时文件夹和ie缓存目录,允许它们的操作;针对exe感染文件,还可以全盘保护exe;保护系统盘的dll,sys,保护ghost备份文件…。
原则5:FD的“创建”规则,所有规则的精华所在。因为它对性能影响不多,尽量详细吧!建议编写的“创建”规则以文件后缀为主,路径为辅,将危险的后缀全部禁止创建。例如,bat,reg,vbs,scr……有一个特别就是*.js文件,允许它在临时文件夹和ie缓存目录创建,但在其他目录创建的就一定要禁止。
原则6:AD规则,按照个人的使用习惯,把自己的软件通通打开一遍,全部允许。再把某几个危险的程序禁止,例如,CMD.exe,format.com……。在AD规则中有一个特殊的地方就是“加载库文件”,就是对应用程序加载dll的监控。它的触发频繁度占AD规则的触发70%以上,但用它很难区分正常程序和病毒。EQ自己默认就是“最低优先级允许”的。“最低优先级允许”的意思就是:当一个“加载库文件”事件触发的时候,EQ会查找所有的规则,如果都找不到“加载库文件”相关规则的话,就默认允许“加载库文件”。一个程序调用一堆dll,如果每个dll都经过“最低优先级允许”,那效率多低。干脆就在“黑名单”第一个规则写上“允许加载所有库文件”,变成“最高优先级允许”。
原则7:RD规则,鸡肋.作用又不大,又影响性能。尽量减少规则,保留最重要的,其他除去。或者干脆就把它关闭。