楔子:
在网上简单考证了一下,大概是在2005年5月,微点第一个提出“主动防御”这个名词,然后短短半个月时间,国内三大杀软全部表态都已然“主动防御”了。
资料出处:
杀毒厂商倾情演出肥皂剧 15天实现主动防御
http://news.chinabyte.com/331/2531831_1.shtml
2年时间过去了,现在的“主动防御”行情又如何?除了微点这个“主动防御”的旗手,国内知名的江民、国际知名的卡巴斯基6.0、7.0都在其杀毒软件中增加了主动防御模块,国际上顶级的一线信息安全技术厂商赛门铁克也公开承诺将在明年的产品中正式添加主动防御功能。
资料出处:
赛门铁克推新主动防御技术 明年进驻新版诺顿
http://www.cnetnews.com.cn/2007/0704/415975.shtml
至此,我觉得整个反病毒行业的大局已定,如果说去年我和一些网友在微点论坛争论反病毒未来发展趋势的时候,都是一些不着边际的猜想。那么今天,国际一线厂商对主动防御功能的已经实施和即将实施,则证明了业界普遍认同了未来的发展方向——主动防御。
PS:本文没有兴趣讨论“主动防御”究竟包含哪些功能什么,主动防御究竟谁先谁后?我仅仅想就主动防御中最核心的“行为杀毒”技术的发展脉络进行一些简单分析,欢迎大家共同讨论。
注:下文排列顺序主要以用户体验为脉络,而不是指时间顺序。
一、什么是判断病毒的标准?——行为判断不是新生事物
大家都知道,杀毒软件厂商在捕获样本或收到用户提交的可疑样本之后,要在反病毒实验室中进行进一步的分析判断,然后才能确认该程序究竟是否为病毒。那么病毒分析工程师究竟是以什么作为判定依据呢?无论是静态反汇编分析,还是动态调试分析,最终的落脚点其实都是在关注这个可疑程序究竟做了些什么?也就是以行为分析为基础,结合该公司对病毒***的定义标准和分类标准归类加入病毒库,其间也可能需要使用一些人工因素来协助判定一些莫宁两可的边缘程序,依据公司的市场需求或将其加入病毒库,或将其择出病毒库。

PS:瑞星卡巴的误杀之战,从侧面证明了我的上述推断,卡巴的工程师由于个人水平问题分析失误或是其它原因,误杀瑞星卡卡程序,在得到误杀反馈之后,卡巴迅速将该特征去除,即解除了对瑞星卡卡的误杀。
如果忽略市场炒作的因素,从纯逻辑角度思考,这个事件的言外之意主要有三点:
1.卡巴斯基的病毒分析判定规则不够系统化标准化,可能会过于依赖人工判断。
2.当值病毒分析工程师个人水平欠佳
3.缺乏系统而有效的样本分析复核校验机制
但是归根结底的核心原因,都是因为现在的反病毒公司(不仅是卡巴)过于依靠样本采集,都在拼命地收集样本升级病毒库。卡巴斯基为了保持他在病毒样本收集数量方面的优势,想必会更加迫切地千方百计增加病毒样本。
分析问题一般都有个由点及面,由表及里的过程,借用几何中“点”、“线”、“面”的概念,我们来看看行为监控的不同境界。
二、“点”监控:行为监控桌面化
从理论上讲行为分析和杀毒软件是同步诞生的,杀毒软件的诞生就建立在对样本进行行为分析判定的基础之上。因此从本质上讲,行为分析才是反病毒技术的最本质核心,。但由于杀毒软件所使用的反汇编或是动态调试的技术门槛都非常高,完全不可能在普通用户群大面积推广,于是特征扫描便成了对行为分析结果的简便应用,易于批量处理病毒。正是由于近几年国内几大杀软本末倒置,过于强调特征扫描这种应用级辅助手段的作用,才导致了一个技术上毫无新意的熊猫烧香居然可以大肆流行,称之为国耻恐怕不足为过吧。
矛盾就是需求,于是乎,HIPS很自然就出现了。HIPS,全称Host Intrusion Prevent System,中文翻译为基于主机的***防御系统。HIPS把系统监控划分为基本独立的3个防御子系统:AD(Application Defend)应用程序防御体系、RD(Registry Defend)注册表防御体系、FD(File Defend)文件防御体系。
所谓的点监控,其主要监控对象为程序动作,就是指对当前系统中所有程序的每一个动作,不管其是否有害,都做报警处理,询问用户允许还是拒绝。
代表厂商:
SNS(Safe'n'Sec Personal)
SSM(System Safety Monitor)
PG(ProcessGuard和Port Explorer)
GSS(Ghost Security Suite)--AD+RD
SS(SafeSystem 2006)
McAfee 8.X企业版系列的自定义防护规则
江民杀毒软件的主动防御模块
优点:
从用户体验的角度,HIPS不强求用户再去学枯燥无味的汇编语言。HIPS把用户的操作简化为允许和禁止两类,并试图用略带人性化的提示来改善用户人机交互体验。
缺点:
1.只有监控提示,没有杀毒能力
2.很多人说HIPS的缺点在于易用性,我认为易用性只是一个展露出来的表象而已,HIPS真正的缺点是其“点防御体系”所带来的问题。HIPS的作用是监控,只对程序单个动作这种“点”敏感,因此大量无意义的虚警现象是永远无法避免。如果不考虑规则的效果,按照8020法则,HIPS的绝大部分报警其实都是一些无意义与安全无关的虚警。
随便举个例子,在PSI(一个局域网聊天软件)里点开一个网页链接,HIPS都要去做报警提示。。。

