首页 > 代码库 > 一般杀毒软件检测病毒原理
一般杀毒软件检测病毒原理
常用的反病毒软件技术
特征码技术:基于对已知病毒分析、查解的反病毒技术
目前的大多数杀病毒软件采用的方法主要是特征码查毒方案与人工解毒并行,亦即在查病毒时采用特征码查毒,在杀病毒时采用人工编制解毒代码。
特征码查毒方案实际上是人工查毒经验的简单表述,它再现了人工辨识病毒的一般方法,采用了“同一病毒或同类病毒的某一部分代码相同”的原理,也就是说,如果病毒及其变种、变形病毒具有同一性,则可以对这种同一性进行描述,并通过对程序体与描述结果(亦即“特征码”)进行比较来查找病毒。而并非所有病毒都可以描述其特征码,很多病毒都是难以描述甚至无法用特征码进行描述。使用特征码技术需要实现一些补充功能,例如近来的压缩包、压缩可执行文件自动查杀技术。
但是,特征码查毒方案也具有极大的局限性。特征码的描述取决于人的主观因素,从长达数千字节的病毒体中撷取十余字节的病毒特征码,需要对病毒进行跟踪、反汇编以及其它分析,如果病毒本身具有反跟踪技术和变形、解码技术,那么跟踪和反汇编以获取特征码的情况将变得极其复杂。此外,要撷取一个病毒的特征码,必然要获取该病毒的样本,再由于对特征码的描述各个不同,特征码方法在国际上很难得到广域性支持。特征码查病毒主要的技术缺陷表现在较大的误查和误报上,而杀病毒技术又导致了反病毒软件的技术迟滞。
虚拟机技术:启发式探测未知病毒的反病毒技术
虚拟机技术的主要作用是能够运行一定规则的描述语言。由于病毒的最终判定准则是其复制传染性,而这个标准是不易被使用和实现的,如果病毒已经传染了才判定是它是病毒,定会给病毒的清除带来麻烦。
那么检查病毒用什么方法呢?客观地说,在各类病毒检查方法中,特征值方法是适用范围最宽、速度最快、最简单、最有效的方法。但由于其本身的缺陷问题,它只适用于已知病毒,对于未知病毒,如果能够让病毒在控制下先运行一段时间,让其自己还原,那么,问题就会相对明了。可以说,虚拟机是这种情况下的最佳选择。
虚拟机在反病毒软件中应用范围广,并成为目前反病毒软件的一个趋势。一个比较完整的虚拟机,不仅能够识别新的未知病毒,而且能够清除未知病毒,我们会发现这个反病毒工具不再是一个程序,而成为可以和卡斯帕罗夫抗衡的ibm深蓝超级计算机。首先,虚拟机必须提供足够的虚拟,以完成或将近完成病毒的“虚拟传染”;其次,尽管根据病毒定义而确立的“传染”标准是明确的,但是,这个标准假如能够实施,它在判定病毒的标准上仍然会有问题;第三,假如上一步能够通过,那么,我们必须检测并确认所谓“感染”的文件确实感染的就是这个病毒或其变形。
目前虚拟机的处理对象主要是文件型病毒。对于引导型病毒、word/excel宏病毒、木马程序在理论上都是可以通过虚拟机来处理的,但目前的实现水平仍相距甚远。就像病毒编码变形使得传统特征值方法失效一样,针对虚拟机的新病毒可以轻易使得虚拟机失效。虽然虚拟机也会在实践中不断得到发展。但是,pc的计算能力有限,反病毒软件的制造成本也有限,而病毒的发展可以说是无限的。让虚拟技术获得更加实际的功效,甚至要以此为基础来清除未知病毒,其难度相当大。
受病毒在理论上就是不可判定的这一根本前提的制约,事实上,无论是启发式,亦或是虚拟机,都只能是一种工程学的努力,其成功的概率永远不可达到100%。这是惟一的却又是无可奈何的缺憾。
未来的反病毒技术:
虚拟现实
对于未来技术的展望可能只是一种近乎飘渺的幻想,但是就如同计算机病毒最初的描述出现在科幻小说里,虽然还有许许多多我们目前仍在实现却仍未实现的技术,甚至还有许多我们根本未考虑到的因素。只要技术足够成熟,网络世界中是完全有可能出现类似人工智能的反病毒技术。
未来反病毒的疑难之一就是:我们永远无法写出一个合理的程序来辨识和查杀病毒。病毒掌握了人类所掌握的一切,它同样能辨识和分析反毒程序,并对自身重新编程;而反毒程序要可能同样地对病毒进行探测,再进行自编程。病毒与反毒程序的角逐就变成了自编程能力的实现,而这样的结果只能导致网络空间紧张,甚至崩溃!
我们还可以考虑用另一种方式:人工进入计算网络世界的方法来查杀病毒。人有足够的智能和经验积累来完成对病毒的辨识和杀除,而这就只剩下建立人与计算机之间的“桥”的问题了。
目前的虚拟现实技术重点放在了对人与人的自然界交流方式———“感官”的计算机描述的实现上,它如同人们所有的知觉都最终传感给大脑,大脑对这种传感作出一种体验上的描述,从而形成知觉意识。如果计算机将二进制代码流表述成脑电波的流信息,并通过神经传感给大脑,则完全可以描述并引导、控制人的一切思维。简单地说,人的思维与计算机语言存在了这样一个通用的接口!
这种理论如果得以实现,则虚拟现实技术将进入新的发展领域。虽然从理论上讲是不可能在对病毒未知的情况下对其做出精确判断从而预防,但是在实际应用中,经过反病毒专家多年的统计、分析、研究积累的经验,完全有可能以概率方式对病毒危险进行一种分级制测定并对其使用反病毒程序,在相当程度上达到较精确地防御未知病毒的侵入。
第三代反病毒产品:
防杀兼备、万能恢复
从技术的数学模型上来说,过去、现在、将来的反病毒软件都不可能有任何理论上的超越,即无法跨越不可判定性的鸿沟,特征码也好,启发式虚拟机也好,或者兼而有之,相互配合,暂时不会有新的突破。那么,具体到反病毒技术的产品,也基本上离不开这些模式。当然,即使是从工程学的角度上来说,在相同的技术起点上如何构筑出实现方式和最终效果完全不同的实用产品,仍然是一个永无止境的追求。
从手工查杀病毒,到早期散兵游勇式的查杀病毒,到与internet的技术接轨,直至今天担负起防杀兼备、万能恢复的第三代反病毒软件,反病毒技术在与病毒的斗争中不断进步,不断诞生各种为计算机用户解忧去患的反病毒产品。从早期的防病毒卡、手动查杀的dos版软件(即第一代,代表产品有:kill、kv100、kv200、kv300、瑞星、早期vrv、早期avxx。),到在线监控实时查杀的病毒防火墙(即第二代,代表产品为vrv杀毒套装、killxx版、kv3000预览版),我们已经发现要免除病毒的灾难,仅有杀毒是不够的。
安全专家认为,真正的安全仅有杀毒是不够的,因为在电脑世界中,永远有捉摸不定的东西游离在身边。除去泛滥的病毒,系统的漏洞、硬件或软件的冲突、人为的误操作、利用bo特洛伊木马恶意进攻、电脑本身的不稳定性、黑客袭击等形形色色的安全威胁不胜枚举。所以,一个好的安全软件,仅仅能杀毒是不够的,必须把备份与灾难恢复相结合起来。
面对呼啸而来益发凶恶的未来病毒,仅有杀毒是不够的。用户对于病毒的恐惧,并不是来自它的能够自我复制,尽管这才是病毒之所以成为病毒的根本,担心害怕的是病毒侵入并且发作,结果造成的大大小小的无可挽回的损失。这种客观的迫切的需要,成为新形势对反病毒技术和产品提出的最高要求。于是,第三代反病毒软件必须要做到突破单一杀毒的局限性,针对用户经常面临急需数据抢修、系统恢复等难题,不仅可以杀灭入侵病毒、击溃来犯黑客、消灭有害数据,还有智能灾难恢复、全息数据救援、维护系统正常运行的全面保障信息安全的功能,其代表产品是北京北信源公司研发的一种全方位、多功能、高可靠的安全软件“杀毒专家”。
我们期望有一种针对恶性病毒发作时可能实施的破坏行为的截获、阻止装置,软件的亦或是硬件的,对所有带有危险级别的、可能影响系统运行和信息资料安全的操作加以禁止,就像过滤文件中的病毒特征码一样,对一个将要执行的操作进行安全性判断。就像今天在多任务环境下实时杀毒的防火墙重新焕发了青春一样,我们不难预料,这种在线式的以危险行为监控为特征的反病毒技术和产品也一定会出现,配合以前的第一代、第二代、第三代反病毒技术,实现更高意义上的更加可靠的信息安全。
一般杀毒软件检测病毒原理