病毒的防治技术总是在与病毒的较量中得到发展的。
总的来讲,计算机病毒的防治技术分成四个方面,即检测、清除、免疫和防御。
除了免疫技术因目前找不到通用的免疫方法而进展不大之外,其他三项技术都有相当的进展。
图6-12计算机病毒的预防
一、病毒预防技术
计算机病毒的预防技术是指通过一定的技术手段防止计算机病毒对系统进行传染和破坏,实际上它是一种特征判定技术,也可能是一种行为规则的判定技术。
也就是说,计算机病毒的预防是根据病毒程序的特征对病毒进行分类处理,而后在程序运行中凡有类似的特征点出现则认定是计算机病毒。
具体来说,计算机病毒的预防是通过阻止计算机病毒进入系统内存或阻止计算机病毒对磁盘的操作尤其是写操作,以达到保护系统的目的。
计算机病毒的预防技术主要包括磁盘引导区保护、加密可执行程序、读写控制技术和系统监控技术等。
计算机病毒的预防应该包括两个部分:对已知病毒的预防和对未来病毒的预防。
目前,对已知病毒预防可以采用特征判定技术或静态判定技术,对未知病毒的预防则是一种行为规则的判定技术即动态判定技术。
二、病毒检测技术
计算机病毒检测技术是指通过一定的技术手段判定出计算机病毒的一种技术。
计算机病毒进行传染,必然会留下痕迹。
检测计算机病毒,就是要到病毒寄生场所去检查,发现异常情况,并进而验明“正身”,确认计算机病毒的存在。
病毒静态时存储于磁盘中,激活时驻留在内存中。
因此对计算机病毒的检测分为对内存的检测和对磁盘的检测。
图6-13计算机病毒的检测
病毒检测的原理主要是基于下列几种方法:利用病毒特征代码串的特征代码法、利用文件内容校验的校验和法、利用病毒特有行为特征的行为监测法、用软件虚拟分析的软件模拟法、比较被检测对象与原始备份的比较法、利用病毒特性进行检测的感染实验法以及运用反汇编技术分析被检测对象确认是否为病毒的分析法。
1、特征代码法
特征代码法被认为是用来检测已知病毒的最简单、开销最小的方法。
其原理是将所有病毒的病毒码加以剖析,并且将这些病毒独有的特征搜集在一个病毒码资料库中,简称“病毒库”,检测时,以扫描的方式将待检测程序与病毒库中的病毒特征码进行一一对比,如果发现有相同的代码,则可判定该程序已遭病毒感染。
特征代码法检测病毒的实现步骤如下:
(1)采集已知病毒样本。
(2)从病毒样本中,抽取病毒特征代码。
(3)将特征代码纳入病毒数据库。
(4)打开被检测文件,在文件中搜索,检查文件中是否含有病毒数据库中的病毒特征代码。
(5)如果发现病毒特征代码,由于特征代码与病毒一一对应,便可以断定,被查文件中患有何种病毒。
2、校验和法
校验和法是将正常文件的内容,计算其“校验和”,将该校验和写入文件中或写入别的文件中保存。
在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,以此来发现文件是否感染。
采用校验和法检测病毒,它既可发现已知病毒又可发现未知病毒。
校验和法对隐蔽性病毒无效。
运用校验和法查病毒可采用3种方式:
(1)在检测病毒工具中纳入校验和法,对被查的对象文件计算其正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较。
(2)在应用程序中,放入校验和法自我检查功能,将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原校验和值。
实行应用程序的自检测。
(3)将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。
3、行为监测法
利用病毒的特有行为特征来监测病毒的方法,称为行为监测法。
通过对病毒多年的观察、研究,人们发现有一些行为是病毒的共同行为,而且比较特殊。
当程序运行时,监视其行为,如果发现了病毒行为,立即报警。
4、软件模拟法
它是一种软件分析器,用软件方法来模拟和分析程序的运行,以后演绎为虚拟机上进行的查毒,启发式查毒技术等,是相对成熟的技术。
新型检测工具纳入了软件模拟法,该类工具开始运行时,使用特征代码法检测病毒,如果发现隐蔽病毒或多态性病毒嫌疑时,启动软件模拟模块,监视病毒的运行,待病毒自身的密码译码以后,再运用特征代码法来识别病毒的种类。
5、分析法
要使用分析法检测病毒,其条件除了要具有相关的知识外,还需要DEBUG、PROVIEW等供分析用的工具程序和专用的试验用计算机。
分析的步骤分为动态和静态两种。
静态分析是指利用DEBUG等反汇编程序将病毒代码打印成反汇编后的程序清单进行分析,看病毒分成哪些模块,使用了哪些系统调用,采用了哪些技巧,如何将病毒感染文件的过程翻转为清除病毒、修复文件的过程,哪些代码可被用做特征码以及如何防御这种病毒。
5、病毒检测工具
最省工省时的检测方法是使用杀毒工具,如瑞星杀毒软件、KV3000、金山毒霸、MSD.exe、CPAV.exe、SCAN.exe 等软件。
所以,用户只须根据自己的需要选择一定的检测工具,详读使用说明,按照软件中提供的菜单和提示,一步一步地操作下去,便可实现检测目的。
图6-14计算机病毒的消除
三、病毒消除技术
计算机病毒的消除技术是计算机病毒检测技术发展的必然结果,是病毒传染程序的一种逆过程。
从原理上讲,只要病毒不进行破坏性的覆盖式写盘操作,病毒就可以被清除出计算机系统。
安全、稳定的计算机病毒清除工作完全基于准确、可靠的病毒检测工作。
计算机病毒的消除严格地讲是计算机病毒检测的延伸,病毒消除是在检测发现特定的计算机病毒基础上,根据具体病毒的消除方法从传染的程序中除去计算机病毒代码并恢复文件的原有结构信息。
四、病毒免疫技术
图6-15计算机病毒的免疫
计算机病毒的免疫技术目前没有很大发展。
针对某一种病毒的免疫方法已没有人再用了,而目前尚没有出现通用的能对各种病毒都有免疫作用的技术,也许根本就不存在这样一种技术。
现在,某些反病毒程序使用给可执行程序增加保护性外壳的方法,能在一定程度上起保护作用。
若在增加保护性外壳前该文件已经被某种尚无法由检测程序识别的病毒感染,则此时作为免疫措施为该程序增加的保护性外壳就会将程序连
同病毒一起保护在里面。
等检测程序更新了版本,能够识别该病毒时又因为保护程序外壳的“护驾”,而不能检查出该病毒。
另外,某些如DIR2类的病毒仍能突破这种保护性外壳的免疫作用。
计算机反病毒技术的发展
第一代反病毒技术采取单纯的病毒特征码来判断,将病毒从带毒文件中消除掉。
这种方法可以准确地清除病毒、误报率低、可靠性高。
后来病毒技术的发展,特别是加密和变形技术的运用,使得这种简单的静态扫描方式失去了作用。
第二代反病毒技术采用静态广谱特征扫描方法来检测病毒,这种方式可以更多地检测出变形病毒,但另一方面也带来了较高的误报率,尤其是用这种不严格的特征判定方式去清除病毒带来的风险性很大,容易造成文件和数据的破坏。
所以静态防病毒技术具有难以克服的缺陷。
第三代反病毒技术的主要特点是将静态扫描技术和动态仿真跟踪技术结合起来,将查、杀病毒合二而一,形成一个整体解决方案,全面实现防、查、杀等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵,凡是检测到的病毒都能清除,不会破坏文件和数据。
第四代反病毒技术则基于多位CRC(循环冗余校验)校验和扫描机理,综合了启发式智能代码分析技术、动态数据还原技术(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒技术和自身免疫技术等先进的计算机反病毒技术。
它是一种已经形成且仍在不断发展完善的计算机反病毒整体解决方案,较好地改变了以前防病毒技术顾此失彼、此消彼长的状态。