行为禁止:反病毒保护的下一步

来源:互联网 发布:淘宝返利的钱返到哪里 编辑:程序博客网 时间:2024/05/05 18:09
 

行为禁止:反病毒保护的下一步

/Carey Nachenberg

引言

在迅速扩散的蠕虫 / 混合病毒威胁到达前,主要的反病毒技术——病毒特征识别的软件技术——可以证明它提供了预防和积极保护的途径来抵抗一般计算机病毒。那就是过去病毒传播以前,供应商能为大多数病毒装上新的识别特征。这是因为传统型的病毒慢慢地传播——只有当人们交换了被感染的文件——关于议事日程或者星期后才感染计算机。因而在大多数案件中,反病毒软件止了最初的感染,防止了公司的计算机被病毒威胁并且预先排除了昂贵的手工清除和空闲时间的必要。

相反,今天蠕虫和混合型病毒威胁扩散快的惊人,最快的扩散感染有时可能溜过传统的反病毒软件并且在反病毒供应商公布它的特征前在桌面和服务者系统保护自己。一旦这些机器被感染,反病毒软件的基本角色变化就从一个保护/积极的防卫程序转移到清除病毒的程序。

传统反病毒软件在对抗病毒快速的扩散威胁方面很少是有效的,这很清楚。问题是:技术能否改变它们从当前的角色像清除工具,到原来的角色像一个保护性的工具?我相信答案是 yes”;并且使这成为可能的技术是“行为禁止”。这篇文章将高层次来看“行为禁止”技术并且探索这个技术怎么可以从下一代快速传播的蠕虫 / 混合病毒威胁中帮助拯救公司。

特征识别和探索规则– 仍然有效?

传统的基于特征识别技术的反病毒软件是在所有被扫描的文件,磁盘和网络传播中根据成百上千条数字特征来检测恶意代码的。每条特征是从一个指定病毒种类中费力取出的位元组短序列。如果一条指定的特征被发现,感染病毒的内容就会被报道。然而,既然反病毒特征识别是基于从已知病毒感染中来知道位元组短序列的,所以这项技术在检测新病毒种类时经常遭遇失败。

与特征识别相比,探索式的反病毒技术是由仔细检查一个程序从头到尾的结构——它的计算机命令和其它包含在文件中的数据——来查毒的。这种探索式的扫描软件然后以表面的逻辑含义为基础做一个评估报告说程序可能是恶意的。因为它寻找通常可能的逻辑而非寻找指定的特征,所以这样一个系统能将未知病毒检测出来。

应付最复杂的感染,现代特征识别和探索引擎经常雇佣CPU来模拟或者“sand-boxing”与更简单的扫描字节和位元组一起工作的技术。这些产品是由在虚拟机内施行对一个程序有限的模拟工作来模糊地揭露程序的不同。这种模拟是极其有限的 ( 经常少于1000 条指令在典型的程序里模拟运行 )并且监视下的程序从来不在真正的CPU上运行或者对系统造成危害。

一个包括特征识别和探索规则的大的附加功能是它们能在这些具有威胁性的病毒有机会运行和感染计算机之前发现文件的病毒感染。这是因为这些技术只对每个文件的字节和位组进行检验来查出病毒感染(或者在虚拟化的运行期间表现很有限)。然而实际上因为这些系统没有注意到扫描系统的完整执行,所以它们经常在检测新病毒感染时遭遇失败;简单地说有很多简单的方法来迷惑恶意代码,而经常只有一种方法来确信它是恶意代码——监督它在真正的芯片上运行和是否企图损害系统。这就是行为禁止的入口。

行为阻断

与探索规则或者特征识别不同的是,行为禁止软件与主机操作系统和监视程序实时的对恶意程序产生的动作行为相结合,然后在它们有机会影响系统以前,行为禁止软件阻断潜在的恶意动作。监视的行为可以包括:

1. 试图打开,查看,删除,或修改文件;

2.  试图格式化磁盘驱动器和别的不可恢复磁盘操作;

3.  修改可执行的文件的逻辑, 宏脚本;

4.  修改系统的危险设置,如启动设置;

5.  电子邮件脚本和发送可执行内容的即时消息给客户机;

