1989年,第一款杀毒软件Mcafee诞生,至今杀毒软件已经有了25年的历史,最近几天有几篇有关杀毒引擎的水稿突然冒了出来,这几篇水稿对杀毒引擎历史缺乏基本的了解,概念混乱,低级的让人不忍直视,所以愤然梳理了一下杀毒引擎的历史,算是做个基础知识普及,也给制造水稿者一些基本素材,以正视听,首先声明,部分内容摘自多位前辈的历史作品,只为普及教育,无商业目的,请多多见谅。
1、第一代:特征码杀毒引擎
1989年,第一款杀毒软件Mcafee诞生,开启第一代依赖特征码的杀毒引擎时代。
这一代杀毒软件无论是查杀还是防御,都是基于特征码的,查杀用特征码比对,防御实时监控。
特征码引擎的基本原理就是“杀毒引擎+特征码匹配”,杀毒引擎是枪,特征码是子弹,子弹越多,能杀的病毒就越多。
特征库是由杀毒厂商收集到的病毒样本的特征码组成,而特征码则是病毒分析工程师从病毒程序中找到和正当软件的不同之处,截取一段类似于“搜索关键词”的程序代码。
电脑一开机,特征码就被读到内存中,当用杀毒引擎扫描硬盘、或者监控一个文件的动作时(比如下载、修改注册表等等),它会读取文件并且与特征库中的所有特征码“关键词”进行匹配,如果发现文件程序代码被“关键词”命中,就把那个文件判定为病毒,然后报警和拦截。
特征库匹配是查杀已知病毒很有效的一项技术,也是杀毒引擎赖以工作的基础(扫描、监控都需要调用特征库),一直被杀毒软件沿用下来,所有特征码都需要严格的测试和比对,否则极易造成误伤。早期的杀毒引擎都是特征码杀毒引擎。
2、第二代:启发式杀毒引擎
启发式引擎扫描指的“运用某种方式去判定事物的知识和技能”,是让杀毒软件具有学习能力的一项技术,通过行为判断、文件结构分析等手段,在较少依赖特征库的情况下能够查杀未知的木马病毒。
启发式又分为行为启发和静态启发两种,能够通过一些行为规则或静态特征来识别出一些未知的病毒,对未知病毒有一定的检测能力,但启发式仍然要依赖特征码,比如它会按家族来查杀,即使一些病毒特征码变了,但可以通过一些静态特征来识别和查杀。启发式可以部分地进行智能查杀,但都必须和上一代的特征码引擎配合使用,并且仍然需要人工分析。
启发式引擎公认比较强的是小红伞、NOD32,其检测能力比较高。
互联网高速普及的今天,基于特征码的杀毒引擎也受到越来越多质疑:木马数量急剧增加,人工截取特征码的效率有限。即使假设所有样本都能及时处理,特征库变大也会带来资源占用过大的问题,特别是杀毒引擎随系统启动时都要把特征库写入内存,这是杀毒软件遭到诟病的一大原因。
3、第三代:人工智能引擎
人工智能引擎主要依靠于人工智能技术,这一代引擎已经摆脱了对病毒特征库的依赖,它在海量病毒样本数据中归纳出一套智能算法,自己来发现和学习病毒变化规律。它无需频繁更新特征库、无需分析病毒静态特征、无需分析病毒行为,但是病毒检出率却远远超过了第一、二代引擎的总和,而且查杀速度比传统引擎至少快一倍。人工智能引擎的代表是360的QVM人工智能引擎,这个引擎在2010年5月研发成功,当年正式应用于360杀毒产品中,QVM人工智能引擎目前已经发展到第二代。 |