市场展望:
HIPS类软件的出现,使得行为监控从专业的反病毒工程师和高端信息安全爱好者,普及到了对计算机较有兴趣的中高端普通用户群体。但是,由于市场8020的划分规律,此类软件永远不可能做大众推广,因为你永远不可能强求占据市场80%以上、丝毫没有计算机技术底蕴的普通用户花费时间精力人民币去学习计算机技术。

三、“线”监控:初具行为杀毒功能
点监控没有病毒清除能力,核心原因是因为其技术架构没有把程序的一连串动作进行综合考虑,因此无法做病毒清除操作(即逆向还原)。线监控体系,主要监控对象为活动进程,就是从有害程序刚开始运行作为源头,沿着单一进程的运行脉络进行综合分析,因此称其为线性监控。清除病毒时即把监控到的一连串行为过程逆向操作还原。
正是由于HIPS类软件既具有良好的效果,又不利于市场推广。矛盾催生需求,于是乎,一些著名反病毒厂商都推出了带有主动防御模块的杀毒软件。
代表厂商:
卡巴斯基 6.0、7.0
注:因此类产品较少,只能以卡巴斯基为例进行说明。
优点:
线状的行为分析,其实用性比之点监控来讲有了很大的进步,例如卡巴斯基的主动防御模块除针对单一程序动作的“点”报警之外,增加了基于单一进程的连续行为判定,报警提示时进一步人性化,除了HIPS那些注入、磁盘读写等“专有名词型”提示外,增加了Torjan.generic(未知***)这类普通用户也可以理解的提示,并提供了杀毒功能(卡巴斯基称为恢复)。
至于卡巴斯基提示恢复(杀毒)失败,应属于其自身产品的bug,而不能理解此类产品的设计缺陷。
 

卡巴好像没有提供具体的程序相关记录,补一张微点的图(摘自微点旧版帮助文件)来说明行为杀毒逆向清除的便利性。行为杀毒的清除操作非常简单高效,日志都是现成的,只要把日志中记录程序以前生成的文件删除、被修改的注册表还原就全ok了。