6.  网络通讯的开始。

如果行为禁止系统检测出一个程序在它初始化运行时将会成为恶意行为的话,它会实时地阻断这些行为并且使这些软件停止运行。这就给了它一个重要的优势,这优势超过了那些愚蠢的反病毒技术像特征识别或者探索规则。虽然理论上有很多不同的方式来模糊和重新整理病毒或蠕虫指令,但是大多数病毒却能躲过特征识别和探索规则的检测,最后恶意代码必须做一个明确的请求到操作系统。行为禁止系统能拦截所有给出的请求,并且能识别和禁止恶意行为而不管程序逻辑上的出现会是如何的模糊。

监督软件能在它实时地运行时给行为禁止系统带来一个可见的巨大好处;然而它也有不足。因为恶意代码必须在它所有行为能被识别之前在目标机器上实实在在地运行,它能在被查出和被行为禁止系统禁止之前对系统造成巨大的危害。例如,一个新型病毒可能在感染单个文件和被禁止之前将不易破坏的驱动器周围许多看起来不重要的文件变得混乱不堪。即使实际的感染被禁止,用户也可能不能定位它们的文件,给生产率带来损失或者可能更糟。这是当可能性出现时为什么它总是更好的检测病毒并且用“实验模拟真实(tried-and-true)”的扫描系统来禁止感染(这也是为什么特征识别技术决不会走开的原因)。

基于策略和专家的系统

禁止系统存在的行为能被分为两个种类:基于策略禁止系统和基于专家禁止系统。

基于策略的系统允许主管指定说哪个行为被允许和哪个行为被禁止。每次一个程序做一个请求到操作系统,行为禁止系统拦截请求,向它的策略数据库请教,要么允许要求继续进行,要么完全将请求禁止。例如, 一个Java 禁止系统基于策略的行为可能提供下列选择:

把这条策略用于所有的小程序:

操作描述

禁止请求?

允许applets打开文件:

是的

允许applets删除文件:

是的

允许applets开始网络连接:

是的

允许applets在系统目录存取文件:

因为它们的逻辑是透明并且容易理解的,所以这样的系统经常对主管有吸引力。然而, 大多数这种系统也有作出错误肯定的倾向并且在雇佣生产率时产生最大的影响,因为它们用同等的活力禁止恶意和合法的程序行动;没有被尝试确认行为是否是恶意的。同样地,几乎有很少的主管理解指定禁止策略的含义,像“禁止所有程序访问系统文件”。主管怎样通过推想知道有多少合法程序要求这样操作,或者这样一个策略选择将怎样有效地免于病毒和蠕虫?

与基于策略的系统相比,基于专家的系统雇佣了一个更不透明的操作方法。在这些系统里,人类专家分析了恶意的代码的全部种类,然后设计了它们的行为禁止系统来识别和禁止可疑行为。在一些情况下一个即将发生的危险行为是允许的,而在另一些情况下它是会被禁止的。例如,一个行为禁止专家可能知道%80的恶意代码在访问系统以前首先尝试修改注册表的启动区域。所以他能设计他的行为禁止系统在第一次知道程序修改了注册表的启动区域后只禁止程序对系统文件的访问。这样一个规则只有较小的可能性禁止合法程序而导致虚惊,然而仍然要禁止一个威胁性较高的程序。虽然一个基于策略的系统可能提供一个选项来“禁止访问系统文件”,基于专家的系统将提供一个选项来“禁止像病毒的行为”。很显然,用这样一个系统,网管必须对制定这些聪明的选择标准的系统设计专家抱以很大的信任才行。

行为禁止的目标

当制造一个基于专家行为禁止系统时,工程师需要对不同类型的恶意病毒考虑不同的禁止规则。这节我将一些卓见给一些可能被禁止的操作来抵抗每一种恶意代码类型。

禁止寄生病毒

寄生病毒是使它自己依附在其他程序上的自我复制程序。当一个被感染的程序运行时,病毒获得控制权,然后把它的逻辑附着到另外的可执行的文件上。当行为禁止系统观察到一个可执行程序被另一个特征的病毒感染时它能保护程序免于这种类型的威胁。这种修改包括修改文件头和修改应用程序的部分代码,以及其它。行为禁止系统能用这儿的技术范围:禁止所有程序被其他程序修改,禁止修改某个文件头域以防感染等。

禁止蠕虫和混合性病毒的威胁

蠕虫和混合型病毒的威胁经由电子邮件、驱动器共享或者通过利用其它脆弱部分在网络上传播。为了禁止这种威胁,行为禁止系统必须将它自己注入在程序和它们的繁殖传播媒介之间。可能的途径包括禁止使用可疑电子邮件的API函数来发送可执行的代码,阻止未知程序在网络上交流,并且禁止程序使用驱动器共享和拷贝可执行内容到其它计算机。

禁止特洛伊木马

特洛伊木马离开了假积极也许最难禁止。因为这些威胁没有一个容易描述的固定行为像病毒和蠕虫。这里,行为禁止系统必须对许多可能可疑的行为进行检查,包括对系统文件或注册表进行修改,尝试访问文件或其它数据异常(“为什么这个可爱的图形程序访问我的扩展文件夹?”),禁止在网络上交流未知 / 非法程序, 等等。问题是许多合法程序也做了上述所有活动,而且它经常不可能把无害和恶意的意图辨别清楚。

行为禁止:改进的空间

可以证明行为禁止系统作为附加的层次在对付最近的恶意代码方面威胁具有巨大的前途。事实上, 已经有很多小公司提供这些解决方案。为什么这些产品在企业里只有有限的成功?我相信缺乏成功的原因有 4 个:

1. 假积极。行为禁止,像入侵探测软件一样,对虚惊有着可怕的名声。禁止系统的存在有它们问题的部分并且用户由于潜在的反响而不愿意或者害怕在服务器上或桌面上配置它们。假积极也根据所花工时消耗钱来回报他们。

2. 管理头疼。当前的行为禁止系统没有企业要求的管理层次能力。他们困难的推出,要求多方面的配置,而他们的管理控制台( 如果可能 )在表现好坏方面失败。最后, 一些系统要求用户改变他们工作的方法——最多一个困难的前景 ——以便提供保护(例如所有你的危险文件在一个目录并且设置产品禁止访问这个目录)。

3. 系统开销。行为禁止系统必须与操作系统相结合,拦截系统访问命令以提供保护。这样的集成系统在价值上降低了表现。如果所存在的实时保护已经在机器上运行,第 2 个驱动器可能意味着麻烦。

4. 一些供应商正在出卖对付公司面临的真正威胁时失败的解决方案:很多公司提供禁止Java ActiveX 行为的系统。作为一个过去 11 年间在 NORTON 软件公司的工程师和恶意代码的研究者,我能用指头数出世界上所有的Java ActiveX 威胁。我相信顾客们认识到一些商业性的行为禁止止系统在对付真正的病毒、蠕虫和特洛伊木马时只能起到一点保护作用,并且已经在其它地方投资了他们的美元。

这些显然是我自己与顾客,系统工程师和安全教授谈的自己的看法。我欢迎使用了这些系统的读者与我谈谈你们的经验。

下一步

在以后的几年里,我相信我们将看见在这片领域的许多改变。大的安全公司已经花了大量的时间来研究这些系统,小的安全公司也开始给顾客展示,稍大一点的公司也在屏幕上放映。

对行为禁止系统的存在仍然有很多重要的问题要解决。就像入侵检查系统(一个行为禁止系统的兄弟),仍然要担心假积极问题。在计算机科学这是一个很难的问题并且这也是一个未知好的解决方案的问题。像DARPA组织,大学和私人公司多年来一直在试着解决这些假积极的问题,很少能用于商业结果。最后,我期望顾客们在对付假积极的一个确定的层次上学着生活,并且在对付最不干净的蠕虫和混合性病毒威胁上不要冒失地交易,但是要保持观望。

行为禁止是否确实起飞是一个人的猜测,但是有一件事是很清楚的:反病毒解决方案并不像它们过去那样提供积极的保护;如果他们在市场上幸存,这些解决方案将需要与病毒威胁一起演变。要么我们需要雇佣更多的IT员工。