您当前所在位置:

浅析计算机病毒及其检测

2013-02-13

传染性是计算机病毒的显着特色,也是衡量一个程序是不是计算机病毒的重要标志,它具有很强的再生机制,只要一接触便会被传染,无论是否是可执行程序,而传染上之后,计算机病毒一般会隐藏在可执行文件中,或者是首部或者尾部,只要一运行,便又迅速传染其他文件。

破坏性是计算机病毒被设计出来的主要目的,更是它的主要特征。当计算机系统感染病毒之后,病毒便会根据设计者的指示,或者破坏系统资源,或者破坏系统中的数据,又或者干扰计算机的正常运行以窃取用户的作息,甚至破坏整个系统,使计算机系统的运行遭到全面的摧毁。概括起来,计算机的攻击和破坏主要集中在三个方面:③(1)感染和破坏计算机硬盘或软盘的引导扇区,改写Flash BIOS芯片中的系统程序;(2)感染系统文件和可执行文件;(3)删除或更改软盘和硬盘中的文件。

伪装性是计算机病毒寄生于计算机的某一个合法程序与系统,悄悄隐藏起来,在用户不察觉的情况下对计算机其他文件进行传染,在完成自己传染和对计算机系统的破坏后,又把控制权交回宿主程序,继续完成宿主程序的功能。在很多情况下,它会覆盖多种文件或程序,以此隐藏它们的恶意功能,这就是它们的伪装性。

当然,计算机病毒还有其他的特征,如非授权可执行性、潜伏性、可触发性等,但这些在实质上可以归于以上三个主要特性。

图3

3 计算机病毒的检测

遭受计算机病毒后,计算机会有一些显着的表现,如电脑运行速度降低;程序访问磁盘频次增加;程序访问不应访问的磁盘驱动器;磁盘可用空间迅速减少;正常运行程序时出现异常现象或无法运行,屏幕出现不正常文字、图画;显示屏出现异常文字及黑洞、小球、两点等画面;文件异常消失;文件部分丢失或整个文件被替代;出现不明来源的数据文件目录④等等。

因此,用户在使用计算机的过程中很有必要对计算机病毒进行检测。下面介绍几种检测方法:

(1)通过行为异常来检测,即behavioral abnormality;在这种方法里,将一个病毒监控器软件(virus montor)装下机器,用它来监视计算机系统在日常应用中的不同行为。这种监控器软件知道病毒有一些试图传染和逃避检测的典型活动,如试图写根扇区、修改中断向量、写系统文件等。这种方法最大的好处在于它适用于所有的病毒,包括已知与未知的,并且在病毒的传染前就发现它,及时提醒用户。

(2)通过仿真来检测,即emulation;所谓仿真检测就是被检测的程序由病毒检测程序来进行仿真,它用来决定程序的运行行为。这种方法与前面行为异常的检测的方法不同在于,监控器软件的监控是让程序真正运行的,而该方法只在特定样本输入的情况下进行仿真,在仿真过程如一旦发现一个程序试图修改中断向量或打开敏感文件,则该程序便就是可疑的。这种检测有一个缺点就是检测的结果不够精确,不可能总是正确地判定一个程序是否是计算机病毒。

(3)通过效验和来检测,即checksum;这种方法是为了保护程序不被修改或破坏,一个基于程序内容的效验和被计算机出来并以加密方式存贮在程序内部或外部。通过校验和这样的方式,由于加密使用意向函数(one-way function),病毒传染后要伪造一个同样的检验和在计算上基本上不可能,从而检测出是否遭受计算机病毒的感染与攻击。

(4)通过动态的程序的完整性来检测,即program integrity;这种方法是保证可执行程序在运行时的完整性,或在程序的完整性和运行之间检测是否传染。这种方法的基本途径在于针对一个事先定义的程序“颗粒”,先计算一个加密的校验和,事先对每个基本块计算一个加密的效验和,并把它存在基本块⑤中。当每一次控制流入基本块的顶部,重新计算校验和,并把加密后的校验和与存贮的检验和比较,这就能检测出基本块内部指令的完整性,从而知道是否感染计算机病毒。

(5)通过特征码扫描来检测,即signature scanning;这种方法是检测计算机系统中或可执行程序中是否感染病毒最常见也是最简单的方法,但这种方法只能针对已知病毒,对未知的病毒无法检测,也不能直接应用于自我加密的病毒。

(6)通过手工检测;对一些未知的病毒或已经变形的病毒,直截了当的方法就是对每一个未知的病毒或变形的病毒逐行编制一套特殊的程序去检测不同的代码序列。当然,这种方法在普通用户中并不实用,极费时间又代价昂贵。

 

相关推荐链接:

哲学  教育  语言  文学  历史  文化