木马侦测出新招:基于行为的反木马侦测方法

社会媒体网络目前都在以惊人的速度迅猛增长,据Facebook的报告称他们已经在全球范围内拥有1.6亿注册用户。其他的社区网络同样发展的如火如荼。我们正被有用又好玩的Web 2.0技术所包围,它帮助我们创建自己的空间。但不幸的是,这也意味着我们面临的安全风险与日俱增。目前肆虐在互联网上的木马数量也在飞快攀升。

Web 2.0工具拥有更强大的互动性,也让计算机和网络成为木马攻击的目标。

如今企业也在工作中使用以Web 2.0为基础的解决方案和社区网络。有很多企业在网络中用到的应用软件数量达到8种甚至更多。人们越来越多的在工作和生活中使用Web 2.0应用软件的趋势也增加了木马攻击和企业数据泄露的风险,修复漏洞的费用也随之攀升。

多数交互式和互动性网络应用软件都需要在用户浏览器内部运行代码。Flash和JavaScript使用的在线脚本正在成为互联网用户日常生活的组成部分。网络厂商也都见证了Google Docs的成功,Facebook和YouTube也看到了在用户浏览器中运行的嵌入式程序的价值。正如我们所期望的,这个过程随着应用软件,文档和其他文件逐渐迁移到互联网云上,还会继续加速发展。

但问题是这些代码很容易被黑客操纵成为进入计算机或者互联网的敲门砖。随着如此众多的网络开始使用在浏览器中运行的代码,你无法真正关闭这些脚本。浏览器是新的操作系统。用户在浏览器中使用的功能逐步扩大,这也意味着木马进入计算机和网络所能利用的漏洞数量也有所增长。计算机和网络成为木马病毒藏身的领地,有更多的窗口可以让这些网络窃贼乘虚而入。

用户必须了解点击电子邮件中可疑链接或者下载不明程序的危害,目前木马程序的表现形势更加多样化。他们并不总是利用错误行为来传染计算机。运行Flash程序中的广告就可能存在恶意代码,电子邮件中丰富的HTML和各种形式的JavaScript也可能是恶意程序潜伏的温床。

为了与这些类型的木马风险坐斗争,安全领域正在从基于签名的反病毒方式向基于行为的方式转变。让我们对细节进行解析。

基于签名的防病毒侦测方法是通过从已知的恶意程序签名数据库中的代码模式来鉴别木马类型的侦测方法。如果一个程序中包含一个数据库中存在的模本,就被认定为木马。这种木马侦测的方法也被称之为基于签名或者误用检测法。尽管基于签名的检测法目前时木马侦测领域应用最为普遍的技术,但它也有两方面的不足(特别是在Web 2.0环境中):

不足1:易于规避

由于签名或者模本来源于已知木马,这些侦测手段很容易被某些伪装或者混淆程序规避过去。即使简单的程序混淆也能产生木马变种躲开基于签名的侦测器。而且目前有强有力的证据表明黑客已经利用这些混淆手段来规避基于签名的探测器。

不足2:无法侦测未知木马

由于签名时通过检查已知木马来创建的,因此基于签名的侦测手段只能检测到那些已知的木马。事实上,基于签名的侦测方法甚至无法检测到已知密码的变种。基于签名的侦测器只能提供有限的实时侦测。另外,鉴于签名的侦测方法必须为每个木马变种创建独立签名,所以签名数据库也在以不可思议的速度增长。

白名单:超越基于签名的侦测方法

基于签名的侦测方法是远远不够的。但是什么是可选方案呢?让我们评估白名单和几种不同类型的基于行为的反病毒侦测方法。

白名单是人们用来管理安装在计算机中的软件的常用方法。白名单软件工具只能允许获准的软件可以安装和运行。那些明确列在控制清单中的软件是被锁定在计算机内无法运行的。白名单是保护计算机的一种非常有前景的方式,但是白名单对软件运行的环境要求非常苛刻,在这种环境下可供下载的软件有严格规则。

但是白名单侦测方法有三个缺陷。首先,白名单会产生恼人的计算机使用记录。用户经常会连续收到pop-up警告。其次白名单限制了用户方便下载和使用新软件的能力。第三,白名单应用软件存在漏洞,举例来说,如果你将一个浏览器列入白名单,那么任何在浏览器内运行的任何木马程序都无法被侦测到事实上,许多木马病毒都是通过浏览器入侵的。

基于行为的反木马侦测方法

基于行为来侦测木马病毒的方式能监控程序的行为,通过行为来决定是否这个程序存在恶意。被监控的程序行为是进入操作系统的系统流。由于基于行为的技术手段能监控程序的运行,他们就不容易受到之前所提及的基于签名侦测手段缺陷的干扰。简单来说,基于行为的侦测器会通过检测程序的运行情况决定程序是否存在恶意代码。

显然安全领域必须从基于签名的侦测手段中脱离出来。但是如果这样又会发生什么,仍然存在争议。

目前存在几种类型的基于行为侦测手段。

异常侦测

基于行为侦测方法的主要手段就是异常侦测。在这种侦测木马的方法中会创建正常程序行为包。任何与正常行为包相背离的行为都会被标记为反常或者可疑。异常侦测手段类似于信用卡诈骗侦测方法。信用卡公司保留用户的支出记录包。任何与这些支出记录包背离的重大异常都会被标记为可疑。

举例来说,如果信用卡公司注意到客户在欧洲商场出现大额支出,而这名客户在过去几年中都没有在欧洲购物的记录,他们就会将这笔交易标记为异常。同样让我们再来说程序,在正常运行中时不会被写入敏感目录中的。如果监控系统记录将程序写入敏感记录,侦测系统就将把这个行为标记为异常。异常侦测有以下两个缺陷:

缺陷1:容易受到错误行为的诱导

复杂行为的常规行为也是非常复杂的。举例来说,IE浏览器的行为设置就非常复杂。因此就很难建立复杂程序常规行为的模式。常规行为模式的不足就会导致错误行动。

缺陷2:容易受到模拟攻击的影响

目前已经证明异常侦测技术容易受到模拟攻击的影响。在模拟攻击中,攻击者将他们的攻击伪装为同样可疑的攻击,但是伪装过的攻击经常会被当成程序正常模式而被批准运行。

基于说明的监控手段

基于说明的监控手段也是基于行为侦测方法的一种。在使用基于说明方法来侦测木马程序时,所有要在操作系统中运行的程序都必须通过特别说明或者协议作为中间层。这种协议会注明应对这一系列程序事件要采取什么措施。这些措施可以是允许,拒绝或者记录。

举例来说,我们可以对浏览器制定协议,注明"任何从网站下载的文件(不是白名单)都不能自动运行"。这种协议将不会允许用户从不在白名单的网站上下载文件或者运行他们。这些协议在定位重要的感染矢量上是非常有效的。

基于说明的监控手段与异常侦测相比有以下两个优势:

优势1:灵活性

基于说明的监控手段能减少协议的创建。举例来说,用户可以假设在基于说明的监控系统中已经设置了协议,因为基于说明的监控系统是源自于异常侦测的。因此从抽象层面上说,基于说明的监控手段比异常侦测更加通用。

优势2:减低了错误行为

由于协议是精心设计的,基于说明的监控系统就很容易理解,这样也能减低错误行为。