反病毒软件的工作是否名符其实?

 

作者:Michael Kassner
翻译:Purple Endurer,2010-01-27第1版
分类:安全

标签:软件, 反病毒, 恶意软件, 反病毒软件, Threatfire Zero-Day Malware,  保护, 间谍软件, 广告 & 恶意软件, 网络威胁, 病毒 & 蠕虫, 安全

 

  经常有人问我反病毒程序的工作是否名符其实,我通常给出肯定的答案。最近,我开始考虑人们为什么会这么问?

  我们都被告之,要在互联网上冲浪,我们的电脑需要反病毒程序来保护,如果确实如此,那么:

  △ 为什么电脑仍然被病毒感染了?
  △ 如果我们不使用反病毒程序,我们会有多少损失?

  在考虑这些问题时,我意识到我可能没有掌握所有事实。所以我开始研究反病毒方法。我的发现如下。

  一、我们面临的是什么?



  请记住,坏人是有动机的。利用恶意软件感染的电脑来赚钱比其他任何非法的努力来得更容易、更安全。尽管如此,我想我们(受害者)也被刺激了,尤其是他们追求的是我们的钱。那么,为什么网络犯罪分子占上风?重要的是,他们受益于:

  A. 有漏洞的软件:这是不言而喻的,软件,特别是代码复杂的,会存在可以被利用的漏洞。
  B. 出其不意的攻击:普通用户不会寻找软件漏洞,而坏人会这么做,从而有机会在我们知道之前利用这些漏洞。
  C. 捉迷藏:要确定恶意软件是什么模样很困难,这令反病毒软件开发商陷入被动。

  二、例子

 

  我找不到比Google最近发生的事件更好的例子了。攻击者利用IE浏览器中未公开(零日)漏洞侵入了Google原以为比较安全的网络。对照我上面列出的漏洞利用三步骤:

  A. 有漏洞的软件:IE存在可以被利用的漏洞。
  B. 出其不意的攻击:这个只有攻击者知道了。
  C. 捉迷藏:反病毒厂商尝试开发一个检测方法,而微软则急匆匆地为IE制作补丁。

  由于仍然不明白为何反病毒软件未能保护我们的电脑,我向一个经验丰富的软件工程师追询此事。他指出,要消除未发现的东西是很难的。这次讨论很低调。我由此认为:检测恶意代码并没有我们想象地那么容易。我的下一步是找出原因。

  三、恶意软件的检测方法

 

  恶意软件的检测方法可以归结为两种:基于特征码的检测方法 和 基于行为的检测方法。反病毒程序可以使用其一或二者都用,取决于程序的复杂程度。基于特征码的恶意软件检测方法已经广泛使用多年,所以我们先看这种方法。

  (一)基于特征码的恶意软件检测方法

 

  基于特征码的恶意软件检测方法取决于模式识别(pattern recognition)。工作原理如下:反病毒程序对文件进行扫描,并与特征代码库中的抵御信息字节码相比较。如果被扫描的文件包含的模式与库中相匹配,就会被认为是恶意软件。反病毒程序会根据程序的配置隔离或删除该文件。

 

  不足

 

  目前,几乎所有反病毒程序都包含基于特征码的恶意软件检测方法。尽管如此,反病毒公司正试图摆脱这种方法,原因如下:

 

  △ 基于特征码的恶意软件检测方法无法有效防御新的或未知的恶意软件。

  △ 新的恶意软件每天都在产生,从而要求特征库更新越来越频繁。

  这些都是令人担忧的,也是反病毒公司投入大量的时间和精力转换到基于行为的检测方法的原因。

  (二)基于行为的检测方法(Behavior-based malware detection)

 

  基于行为的恶意软件检测方法是有道理的,因为它监视的是程序如何活动,而不是软件的构建。也就是说,不论软件看起来是否正确,如果发现它有异常行为,该程序就会被标记。基于行为的恶意软件检测是分成两类:基于异常的恶意软件检测方法 和 基于规范的恶意软件检测方法。

 

  1、基于异常行为的恶意软件检测方法(Anomaly-based malware detection)

 

  基于异常的恶意软件检测方法的关键组成部分是判定什么可视为正常的行为。如此一来,任何不符合正常描绘的行为就可视为可疑的(异常)。例如,一个程序在刚运行时没有产生任何文件,接着这个程序突然将一个文件移动到操作系统文件夹中。这一行动将立即被此类型的防病毒软件所标记。
  基于异常的恶意软件检测方法可进一步分为:

  被动检测(passive detection):利用扫描来检测推导程序是否符合正常范畴。

  主动检测(active detection):在可控环境中(如沙箱或虚拟机)执行有问题的程序,然后观察该程序的行为,如果程序符合某些否定准则,将被标记为可疑。

 

  尽管听起来很好,基于异常行为的恶意软件检测方法也有缺点。这种类型的检测发生误报比较常见,这只是因为现代程序的复杂性。第二,如果攻击者可以确保他的恶意代码行为与好的程序相似,也不会被发现。PC Tools 的 Threatfire零日恶意软件保护程序(Zero-Day Malware Protection)是基于异常行为检测恶意软件方法的一个实例。

  2、基于规则的恶意软件检测方法(Specification-based malware detection)

 

  目前,基于规则的恶意软件检测是最有可能减少恶意软件问题的方法。这是因为,任何程序(操作系统和应用程序都一样)的一切行动都会有一个预先确定的策略介入。例如,电脑用户可以通过配置策略来禁止从网站下载文件。

  与基于异常行为的恶意软件检测方法相比,基于规则的恶意软件检测方法的优势是灵活性和最低的误报率。采用基于规则的恶意软件检测方法的一个实例是诺瓦盾反恶意软件(NovaShield AntiMalware)。

  四、我的研究结果

 

  我很少在电脑中发现被隔离的恶意软件。我注意到别的东西。大多数由典型反病毒程序保护的电脑,在被感染后需要用专门的扫描程序(专杀工具)来以清除这些冒犯进来的恶意软件。写完这篇文章,我知道为什么会这样。

  五、终思

 

  作为抱有“安全胜于遗憾”信念的那类人之一,我将继续建议您使用反病毒程序。我要改变的是所推荐的反病毒程序的类型。它们肯定会包括基于异常行为和基于规则的恶意软件检测方法。

 

​http://blogs.techrepublic.com.com/security/?p=3015&tag=content;col1​