卡巴就是根据单一进程当次所做的行为记录,来进行恢复(杀毒)操作。
缺点:
1.当前主流的***程序多使用复杂的分布式软件架构,多个进程并行运行,下载、开后门、偷密码、远程控制各自独立,相互保护相互协同工作。线性监控只针对单一的进程,杀毒时无法处理这种复杂情况。
2.单一进程能够提供的信息仍很有限,上述提到的分布式结构,线性监控无法一并处理,因此仍需要依赖大量的点监控报警。因此,从用户体验来讲,用户基本上感觉不到线性监控行为杀毒的威力,因为实际使用过程中,经常见到的仍是大量的点监控虚警(如下列图),基本上和点监控的HIPS是混淆的。
 
 
市场展望:
此类杀毒软件增加主动防御模块的反病毒厂商(不仅是卡巴斯基)当前最大的问题是受制于其公司巨大的历史包袱——如何保证公司的既有利益?行为杀毒的威力毋庸置疑,可行性也已经得到了验证。行为杀毒的发展前景虽似明朗,但当前究竟如何平衡产品定位?现有的庞大的特征码杀毒产品一方面不断给公司带来巨大的利润,另一方面则被行为杀毒产品不断的抽打着他们脆弱的颜面,前景黯淡。
卡巴选择的市场道路是一条中庸路线,卡巴斯基在保持其原有杀毒软件的基础上用行为杀毒作为辅助,6.0尝试增加主动防御模块,7.0同时增强主动防御和启发式。我个人很为卡巴这种中庸的市场定位而惋惜,卡巴斯基在国内风头虽盛,但在国际市场影响力上比Symantec、NAI这种真正的一线厂商还差得很远。如果卡巴能在反病毒产品更新换代的大潮中放手一搏,那铁定可以挤入国际一线安全厂商阵营。当前的中庸政策,最多只能保持住卡巴现有的市场地位,正所谓别人有的我也有。但是呢,没有特点的产品没有特点的定位,就注定无法切实提高其市场地位。
背景材料:卡巴斯基市场战略的摇摆不定
2006年12月4日,主动防御:对抗病毒的万灵丹?
http://www.kaspersky.com.cn/KL-AboutUs/news2006/12n/061204.htm
2007-01,从熊猫烧香引发的瑞星卡巴口水战开始,卡巴却开始比谁都重视行为杀毒,并在产品和宣传中不断加以强化。
http://netsecurity.51cto.com/art/200701/38686.htm
注:本章节图片除特别注明外均转自网友flo的帖子。
四、行为分析“面”防御体系——行为杀毒实用化
面监控是什么概念呢?就是从程序进入到系统中这一个点开始,全面监控这个程序生成修改文件、创建修改注册表的记录,全面记录每一个被生成的程序运行后的后续详细信息。由一个点开始,多线并进,最终形成一种面状监控状态。然后根据所有捕获的信息综合分析判定程序是否有害,杀毒时自动向上追源,直到源头的那个唯一的点。如下图微点面监控的典型日志,把一个点所做过的所有历史行为都记录下来,生成文件后再继续逐级记录,杀毒时逆向往上追源即可。
 
面监控究竟比线监控多了哪些线索呢?简单举一个例子,微点对程序被改名都非常敏感!我测试时原想通过改名来割断微点程序生成日志的逻辑关系,阻碍微点向上追源。但是我发现改名时(手工改名除外)微点会自动实时更正程序日志,以保证任何情况下都可以完成向上追杀***源头!连和安全完全无关的改名操作都在被监控,面监控体系的细致程度只能用变态来形容。

代表厂商:
微点主动防御软件
此类产品的代表厂商目前只有一个东方微点,网络上一直传说印度有一款Rudra也是行为杀毒,但是很遗憾一直无法搞到具体程序进行测试,请方便的朋友与我联系测试。
微点主动防御软件这种面防御性的行为杀毒技术,其实比前两个阶段的某些产品面世的时间还要早。我分析原因主要有两个:一、东方微点公司虽然规模不大名气不响,但是没有历史包袱,可以毫无负担、毫无顾虑的倾力开发新一代安全产品,这点却是所有知名反病毒厂商都不可能具备的。所以就直接开发了实用型的面防御技术体系架构。二、东方微点的核心架构设计者刘旭,从业经验极为丰富。就像一名熟练的病毒分析师凭着直觉就可以迅速找到病毒分析的突破口在代码的哪几个位置,并加以验证。刘旭本人丰富的反病毒经验和对计算机底层架构的熟悉对于设计实现复杂的面监控分析系统是一种不可或缺的技术支撑。
PS:建议大家看看中关村的五大程序员的故事,个个儿都是顶天立地的程序英雄,蛮有意思呢~!
 

