主动防御:对抗病毒的万灵丹?
病毒攻击已确实成为IT安全的头号威胁。它们不仅导致经济损失,更带来其他种种的安全威胁,例如机密资讯盗窃与针对敏感性资料的未授权存取。因为这些威胁,反病毒业界推出许多新方法,用以保护IT基础建设——举少数为例,包括主动防御技术、疫情爆发时的紧急更新、更加频繁的反病毒资料库更新等。本文属于一系列文章中首先公布者,将就反病毒公司所采用的最新技术提供更进一步的资讯,并帮助使用者更客观地判断这些技术的有效程度。在本文章中,我们将专注于主动防御技术。
病毒攻击造成巨大的损失,与此具备相同严重性的,则是恶意程序码的种类与数量正加速增长。在2005年,恶意程序数量呈现爆炸性的成长:据卡巴斯基实验室统计,截至该年底为止,每月检测到的平均病毒数量已达6368种。与上一年度的93%比较起来,年度整体上涨率高达117%。
同样的,威胁本身的本质业已改变。恶意程序不但变得更多,也变得比以前更加危险。为回应此种挑战,反病毒业界采用一系列的新方法,包括主动防御技术,更快速的回应可能爆发疫情的新威胁,以及更加频繁的更新反病毒数据库。本文提供主动防御的详细分析,主动防御常被厂商称为对抗所有现存的、甚至是未来病毒的万灵丹。
主动防御技术概论
当代反病毒产品使用两种主要方法检测恶意程序码——以病毒码为基准的分析,与主动防御/探索式分析。第一种方法相当简单,将使用者电脑上的物件与已知病毒的范本(例如病毒码)作比较。此种技术牵涉到新型恶意程序的持续追踪,并根据其性质建档,包含于病毒码资料库中。因此,反病毒公司应拥有追踪及分析恶意程序码的有效服务(亦即反病毒实验室)。评估病毒码方法有效程度的主要标准,包括新威胁的回应时间、更新频率及检测率。
以病毒码为基准的方法有几项明显的缺点。主要的缺点就是在应对新威胁上会出现延迟。病毒的出现与病毒码释出之间,必定存在有延迟时间。而当代的病毒可以在非常短的时间内感染数百万台电脑。
因此,主动防御/探索式的病毒检测方法逐渐普及。主动防御方法不需要释出病毒码。相对的,反病毒程序会分析扫描到的物件程序码,及/或启动的应用程序行为,并根据预先设定的规则,判定软件是否为恶意软件。
理论上,此种技术可用于检测未知的恶意程序,因此许多反病毒软件开发者争先恐后的宣传主动防御方法是对付新型恶意软件的万灵丹。但事实不然。如果要评估主动防御方法的有效程度,以及其是否可独立于以病毒码为基准的方法之外单独使用,我们必须先了解主动防御技术所根据的原理。
主动防御可通过数种方法达成。在此我们将探讨其中两种最普遍的方式:启发式分析器与行为拦截工具。
启发式分析
启发式分析器是分析物件程式码的程序,使用间接方式判定物件是否具有恶意。不同于以病毒码为基准的方法,启发式分析器可以检测出已知和未知的病毒(亦即在启发式分析器写成之后才问世的病毒)。
分析器通常会先由扫描式码开始,寻找具备恶意程序特征的可疑属性(命令)。此方法称为静态分析。举例说明,许多恶意程序会搜寻执行档,然后开启找到的档案并加以修改,启发式分析器检视应用程序之程序码,并在找到可疑命令时增加该应用程序的可疑指数。若检查完全部程序码后的指数值超过预设的标准,该物件即归类为可疑物件。
此方法的优势包括便于实施,以及具备高效能。然而,此方法对新型恶意程序码的检测率较低,而误判率也较高。
因此,在目前的方病毒程序中,静态分析会与动态分析并用。此种综合型方法背后的概念,是让应用程序实际在使用者电脑上执行前,先在安全的虚拟环境(又称模拟缓冲区或“沙磐”中进行模拟。在厂商的行销资料中,亦称作“虚拟PC模拟”。
动态启发式分析器会将应用程序的程序码部分复制到反病毒程序的模拟缓冲区中,并使用特别的“技巧”模拟其执行。若在此“模拟执行”中检测到可疑的动作,该物件将归类为恶意物件,且该物件在电脑上执行时将遭封锁。
由于以动态方法为基准的分析须使用受到保护的虚拟环境,此方法因此比静态方法需要更多的系统资源,而应用程序在电脑上执行时,也将因为完成分析所需的时间量而造成若干延迟。然而,比起静态方法,动态方法提供较高的恶意软件检测率,误判率也比较低。
反病毒产品使用启发式分析器已有相当的历史,因此,目前所有反病毒解决方案所采用的启发式分析器,或多或少都是为进阶的版本。
行为拦截工具
行为拦截工具是在应用程序执行时分析其行为,并封锁任何危险活动的程序。不同于在模拟模式中追踪可疑动作的(动态)启发式分析器,行为拦截工具乃是在实际的环境中运作。
第一代行为拦截工具并不太成熟。每当检测到潜在危险的动作时,使用者便收到提示,询问是否封锁该动作。虽然此种方法在许多场合中有效,但正常的程序有时也会执行“可疑”的动作(包括作业系统本身),而未必熟悉此类过程的使用者,常无法理解系统的提示。
新一代的行为拦截工具分析的对象是一连串的作业,而非个别的动作,这代表在判定应用程序行为是否具危险性时,根据的是更加纯熟的分析。如此有助于大幅减少系统提示的出现次数,并增加检测恶意软件的可靠度。
如今的行为拦截工具可监控系统中各式各样的事件。其主要目的在于控制危险的活动——亦即分析所有执行于系统中的处理程序行为,并将所有对档案系统与登录档作出变更行为资讯储存。若应用程序执行危险的动作,使用者会收到警示,指出处理程序带有的危险性。封锁工具亦可拦截任何企图将程序码注入其他处理程序的行为。此外,封锁工具可检测到Rootkit——此种程序会隐藏恶意程序码对档案、资料夹与注册机码的存取,并导致使用者无法发现程序、系统、服务、驱动程序与网络连线。
行为拦截工具另一项特别值得一提的功能,便是其控制应用程序与Microsoft Windows系统登录档完整性的能力。就后者而言,封锁工具会监控针对注册机码所进行的变更,并可定义不同应用程序对注册机码的存取权限规则。因此便可在检测到系统中危险的活动,或甚至当未知的程序执行恶意活动后,恢复变更,借以还原系统至感染前的状态。
不同于现代反病毒程序普遍使用的启发式分析器,行为拦截工具较为少见。包括于卡巴斯基实验室产品中的Proactive Defense Module(主动防御模块)便是有效的新时代行为拦截工具之其中一例。
该模组包含上述所有功能,以及同样重要的,一套便利的系统,可通知使用者任何与检测到的可疑动作有关的危险性。任何行为封锁器都需要使用者某种程度的输入,因此使用者也必须具备相当之能力。实际上,使用者通常不具所需之知识,因此资讯支援(实际说来,应是决策支援)是任何当代反病毒解决方案皆不可或缺的一部分。
总结上述的讨论,行为拦截工具可预防已知及未知(亦即封锁工具开发完毕以后才写成的)病毒扩散,这是此类防护方式毋庸置疑的优势。但另一方面,即使是新时代的行为拦截工具也有重要的缺点:部分正常程序的动作可能遭辨识为可疑动作。此外,决定应用程序是否具有恶意,尚需要使用者输入,这代表使用者必须具备足够的知识。
主动防御与软件的缺陷
部分反病毒厂商在其广告与行销资料中声明,表示主动/探索防护是对新威胁的万灵丹,不需要更新,因此随时可以封锁攻击,甚至可以对付尚未存在的病毒,更甚者,在手册与资料单中,不但常把这类的宣称套用到利用已知弱点的威胁上,更包括了所谓的“零时差”攻击。换句话说,根据这些厂商所言,他们的主动防御技术甚至可以封锁利用应用程序中未知缺陷(尚未有修补档)的恶意程序码。
不幸的是,这些宣传资料的作者若不是有意欺骗,便是根本还不了解此技术,具体而言,与恶意程序码对抗的战争可说是病毒写作者与自动化方法(主动防御/探索)间的战争。在实际生活中,则是人与人之间的战斗——病毒写作者对抗反病毒专家。
上述之主动防御方法(启发式分析器与行为拦截工具)乃植基于恶意程序典型可疑动作相关的“知识”。然而,这套“知识”(亦即一组与行为有关的规则)原是反病毒专家借由分析已知病毒行为所取的,并输入程序中。然而,针对那些在规则开发完毕以后才问世的、使用全新方法渗透并感染计算机系统的恶意程序码而言,主动防御技术可说是无用武之地——这就是零时差危险的真相。此外,病毒写作者不断努力找出新方法,借以避开现存反病毒系统使用的行为规则,如此始终将导致主动防御方法的有效性大打折扣。
反病毒开发者别无选择,只能更新他们的行为规则,并升级启发式分析器,以回应新威胁的崛起。比起病毒码(程序码范本)的更新频率,此类更新在频率上当然不会那样频繁,但仍需定期执行,随着新威胁的数量增加,这类更新的频率也将无可避免地随之上升。因而,主动防御将发展为病毒码方法的一系分支,只不过它所根据的并非程序码模式,而是“行为”。部分反病毒厂商向使用者隐瞒更新主动防御的需求,事实上就是在欺骗其企业与个人客户以及媒体。结果导致大众在主动防御技术的能力方面拥有不太正确的概念。
主动防御vs.病毒码方法
尽管有其缺陷,主动防御式方法的确能在相关病毒码发行前检测到部分威胁。以反病毒解决方案针对称为Email-Worm.Win32.Nyxem.e (Nyxem)的蠕虫,所采取的回应之道为例。
Nyxem蠕虫 (亦称 Blackmal、BlackWorm、MyWife、Kama Sutra、Grew 及 CME-24)可在使用者开启内含色情图片、色情网站或者档案连接(存于公开网络资源上)的电子邮件附件时渗透电脑。病毒只需极短时间便能删除硬盘中的资讯。影响所及的档案格式多达11种(包括Microsoft Word、Excel、PowerPoint、Access、Adobe Acrobat)。病毒会以无意义的字元组复写一切有用的资讯。Nyxem另外一项特征是只在每个月三号发作。
Magdeburg大学的研究团队(AV-Test.org)所进行的一项独立研究,评估不同的开发者在Nyxem出现时的反应时间。结果有数种反病毒产品能在病毒码发行前,使用主动防御技术检测到蠕虫:
|
预先检测到Nyxem的行为拦截工具 | |
| Kaspersky Internet Security 2006 (Beta 2) | 检测成功 |
| Internet Security Systems:Proventia-VPS | 检测成功 |
| Panda Software:TruPrevent Personal | 检测成功 |
| 预先检测到Nyxem的启发式分析器 | |
| eSafe | 木马程序/蠕虫[101] (可疑) |
| Fortinet | 可疑 |
| McAfee | W32/Generic.worm!p2p |
| Nod32 | NewHeur_PE (可能是未知病毒) |
| Panda | 可疑档案 |
| 可检测 Nyxem 的病毒码发行时间 | |||
| BitDefender | 2006-01-16 | 11:13 | Win32.Worm.P2P.ABM |
| 卡巴斯基实验室 | 2006-01-16 | 11:44 | Email-Worm.Win32.VB.bi |
| AntiVir | 2006-01-16 | 13:52 | TR/KillAV.GR |
| Dr Web | 2006-01-16 | 14:56 | Win32.HLLM.Generic.391 |
| F-Secure | 2006-01-16 | 15:03 | Email-Worm.Win32.VB.bi |
| VirusBuster | 2006-01-16 | 15:25 | Worm.P2P.VB.CIL |
| F-Prot | 2006-01-16 | 15:31 | W32/Kapser.A@mm (正确) |
| Command | 2006-01-16 | 16:04 | W32/Kapser.A@mm (正确) |
| AVG | 2006-01-16 | 16:05 | Worm/Generic.FX |
| Sophos | 2006-01-16 | 16:25 | W32/Nyxem-D |
| Trend Micro | 2006-01-17 | 03:16 | WORM_GREW.A |
| eTrust-VET | 2006-01-17 | 06:39 | Win32/Blackmal.F |
| Norman | 2006-01-17 | 07:49 | W32/Small.KI |
| ClamAV | 2006-01-17 | 08:47 | Worm.VB-8 |
| Avast! | 2006-01-17 | 15:31 | Win32:VB-CD [Wrm] |
| eTrust-INO | 2006-01-17 | 16:52 | Win32/Cabinet!Worm |
| Symantec | 2006-01-17 | 17:03 | W32.Blackmal.E@mm |
整体而言,有八种反病毒产品使用主动防御式方法检测到Nyxem。然而这代表主动防御技术可以取代“传统”的病毒码方法吗?当然不能。为了证明其有效性,主动防护有效性之分析应根据大量病毒的检测结果,而非个别病毒,无论其恶名昭彰之程度为何。
Andreas Clementi (www.av-comparatives.org)根据大量病毒资料分析反病毒产品所使用的主动防御方法,而他也是这方面少数受到公认的独立研究人员之一。为找出哪种反病毒程序能够检测到尚未存在的威胁,可利用最近出现的病毒测试解决方案,例如三个月内的病毒。当然,反病毒程序必须执行三个月以前发行的病毒码资料库,这样一来,它们所面对的便是“未知”的威胁,Andreas Clementi关注的是此类测试的结果。
根据2005年所进行的测试结果,Eset、Kaspersky Anti-Virus 与Bitdefender解决方案所使用的启发式分析器最为有效。
![]() |
| 主动式(探索)检测率 (资料来源:AV-comparatives.org) |
此项测试使用8259种病毒。我们可以从上述的结果发现,测试中最高的检测率为70%左右。这代表各种受测的解决方案都至少遗漏2475种病毒,这可不是小数字。
在《PC World》杂志中,另有一项Magdeburg大学专家(AV-Test.org)于2006年三月所进行的启发式分析器有效性测试,该项测试的领先者所达成的检测率甚至不超过60%。该测试使用一个月与两个月之前的病毒码。
![]() |
| 主动式(探索)检测率 (资料来源:PC World,AV-Test.org) |
在此应注明,启发式分析器所展现出的高检测率亦有其负面影响,误判率同样很高。为使作业正常,反病毒程序应在检测率与误判率间取得平衡。对于行为拦截工具而言,亦是如此。
由 AV-comparatives.org 与 AV-Test.org所进行的分析结果,确实说明了单独使用主动防御式方法无法提供必要的检测率。反病毒厂商非常清楚这一点,因此无论他们将主动技术说的如何天花乱坠,仍持续在他们的解决方案中使用传统的病毒码检测方法。纯主动防御式解决方案的开发厂商(Finjan、StarForce Safe'n'Sec)必须由协力厂商处购买“传统”病毒码技术的授权,以使用于他们的产品中,就再说明了这点。
以病毒码为基准的方法当然也有其缺点,但截至目前为止,反病毒业界仍无法提出任何可取代此传统方法的手段。因此,衡量反病毒解决方案有效性的主要标准,仍将包括主动式防护的品质,以及面对新病毒威胁的反应时间(将相关的病毒码加入资料库中,并将更新传送给使用者)。
下列资讯是领先的反病毒厂商所展示,于2005年间针对主要反病毒威胁的平衡反应时间。Magdeburg 大学研究团队 (AV-Test.org) 分析开发者发行相关病毒码更新的时间。分析涵盖2005年最常见的16种蠕虫的不同变形,包括Bagle、Bobax、Bropia、Fatso、Kelvir、Mydoom、Mytob、Sober与Wurmark。
| 平均反应时间 | 2005 |
| 0 至 2 小时 | 卡巴斯基实验室 |
| 2 至 4 小时 | BitDefender、Dr. Web、F-Secure、Norman、Sophos |
| 4 至 6 小时 | AntiVir、Command、Ikarus、Trend Micro |
| 6 至 8 小时 | F-Prot、Panda Software |
| 8 至 10 小时 | AVG、Avast、CA eTrust-InocuLAN、McAfee、VirusBuster |
| 10 至 12 小时 | Symantec |
| 12 至 14 小时 | — |
| 14 至 16 小时 | — |
| 16 至 18 小时 | — |
| 18 至 20 小时 | CA eTrust-VET |
总结
上述讨论可归纳出几点重要的结论。首先,对抗恶意程序的主导防御方法是反病毒业界针对在数量以及扩散速度上不断成长的新型恶意软件所做出的反应,现存的主动防御方法的确有助于对抗许多新威胁,但是主动防御技术可取代定期更新作为反病毒保护的概念是错误的。事实上,主动式防御方法与病毒码方法同样需要更新。
现存的主动防御技术本身不足以确保高恶意程序的检测率,此外,在这类案例中,较高的检测率也伴随着较高的误判率。在此情况下,面对新威胁的反应时间仍是衡量反病毒程序有效性的明确标准。
为了达成最佳的反病毒保护,主动防御与病毒码方法应该一并使用,因为最高的检测率只能借由结合此两种方法而达成,下图显示由Andreas Clementi (www.av-comparatives.org)所进行的测试结果,该测试判定整体(病毒码+启发式分析器)恶意程序检测等级。在测试中表现良好的程序,其间差距看来也许很小。但是请记得,这项测试运用140,000种病毒进行,因而1%的差异就代表2400种未检测出的病毒。
|
|
| 整体检测率 (资料来源:AV-comparatives.org) |
反病毒解决方案的使用者不应太过相信厂商行销资料中的资讯。比较整体产品性能的独立测试较适用于评估市面上解决方案的有效性。
责任编辑 赵毅 zhaoyi#51cto.com TEL:(010)68476636-8001
|
· 教你使用Anti ARP Snif.. · 网络嗅探教程:使用Sni.. · 时代亿信企业级信息安.. · ISA Server、虚拟机、.. · Windows年底再现图片漏.. · MBSA本地审核策略建议 |
· 企业局域网安全访问控.. · 常见病毒手工清除方法.. · 网络技术经典基础教程 · 救命:中了lsass和smss.. · 每次开不管什么网页都.. · 东方标准-病毒防护技.. |
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |