近日,反病毒领域展开的反病毒产业发展趋势大讨论引起了各方关注。一方面,杀毒软件厂商承认当前反病毒技术落后于病毒是不争的事实,另一方面,又用病后就医的逻辑解释传统的滞后杀毒方法。
那么,主动防御新病毒的道路究竟是否可行?反病毒领域能否实现重大突破?
此前曾提出杀毒软件特征码技术严重过时理论的反病毒专家–国家八六三计划反计算机入侵和防病毒研究中心专家委员会委员刘旭,再次就主动防御新病毒的技术可行性发表了自己的看法,他表示这是完全可行的。
长期以来,人们把杀毒软件作为最主要的反病毒工具,杀毒软件几乎成了所有反病毒产品的代名词,杀毒软件赖以生存的"特征值扫描技术"也几乎成了所有反病毒技术的代名词。正因如此,杀毒软件对新病毒的防范始终滞后于病毒出现的重大缺陷,似乎成为既合情又合理的逻辑,导致人们普遍认为反病毒产品不可能主动防御新病毒,甚至有人认为,想研制一种主动防御的反病毒产品,就如同要为一种未知的疾病制作特效药一样异想天开。
焦点一:人能否发现新病毒
杀毒软件本身基本上不能发现新病毒,是众所周知的客观事实。但是,如果人不能发现新病毒,同为自然人的反病毒公司研发人员也就不可能发现新病毒,由此带来的问题是,杀毒软件每天升级的是什么,反病毒公司每次宣称发现的新病毒又是谁来发现的?回答是肯定的,人可以发现新病毒。新病毒一定是人通过相应的方法判断出来的。
焦点二:人如何判断新病毒
从上个世纪八十年代病毒出现后,反病毒技术就有两种思路,一种是采用静态扫描方式,即特征值扫描技术,另一种采用动态分析方法。特征值扫描是目前国际上反病毒公司普遍采用的查毒技术。其核心是从病毒体中提取病毒特征值构成病毒特征库,杀毒软件将用户计算机中的文件或程序等目标,与病毒特征库中的特征值逐一比对,判断该目标是否被病毒感染。反病毒公司把捕获到并已处理的病毒称为已知病毒,否则就称为未知病毒。只有采用特征值扫描技术时,才区分已知和未知病毒。
业界常常有人用人类病毒的医治来解释计算机病毒防范。然而,与生物界的病毒复杂性不同,计算机病毒是人编写的,远比生物界的病毒简单。计算机病毒概念是人依据程序行为来定义的,因此识别病毒的另一种方法是采用动态分析,直接通过程序的行为判断它是否是病毒。
尽管杀毒软件主要采用静态扫描方式,但是反病毒公司发现新病毒并不是采用静态扫描方式,而恰恰是采用动态分析方法。即便是反病毒公司收集到可疑程序时,也不能确定是不是新病毒,为了做出准确判断,必须先运行可疑程序,然后再根据程序的行为判断是否是病毒。
焦点三:识别新病毒有多难
反病毒领域从未向业界公开过一个"秘密"–虽然病毒越来越多,但真正有创意的、技术上有突破的病毒很少,不到总数的1%。而且这类病毒通常是概念病毒,一般破坏性不大。绝大多数病毒都是模仿其他病毒编写的,这些病毒的传播、感染、加载、破坏等行为特点都可以从已经存在的病毒找到,一个计算机本科毕业生经过短期培训,通常都可胜任人工识别这类新病毒的工作。因此人工识别绝大多数新病毒,并不是一件很难的事。
焦点四:病毒主动防御是否可行
在反思国际国内反病毒领域的思维模式的基础上,笔者认为,将现有病毒的行为进行分析、归纳、总结,通过对反病毒专家分析判断新病毒的经验科学提炼,实现软件自动识别病毒是可行的。
例如,我们定义这样一条病毒判断规则:如果MSN接收的某个文件运行后,模拟键盘或鼠标动作,自动点击MSN的"发送文件"命令,把它或它的生成物自动发送给其他MSN联系人,则这个文件就是MSN蠕虫病毒。
此规则可用于发现"性感烧鸡"MSN蠕虫病毒,以及所有采用这种传播方式的MSN蠕虫病毒,而不论该病毒是什么时候编的,也不论是已知的还是未知的。
十多年来,反病毒技术的研究主要禁锢于特征值扫描法,很少对病毒主动防御技术进行深入的探讨和研究。从反病毒领域的实践和计算机技术的发展趋势可以看出,开发病毒主动防御系统不仅是可能的,而且是可行的。因此,跳出传统技术路线,尽快研制以行为自动监控、行为自动分析、行为自动诊断为新思路的主动防御型产品,从根本上克服现有杀毒软件的重大缺陷,建立主动防御为主、结合现有反病毒技术的综合防范体系,实现反病毒技术的革命性飞跃和反病毒产业的升级,是全球反病毒领域共同面临的巨大挑战,具有极现实的信息安全急迫性。