为何需要主动防病毒<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
近年来,对于防病毒软件效用的争论有愈演愈烈之势。我们知道,目前几乎所有的主流防病毒产品都是以分析病毒特征码为基础,通过升级安装在用户端的病毒特征码数据库实现对病毒的辨识。只有发现和确认了病毒之后,才能比较准确的完成对病毒的清除工作。这种工作模式多年来被证明是成熟和可靠的,但是环境的变化正在对这种可靠性提出严峻的考验。因为这种模式的最大问题就是病毒的发现和病毒库升级的发布要滞后于病毒感染行为。最近几年利用系统漏洞传播的蠕虫病毒成为了病毒世界的主流,其传播速度相当惊人。最新的蠕虫病毒每小时已经可以感染数万台计算机,一台连入互联网的存在漏洞的计算机往往在不超过三十分钟的时间内就会被感染。在这种情况下,以往非常奏效的特征码识别加病毒库升级的防御方式难免显得捉襟见肘。越来越多的网络安全从业人士认为滞后于病毒出现的反应方式是一种非常被动的方式,已经越来越难以满足用户的需要。所以我们需要防病毒系统能够更具主动意义,只有这样才能解决我们所面临的困境。
如何才是主动防病毒
2005年全球的安全厂商都在力推“主动防御”的概念,而防病毒厂商也纷纷挑起了主动防病毒的大旗。尤其是国内的防病毒软件厂商,他们相对国外厂商更好的把握了用户需求的动向,提出了多种主动防御病毒的理念和功能。那么现在我们是否能够主动的防御病毒了呢?我们现在是否已经具有了足够的主动防病毒技术呢?具有主动性的防病毒技术是否真能让用户实现更好的病毒防范呢?在寻求这一串问题的答案之前,让我们先来看一看应该如何界定主动防病毒这一概念。我们认为能够被称为“主动”的防病毒体系应该是能够更加智能、更加自动化的对计算机病毒进行处理,除了准确地查杀已知病毒,还能够有效的处理未知病毒。并不是所有的用户都知道如何正确的使用防病毒产品,也很少有用户真正清楚配置了一个选项之后会实际产生什么影响。所以主动防病毒系统应该具有高度的便利性,尽量减少用户的参与,提供更好的操作体验。而在效能方面,主动防病毒系统不能局限于处理已知的病毒,还应该积极的从病毒的内部机制入手,分析和总结病毒的行为特征,真正的将病毒挡在大门之外。与对抗犯罪一样,我们不能总是在受到伤害之后才做出应对,而必须主动的增进我们的防线。虽然《少数派报告》中的犯罪预测系统看起来不会在短期之内实现,但是在反病毒方面达到这样的水平肯定要容易很多。
病毒机制说明
目前被冠以主动防毒之名的一些技术并非今时今日才出现的。而是已经经历了很长时间的发展。一般情况下,计算机病毒都由感染机制、触发机制和破坏机制暗中结构组成。感染机制是计算机病毒最核心也是唯一必要的结构,它决定了病毒如何繁殖、传播和感染。感染机制通常包括了被感染目标的搜寻方法、感染的速度、规避反病毒系统、否感染及如何感染目标的条件判断等等。而触发机制是病毒行为的启动器,它根据一些条件引发破坏机制。这些条件可能是某个时间点、某个操作行为、某种系统环境因素以及这些条件的某种组合。另外一种情况就是不进行任何条件判断,也即无条件的触发。破坏机制就是病毒所包含的各种对目标系统进行修改和操控的部分,也即病毒的实际行为。这些行为既可以是格式化系统硬盘、消耗系统资源、显示一些信息这样比较显见的,也可以是植入自身的启动代码、通过系统感染其它目标这样相对隐蔽的。
我们为什么要讲述这些病毒机制方面的问题呢?因为这些概念对于我们分析防病毒技术有不小的帮助。例如对于特征码扫描技术来说,是通过在各种文件中查找已知病毒的具有唯一性的特征片断来产生作用的。这是一种相对表面化的技术,并没有针对我们所说的病毒的三种机制进行操作,而是在文件、网络数据包等数据负荷的基础上执行工作。如果一种防病毒技术能够深入到这些机制当中,无疑是一种更加具有主动性和广泛作用力的技术。
主动防病毒技术盘点
主动内核技术
主动内核技术是一种较早出现的尝试更加主动进行病毒防御的技术。从行为方式上主动内核技术与实时监控技术非常的类似,都是在病毒感染系统之前发现这些行为以进一步的进行处理。但是两者的实现方式却有很大的不同。主动内核技术在操作系统的内核层级植入代码,任何数据在与系统进行交互之前都会被内核中的这些代码过滤和监控。在这个层级的交互可以更好的对各种恶意行为进行判断,也即可以开展一些针对感染机制的病毒防范。惯常的特征码扫描、实时监控等技术都是在病毒侵入系统之后才进行反应。一旦有病毒突破了这道防线,就可以直接对系统产生破坏。而在内核层级对病毒进行处理可以将防御战线推至病毒获得运行环境之前,这将有效的提高病毒防御的质量和有效性。
这项技术的领先者是CA,与其有着深入合作的冠群今辰很早就在自己的Kill系列防病毒产品中集成了这种技术。但是,虽然防病毒厂商都希望将防病毒功能集成到系统的底层,对于修改操作系统源码还是存在着很多障碍。特别是对以微软为首的商业操作系统厂商来说,与防病毒厂商的合作虽然表面上握手言欢,但是很难达到防病毒厂商理想中的程度。通常的情况是提供一些底层调用以支撑防病毒软件的运转,目前还没有确切的消息显示微软为防病毒功能而修改了Windows系统的源代码。既使微软允许防病毒软件修改Windows的内核,被修改过的操作系统在稳定性和安全性上也不能让用户完全放心,并且可能会衍生出大量无法界定的责任。这种种因素导致主动内核技术虽然取得了一些进展,但是还无法达到设计该技术时所期望的目标。
启发式扫描
基于特征码技术的防病毒软件只能在一种病毒被制作出来之后才能发挥作用,那么我们是否能够防范尚未诞生的病毒呢?在对抗未知病毒的领域,启发式扫描是一种被普遍应用的技术。我们利用人工智能领域的heuristic(启发式)搜索技术,可以根据一些规则,智能的执行判断和处理,从而有可能发现部分的未知病毒。这种技术的核心在于病毒的运行机制是有规律可循的,如果能够发现这些规律,未来的采用类似机制的病毒就可以被发现。可以说,启发式扫描技术是一种针对病毒感染机制乃至触发机制和破坏机制进行工作的防病毒技术。另外,虽然有些时候将行为检测技术视为于启发式扫描不同的技术,但是我们认为对于特定行为理解与对病毒机制的理解基本属于相同的范畴。所以虽然这两种技术是被分开提出的,我们在这里不就行为检测技术进行探讨了。启发式扫描的具体实现是比较复杂的,通常的识别方式是查找可疑的指令序列。例如很多病毒程序的初始指令序列是解码、搜索、写盘等与通常程序初始化不同的操作,通过检查这些指令我们可以对一个程序的性质做出粗略的判断。通过对各种指令操作的危险程度进行分级,可以设计出较为系统的可疑代码发现标准。为了达到检测目的,防病毒系统通常都会将代码载入到虚拟机中执行,以判断是否含有可疑指令以及执行的结果是否会对计算机造成危害。但是这种检测方式对于检测病毒的感染机制比较有效,如果病毒存在特殊的触发机制,可能会造成破坏机制部分的代码不会在虚拟机环境中启动。所以到目前为止,启发式病毒检测技术尚只能发现部分未知病毒。
从理论的角度来分析,完全的防御未知病毒是不可能的。根据著名的计算机科学家图灵所提出的“图灵试验”,如果一个人在与另一个房间中的机器对话时,无法分辨出是与机器还是与人进行对话,那么可以认为这台机器拥有了人的智能。同样的道理,只有计算机具有了超越人类的智能,才有可能对所有还未被设计出的病毒进行处理。人脑的创造力是无限的,未来还会出现很多目前所无法知晓的病毒机制。随着计算环境的变化,已经被发现的病毒机制也会逐渐失去效用。在仍无法获知如何使机器具有与人类同等智能的今天,完全检测未知病毒这样的目标是否能够达成仍是一个未知数。启发式扫描在可预见的将来仍将是防御未知病毒的主流技术,但是想获得能够处理所有未知病毒哪怕是绝大多数未知病毒的机制,广大防病毒厂商还有很长的路要走。
新兴的主动防病毒功能
目前被广泛采用的一种防病毒功能是主动漏洞发现机制,这种功能的设计是根据目前流行的大部分蠕虫病毒都是针对微软Windows操作系统的安全漏洞进行传播和感染这一事实。通过在防病毒系统中集成发现操作系统漏洞的能力,可以提示和协助用户修补操作系统,断绝病毒滋生的环境。一个好消息是就微软的操作系统而言,只要能够较好的跟踪和更新系统漏洞,大部分流行的病毒是无法对系统造成侵害的。目前该类功能还有很大的提升空间,理想的状况是可以在无需用户参与的情况下完成各种安全漏洞的修补。
主动更新也是一种被用于提高病毒防御能力的功能,例如金山的主动实时升级。按照金山给出的数据,该功能可以在三十分钟内将病毒更新至用户的计算机。这种方式相对于手动设置升级时间间隔的方式,可以在更短的时间内完成更新,提高计算机的防护强度。但是既使按照这三十分钟是从金山发现病毒到用户获得病毒更新这种最理想的情况,该功能仍无法完全杜绝病毒的威胁。因为任何防病毒厂商都无法保证在病毒被释放到网络上的同时马上截获该病毒,在厂商截获一个病毒之前,往往已经有为数不少的机器被感染。并且现在很多蠕虫病毒在三十分钟的时间里已经可以完成爆发了。增强更新的自动性确实可以改善更新的质量,但是这个功能还有赖于厂商不断提高发现病毒和推出更新的速度,否则难以达到理想的效用。
值得注意的是,真正的主动病毒防御体系将不仅仅只局限于防病毒系统,操作系统等架构性设施也需要在这个体系中发挥作用。只有在足够底层获得操作能力,才能获得足够的防病毒效能。例如在最新的64位操作系统和64位X86处理器中已经开始集成防范恶意代码溢出的机制。类似这样的设计将为防病毒功能提供更好的基础平台。操作系统厂商及其提供架构性设施的厂商是否会以更加开放的态度处理病毒问题并积极的改进自身漏洞,是我们能否实现主动防病毒愿景的重要基础。另外,引发病毒感染在很多情况下还是要诱发用户的执行某些操作。除了正确的教育和引导之外,操作系统如何提供更具安全性的操作机制也是防范病毒必须解决的问题。
主动防病毒的未来