优点:
面监控体系最大的特点就是把围绕被监控程序进程的所有相关信息都收集起来进行综合分析,这样一方面可以基本杜绝点监控的虚警现象,另一方面对外表现出来的最大特点就是面监控行为杀毒除清除报警中提到的病毒***外,还具有极强的追源特性,杀除病毒本体后会自动向上追源查杀***源头。
追源是行为杀毒一个非常有价值的实用点,因为不断绝源头,对病毒就无法做到彻底处理。以微点为例,网络追源可以查找到共享病毒的感染来源;单机追源可以查找到本机***的生成者,在系统中隐藏的***生成者就是当前杀毒软件用户普遍提到的反复杀毒反复报警怎么也杀不干净的首要原因!行为杀毒追源干掉***生成者之后,一般问题就能彻底解决。反复杀毒反复报警的情况多不多呢?自己检索一下各大论坛的电脑求救区吧。
至此,面监控分析体系的建立,行为杀毒技术已经基本具备了实用化的程度。
缺点:
1.面监控行为杀毒采集的信息点多,分析逻辑复杂,需要长期实践进行不断的优化调整。
2.点监控和线监控的报警提示属于建议性的,最终决定权由用户确定,所以就可以顺理成章的把因禁止恶意程序运行而产生的所有异常问题推脱给用户自己。但面监控型行为杀毒,就必须具备完善的驱动程序来抵御住恶意程序反终止、防止反hook的蓄意破坏行为,其容错能力和稳定性的要求都远高于点监控和线监控产品。比如杀毒时蓝屏,没有人会去找病毒作者修正bug,所有的怨气都要归安全软件厂商。
3.细化和丰富与安全无关的信息采集点,例如:针对QQ的盗号***除报出“未知病毒外”是否可以通过细化监控信息明确报警出“QQ***”,进一步提高人机交互的用户体验。

市场展望:
从行为杀毒产品架构方面,微点取得了一些优势。只可惜因为一些莫名其妙的问题,微点的先进优势正在被逐步消耗。所以我仍然坚持以前的观点,针对微点这个产品最终能取得什么样的市场份额目前还无从得知。但是,主动防御产品必然要接替杀毒软件,成为下一代的主流安全产品。改朝换代的时间么,应该就在这3-5年!
注:本章节图片摘自微点帮助文件。
五、展望未来
赛门铁克说2008年的产品要增加主动防御,要避免HIPS类的虚警,要让用户感受到行为杀毒的快感。具体什么样呢?还是比较值得期待的,人家毕竟是国际一线厂商,再结合赛门铁克可以拿到微软源代码授权的传闻,太有理由出手不凡了。只是希望不要像卡巴斯基那样搞一个线监控的行为杀毒来糊弄人,最好完全独立搞出一个行为杀毒产品。另外,既然赛门铁克出手了,另一家巨头NAI也应该快有表示了。
展望一下行为杀毒的未来,07年微点独领风骚,08年微点、赛门铁克行为争霸……

篇外:
微点从诞生之初就备受争议,其行为判断的黑箱机制又让不少朋友为之争论。呵呵,一位台湾朋友至今都不认为微点是行为分析。我从去年年初了解到微点,一直也在不断地对其关注分析。对于微点面监控的认识,来自于最近的一次试验,和大家共同分享。
有天我在想如何把微点最具威力的可怕的追源能力废掉,我设想的方案是***生成者生成***程序,然后把***改名。原本以为这样应该就可以扰乱了微点程序生成日志的程序生成关系。于是用cmd.exe的ren命令进行测试,哪知道微点的监控策略之非常特殊,微点会根据改名的情况实时更新历史日志,以保证日志的有效性。正是日志系统中反应出来的这种基本上与安全无关的监控策略,使我顿悟了微点面监控体系的特点。
附试验方法:
在桌面上复制一个TASKMGR.EXE到C盘根目录,微点日志记录为:
2007-07-18 18:28:07
C:\TASKMGR.EXE
C:\WINDOWS\EXPLORER.EXE
输入命令行:ren ctaskmgr.exe c1.exe 后,日志被自动修正为:
2007-07-18 18:28:07
C1.EXE
C:\WINDOWS\EXPLORER.EXE
本文来自: IXPUB技术社区(
www.ixpub.net ) 详细出处参考: http://www.ixpub.net/thread-678163-1-1.html