反病毒技术及其发展趋势[1]
日期:2007-09-14 荐:
关于第一个计算机病毒的产生时间有着许多许多的说法,我确信在Babbidge机器时代是肯定没有病毒的,但是到Univac 1108和IBM 360/370的时候就已经有了("Pervading Animal" 和 "Christmas Tree"),所以第一个计算机病毒的诞生是在二十世纪70年代初或者二十世纪60年代末,虽然在那时候没有人叫它们病毒。但是,病毒成为一个问题的时候,就出现了解决问题的人——安全专家——和他们的成果:杀毒技术和防病毒产品。
作者简介:刘杰,中国最早系统地从事计算机病毒与网络安全技术研究的专家,曾起草中国安全法规:计算机病毒防治产品评级标准,获公安部科技成果二等奖,现任国家有关部委网络安全顾问、商丘师范大学客座教授,是光华反病毒软件的开发者。
杀毒软件是对付计算机病毒的最有效方法,但是没有杀毒软件能100%的保证系统不被病毒感染。任何宣称存在这种杀毒软件的广告都是虚假的、在法律上说都是无效的。那样的系统是不存在的,因为每种杀毒算法都可能促使产生与之相对立的病毒的算法,随之制造的病毒对于这种特定的杀毒软件可能检测不到(当然:任何杀毒算法都可以开发成一个杀毒软件)。而且,已经证实“在有限理论的基础上不可能存在绝对的防毒”——试验者是Fred Cohen。
从杀毒技术上来讲,当前,最流行的杀毒软件都是一个扫描器,扫描的算法有多种,通常为了使杀毒软件功能更强大,会结合使用好几种扫描方法。
1)病毒扫描
病毒扫描是当前最主要的查杀病毒方式,它主要通过检查文件、扇区和系统内存、搜索新病毒,用“标记”查找已知病毒,病毒标记就是病毒常用代码的特征,病毒除了用这些标记,也用别的方法。有的根据算法来判断文件是否被某种病毒感染,一些杀毒软件也用它来检测变形病毒。
病毒扫描从杀毒方式上可以分成两种——“通用”和“专用”。“通用”扫描被设计成不依赖操作系统,可以查各种病毒;而“专用”扫描则被设计用来专查某种病毒,如宏病毒,可以使某些应用软件的病毒防护更加可靠。
病毒扫描也可按照用户操作方式分成实时扫描和请求式扫描,实时扫描能提供更好的系统病毒防护,因为如果有病毒出现,能够立即发现,请求式扫描只在运行时才能检测到病毒。
2)启发式扫描
启发式扫描是通过分析指令出现的顺序,或组合情况来决定文件是否感染,每个对象都要检查,这种方式查毒效果是最高的,但也最可能出现误报。
3)CRC 扫描
CRC扫描的原理是计算磁盘中的实际文件或系统扇区的CRC值(检验和),这些CRC值被杀毒软件保存到它自己的数据库中,在运行杀毒软件时,用备份的CRC值与当前计算的值比较,可以知道文件是否已经修改或被病毒感染。
使用这种算法的CRC扫描是强有力的反病毒工具:100%的病毒都能在进入计算机时被检查出来。但这种杀毒方式天生就有一个缺点——效率很低。CRC扫描在病毒已经渗透到计算机之后,并不能很快的检测到,只有过一段时间病毒开始传播时才会发现,而且不能检测新文件中的病毒(例如邮件、软件文件、备份恢复的文件或解压文件),因为在它的数据库中没有这些文件的CRC值。此外,有的病毒也会利用CRC扫描的这种“弱点”,只在扫描之前感染新创建的文件。
各种扫描都有自己的优缺点,拥有一个病毒库是他们的基本特征,但是如果病毒库过大的话,查毒速度会变得很慢。除了以上的杀毒方法外,还有一些常用技术。
1)行为判断
行为判断就是通过驻留的杀毒软件截获那些对用户有病毒危险的行为,这些病毒可能会在修改可执行文件、引导扇区或MBR时被发现,这种方法的优点在于可以在病毒感染的早期发现并阻止,但有的病毒可以越过这种保护,使得杀毒软件完全失效。
2)病毒免疫
免疫有两种:一种是感染警告,另一种是阻止病毒感染。第一种免疫方式主要是预防那些把自己添加到文件末尾的病毒(通常是文件型病毒),每个文件都会检查。但有一个致命的弱点:无法检测到诡密病毒,所以实际上很少用这种免疫方式。
第二种免疫方式主要是预防系统被某种特定病毒感染,如果文件被病毒修改就可以检测到(例如文件中存在字符串“MsDos”,说明文件可能被“Jerusalem”病毒感染),如果病毒把一个小的TSR程序拷贝到计算机内存中,系统肯定被感染。
由于不可能对所有的病毒采用免疫,所以这种病毒免疫方式并不通用。
哪种杀毒技术更好?
哪种杀毒技术更好?答案是——都好,只要计算机里没有病毒。但是如果要安装新软件、收邮件、使用Word或Excel电子表,需要根据自身的情况选择几种比较合适的杀毒软件。
各种杀毒软件的特点都会有一些不同,它们的质量我想可以肯定,下面说几点相对重要的:可靠性和方便性——杀毒软件会不会经常“挂起”,普通用户使用时是否需要特定的技术知识。
1) 扫描文档、检测各种病毒的性能,能不能修复被感染的文件,扫描引擎能不能及时地更新,处理新病毒的速度。
2) 杀毒软件是否适应各种平台(DOS、Windows、Alpha、Linux等),不仅可以根据用户需要扫描,还要有能实时监控、网络查毒的能力。
3) 查毒速度等其他有用功能。
杀毒软件最重要的是可靠性,虽然没有“绝对的杀毒软件”,但也不能扫描一半文件就挂了,磁盘中剩下的文件还没有扫描完,也没有检测出系统中的病毒;杀毒软件不能要求用户具备特定的知识——许多用户只愿选择杀毒软件弹出简单的[OK]或[Cancel]按钮的消息框,如果杀毒软件经常会询问用户一些复杂的问题,用户肯定不会喜欢这种杀毒软件。
标签: