论文部分内容阅读
反病毒技术的发展
随着计算机技术及反毒技术的发展,早期的防病毒卡亦象其它的计算机硬件卡(如汉字卡等)一样,逐步的衰落出市场,与此对应的,各种反病毒软件开始日益风行起来,并且经过十几年的发展,逐步经历了好几代反病毒技术的发展。
第一代反病毒技术是采取单纯的病毒特征代码分析,将病毒从带毒文件中清除掉。这种方式可以准确地清除病毒,可靠性很高。后来病毒技术发展了,特别是加密和变形技术的运用,使得这种简单的静态扫描方式失去了作用。随之而来的反病毒技术也发展了一步。
第二代反病毒技术是采用静态广谱特征扫描方法检测病毒,这种方式可以更多地检测出变形病毒,但另一方面误报率也提高,尤其是用这种不严格的特征判定方式去清除病毒带来的风险性很大,容易造成文件和数据的破坏。所以说静态防病毒技术也有难以克服的缺陷。
第三代反病毒技术的主要特点是将静态扫描技术和动态仿真跟踪技术结合起来,将查找病毒和清除病毒合二为一,形成一个整体解决方案,能够全面实现防、查、杀等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵,凡是检测到的病毒都能清除,不会破坏文件和数据。随着病毒数量的增加和新型病毒技术的发展,静态扫描技术将会使反毒软件速度降低,驻留内存防毒模块容易产生误报。
第四代反病毒技术则是针对计算机病毒的发展而基于病毒家族体系的命名规则、基于多位CRC校验和扫描机理,启发式智能代码分析模块、动态数据还原模块(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒模块、自身免疫模块等先进的解毒技术,较好的解决了以前防毒技术顾此失彼、此消彼长的状态。
病毒检测方法
目前市面上常见的防毒软件经常使用的防毒技术一般分为以下几种:特征代码法、校验和法、行为监测法、软件模拟法、VICE先知扫描法等。这些方法依据其原理的不同,实现时所需开销也各不相同,检测范围也不同,各有所长。下面我将详细介绍一下。
1、特征代码法
特征代码法被早期应用于SCAN、CPAV等著名病毒检测工具中,目前被认为是用来检测已知病毒的最简单、开销最小的方法。防毒软件在最初的扫毒方式是将所有病毒的病毒码加以剖析,并且将这些病毒独有的特征搜集在一个病毒码资料库中,每当需要扫描该程序是否有毒的时候,启动杀毒软件程序,以扫描的方式与该病毒码资料库内的现有资料一一比对,如果两方资料皆有吻合之处的话,既判定该程序已遭病毒感染。特征代码法的实现步骤如下:
1)采集已知病毒样本。如果病毒既感染COM文件,又感染EXE文件,那么要对这种病毒要同时采集COM型病毒样本和EXE型病毒样本。
2)在病毒样本中,抽取病毒特征代码。在既感染COM文件又感染EXE文件的病毒样本中,要抽取两种样本共有的代码。
3)将特征代码纳入病毒数据库。
4)检测文件。打开被检测文件,在文件中搜索,检查文件中是否含有病毒数据库中的病毒特征代码。如果发现病毒特征代码,由特征代码与病毒一一对应,便可以断定,被查文件所感染的是何种病毒。
采用病毒特征代码法的检测工具,其检测准确,可识别病毒的名称、误报警率低、依据检测结果,可做相应的解毒处理。
但是,面对不断出现的新病毒,必须不断更新版本,否则便检测不会新出现的各种病毒,因病毒特征代码法对从未见过的新病毒,自然无法知道其特征代码,无法去检测这些新病毒。随着病毒种类的增多,新版本的病毒数据库会加大,检索时间就会变长,大大降低了软件的使用效率。而且此类扫毒方法不能检测出隐蔽性病毒,因隐蔽性病毒先进驻内存后,能够将感染文件中的病毒代码剥去,检测工具就会发现被检测文件是一个完好的文件,将会被隐蔽性病毒所蒙骗。
2、校验和法
我们知道,大多数的病毒都不是单独存在的,它们大都依附或寄生于其它的文档程序,所以被感染的程序会有档案大小增加的情况产生或者是档案日期被修改的情形。这样防毒软件在安装的时候会自动将硬盘中的所有档案资料做一次汇总并加以记录,将正常文件的内容,计算其校验和,将该校验和写入文件中或写入别的文件中保存。在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染,这种方法叫校验和法,它既可发现已知病毒又可发现未知病毒。
运用校验和法查病毒采用三种方式:
1)在检测病毒工具中纳入校验和法,对被查的对象文件计算其正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较;
2) 在应用程序中,放入校验和法自我检查功能,将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原校验和值。实现应用程序的自检测;
3) 将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。
这种方法既能发现已知病毒,也能发现未知病毒,但是,它不能识别病毒类,不能报出病毒名称。由于病毒感染并非文件内容改变的惟一原因,文件内容的改变有可能是正常程序引起的,所以校验和法常常误报警。特别是遇到软件版更新、变更口令、修改运行参数等,校验和法都会误报。同样,校验和法对隐蔽性病毒无效。隐蔽性病毒进驻内存后,会自动剥去染毒程序中的病毒代码,使校验和法失效。
3、 行为监测法
利用病毒的特有行为特征性来监测病毒的方法,称为行为监测法。通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊。在正常程序中,这些行为比较罕见。当程序运行时,监视其行为,如果发现了病毒行为,立即报警。
这些作为监测病毒的行为特征如下:
1) 抢占INT 13H号中断
几乎所有的引导型病毒,都会攻击Boot扇区或主引导扇区。系统启动时,Boot扇区或主引导扇区获得执行权,系统会执行INT 13H功能,来完成各种[初始化设置及引导系统,这时,作为引导型病毒,它会占据INT 13H功能,并在其中放置病毒所需的代码,这时系统引导会首先加载病毒代码,完成驻留后,会将自身代码隐藏起来,继续执行系统的正常功能。
2) 修改DOS系统内存总量
病毒为了完成其特定的任务,比如传染、破坏,会常驻内存在内存中,但在以DOS操作系统对内存的管理机制是共享式,所有的程序全部在同一内存空间执行,并完成页面交换。为了防止DOS系统及其它应用程序将其覆盖,病毒程序会将DOS系统内存总量适量减少,使DOS系统及其它应用程序不会占用其病毒代码驻留的空间。
3) 更改COM、EXE文件内容
常见的病毒需要依附于其它计算机程序及文档,当病毒执行,就必须将自身的代码附加在被感染的文件之中,常的可执行文件以COM、EXE文件为主。所以病毒为了感染,一般会对COM、EXE文件执行写入的动作。
行为监测法可发现未知病毒、可相当准确地预报未知的多数病毒。但它不能识别病毒名称,而且在软件实现时有一定的难度。
4、 软件模拟法
多态性病毒每次感染都变化其病毒密码,对付这种病毒,特征代码法失效。因为多态性病毒代码实施密码化,而且每次所用密钥不同,把染毒的病毒代码相互比较,也各不相同,无法找出可能的做为特征的稳定代码。虽然行为检测法可以检测多态性病毒,但是在检测出病毒后,因为不知病毒的种类,难于做杀毒处理。对些,出现了一种新的病毒监测方法,那就是软件模拟法。该类工具开始运行时,使用特征代码法监测病毒,如果发现隐蔽病毒或多态性病毒嫌疑时,启动软件模拟模块,监测病毒的运行,待病毒自身的密码译码后,再运用特征代码法来识别病毒的种类。
5、 VICE先知扫描法
该技术是专门针对于未知的电脑病毒所设计的,利用这种技术可以直接模拟CPU的动作来侦测出某些变种病毒的活动情况,并且研制出该病毒的病毒码。由于该技术较其他解毒技术严谨,对于比较复杂的程序在比对上会耗费比较多的时间,所以该技术的应用不那么广泛。
计算机技术的革新,使人们的使用的信息交换方式也得到了很大的改变,病毒的特性也发生了变化。Windows窗口界面的操作系统平台逐步占据当前家庭及办公环境的主流,就导致了基于DOS操作系统的病毒的逐步走向没落,而32位的病毒基本代表了当前最新病毒的发展方向。
而且,随着Internet使用的逐步普及,新一代的病毒出现了,这种被称为第二代的病毒正逐步摆脱平台的依赖性,它们以ActiveX技术和Java Applet为载体,潜伏在HTML网页里面。用户只要简单地浏览Internet网页,就会将ActiveX或Java程序下载到自己的硬盘中,这时用户完全毫无觉察,因为它们不需要专门的下载某个文件或者阅读电子邮件附件。
因此,随着网络技术的不断发展,基于网络的病毒将逐步成为计算机病毒的主流,网络反病毒技术也将成为下一代防病毒技术的重点,也是下一代防病毒软件的发展趋势。