扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
不能把启发式理解成“脱壳引擎的一部分”,因为脱壳有“脱壳引擎”负责,脱壳的事情不可以放在启发式概念的范畴中。
1)
我们假设病毒文件是一个exe文件,这个exe文件没有壳,而且是所有杀毒软件都不认识的,这个时候,对所有杀毒软件来讲,扫描这个样本只需要“病毒库”以及“真正的启发式”,“脱壳引擎”根本不需要工作。我认为从专业的测试杀毒软件启发式的能力上,这样的测试才是有意义的,因为他是"病毒原体结构探测"。
但在日常我们遇到的大量病毒中,加壳是普遍现象,那么怎么理解启发式在面对大量加壳样本时应该付的责任?
我认为,启发式的责任仍然是“病毒原体结构探测”,只检查exe病毒原体的程序语言是否有符合可疑条件的情况。
有些杀毒软件,脱壳引擎方面功能简陋,对大量的壳都无法检查,这个时候他们真的很聪明,既然没能力脱壳,根本看不到exe文件的真面目,只能看见“壳”,那干脆针对“壳的结构进行”研究,最终研究成了一套独有的“启发式”:“探测壳结构”的方法,这样的启发式,我给其评分:“低、贱”
2)
为何说其低贱?因为他很容易被淘汰,需要不断的更新引擎,增加Internet更新数据量。
壳有多少种,多的数不清,每天都在有新的壳诞生,又有老的有bug的壳被淘汰,壳的“淘汰快”的特性,也意味着“探测壳结构”的“启发式”的特性也是如此,会随着壳而不断淘汰。
其次,误报率极高,因为壳再有特点,其特点也非常有限,他的特点远远不可以和“高级语言”编写的病毒的特点相提并论,要针对这么“没特点”的东西非要死心塌地的搞出一点名堂,连“脱壳”都脱不了的公司,也必定做不好,误报率闭眼也知道非常高,要不断的“加入白名单”才可以减少误报的数量,甚至一些软件的官方论坛每个版面都有“误报”之类的帖子,可见杀毒软件公司的一部分精力要投入到解决误报,而不是开发新引擎上面,也直接导致某些反病毒软件现在才有“Anti-root kit”组件功能,比其他二流厂商晚了起码2年的时间。
3)
真正优秀的启发式,并不是用一堆样本去测试,启发越多就越好,启发式的好坏,和用杂乱的样本去测试的结果没有直接关系。
----------------------------------------------------------------------------------------------------------------
一个高质量的“病毒原体结构探测”启发式,配合一个优秀的脱壳引擎,这样才能有非常好的测试结果,非常准确,误报率极低;
一个高质量的“病毒原体结构探测”启发式,配合一个普通的脱壳引擎,这样的测试结果只能说令人满意,非常准确,误报率极低;
一个高质量的“病毒原体结构探测”启发式,配合一个很差的脱壳引擎,这样的测试结果肯定不怎么样,但识别出的病毒,仍然非常准确,误报率极低;
----------------------------------------------------------------------------------------------------------------
可见,初级用户判断启发式是否是“病毒原体结构探测”,就是看其是否具有非常准确,误报率极低的特点。我们知道Norton也有启发式,但是非常无效,但是他非常准确,误报率极低,他也是真正的“病毒原体结构探测”,只不过很烂罢了。
优秀的“病毒原体结构探测”引擎目前常见的有NOD32、Panda、Bitdefender这3家。
----------------------------------------------------------------------------------------------------------------
一个高质量的“探测壳结构”启发式,配合一个优秀的脱壳引擎,测试结果完全依赖于病毒库的大小,当然结果非常准确,误报率极低;
一个高质量的“探测壳结构”启发式,配合一个普通的脱壳引擎,测试结果大部分依赖于病毒库的大小以及对壳结构的启发,结果比较准确,误报率中等;
一个高质量的“探测壳结构”启发式,配合一个很差的脱壳引擎,测试结果很不错,但不准确,误报率偏高;
----------------------------------------------------------------------------------------------------------------
初级用户如何判断自己用的软件是否是“探测壳结构”启发式,最简单的方法就是看其是否符合“不准确,误报率偏高”的特点,如果有这个特点,他的启发式就是“探测壳结构”启发式。
4)
启发式替代脱壳引擎?弥补杀软的不足?
的确是这样,一个脱壳引擎的开发,需要引擎专家几个月甚至几年的时间,当然这个是某些公司专家自己说的话,研究脱壳引擎脱某个壳花费了6个月的时间,但据我所知,这个专家除了周一~周五的每天8小时的工作时间之外,连杀毒软件看都不看,他仅仅当作是“工作而已”,根本没有把全部时间和精力都投入到引擎的开发中,这样“磨洋工”的干6个月,还不如交给尤金这样的专家干1个月,绰绰有余。
脱壳引擎好的软件当然存在,卡巴斯基、Dr.web的引擎就是非常好的例子。
为何到2006年卡巴斯基还没有启发式?因为真正的启发式-“病毒原体结构探测”启发式开发起来非常困难,卡巴斯基面临要开发的启发式,是针对病毒
原体的启发式,因为他自己的脱壳引擎已经足够强大可以脱壳,他们根本不需要研究一个“探测壳结构”的启发式来弥补脱壳引擎的不足,这个开发的
时间、工作量是远大于开发一个“探测壳结构”启发式的开发周期的。
----------------------------------------------------------------------------------------------------------------
这就是为什么没有启发式的卡巴6.0竟然在评测里面和一些有所谓{“探测壳结构”启发式+80万病毒库}的杀毒软件在同一个档次,因为后者的启发式根本就是“脱壳引擎的低档次替代品”,他也叫做“启发式”,但和传统意义上的“启发式”是完全两回事~,此“启发式”,非彼“启发式”。
“探测壳结构”的“发明”,目前欧洲新崛起的二、三流厂商纷纷效仿,因为开发一个“探测壳结构”的难度比开发脱壳引擎容易的多的多,“误报率高、引擎需要频繁更新以适应新的壳的结构”等等问题接踵而至,绝对不是一个一劳永逸的办法,也不是一个对用户负责任的行为。
总结:搞混启发式,绝对是混淆是非的行为,希望网友能理性看待“启发式”、“报壳”之间的种种联系和关系。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。