原帖由 zq127 于 2007-7-11 15:02 发表 
这几天我一直在想一个问题 将来病毒会以什么方法饶过主动防御系统?今天终于有答案了
下面简要的和大家说说
一个病毒要想饶过主动防御系统就必须首先表现一些和正常文件接近的一些行为.并在第一时间让主动防 ...
小小地问一声,楼主所指的"和正常文件接近的一些行为","危害性近似为0的行为"具体是指哪些行为?一个程序运行开始,要做的几件基本的事
一,创建线程
二,注入dl
等等.....(本人小菜,具体还有的不大知道了.....)
而这些都是主动防御所监视的范围之类的吧?
一旦在此过程中发生异常,主动防御应该都是会将其剿灭的....
如果病毒只做了一些和普通文件相同的事而不被报警的话,只能说这是主动防御的一个弊病,为了避免用户使用的麻烦,主动防御必须定义一些可信任识别的操作,而不是所有的操作都进行报警,但是,杀毒软件还是可以弥补的,这就是应该配合其使用的实时监控....如一些定时炸弹.或者是木马之类,它们的行为完全符合楼主所说的现象,先做一些看似并无危害的操作, 等到创建以后,假死一段时间(什么都不干),一段时间后进行各式操作.....楼主可以试验一下,我相信木马是不能避过杀毒软件的(具有主动防御的软件),
再罗嗦一点,从原理上来讲,所有程序运行就那么几个动作,创建线程,使用别的文件(包括读取,修改,删除,创建,子程序启动等),从这个层面而言,所有的程序的母版应该是一样的,也就是说,病毒和普通文件原本也是无区别的
对于一些优化类软件,我自我认为他们应该也被列为危险软件之类
之所主动防御以没有对其报警,原因有三:
1.厂商之间的联络使得杀毒软件在插件文件中对其做了一些被信任的定义
(这个例子很好举,QQ就是其中之一,也很容易做到,如"熊猫烧香"所采用的就是这种定义,遇到与病毒有关的字样或标志就直接kill了)
2,用户的自定义信任,如卡巴斯基所用的信任区(把本身被识别为风险软件添加进去)
这类软件通常是一些小的,免费的优化软件或者是系统级软件,并没有和杀毒软件厂商进行协商之类的(如冰刃和systemternals的产品)
3,在开始操作时做了一些底层操作(如在开始时,取得系统管理员权限,调用windows系统的一些dos命令,进行一些操作),超级兔子大概就是这样做的,因为超级兔子貌似没有非常多的自己做的插件,所以它很多的优化功能还是通过调用系统的命令实现的.
故而,拙见认为,凡有主动防御的都应配有实时监控,而这样带来的问题就会造成占用资源太多(每个程序都要监控,不占用资源才怪),所以,为了弥补这个缺憾,又应该有一些定制的规则(例如认为操作系统自带的一些命令操作是被信任的),也可以让用户自定义规则,以方便一些特定程序的使用,而对这些被信任的程序在运行之初也要进行对比,以确定其未被修改,这样做是为了避免另外一个问题:
一个被信任的程序染毒而未被发现,在其运行之时(因为已经被信任,所以不在监控之类)进行了一些危险操作(病毒行为).
说完这些,表明一下自己的观点吧
1.脱离监控谈防御是空谈,每个程序编写者都懂得伪装之术
2.防御只是一个过程,这个过程一过,就不会成为杀毒的主角
3.没有规则的防御其实和hips应该是没有两样的
4.杀毒软件没有了病毒特征库是不可以被定义为杀毒软件的,一来,麻烦自己,每个病毒只能在其运行时才能被发现(万一在没有被发现时转移到另一个系统中呢),这就违背了我们想要干净系统的原则,二来,基本上不可以发现已经被病毒修改的文件,这就会导致一些嵌入性病毒的盛行(该文件被信任的情况下),或者就是运行该程序不能运行,换言之,这种做法只适合一些纯病毒的查杀,并不能做到"清除"这两个字(一般情况下是连被感染程序一起删了)毕竟,很多病毒还是很善意的,只在程序的顶部或是尾部等处进行插入,而不是将源文件修改(如熊猫烧香),是可以进行清除的....
ps:刚刚发现,举例过程中多次用到"熊猫烧香",可能是对其恨入骨髓的原因吧,各位见谅了.....
以上只是我个人看法,希望大家予以拍砖 |