查看: 37358|回复: 411
收起左侧

[金山] 金山之行学习贴系列一:“未知病毒无法查杀”的真实概念

   关闭 [复制链接]
蓝芯云安全
发表于 2011-7-27 22:27:54 | 显示全部楼层 |阅读模式
本帖最后由 蓝芯云安全 于 2011-7-28 00:03 编辑

此次金山之行,再次学习到了许许多多的新技术,也深入了解了现在互联网的新形势与新防御手段。这次我是特意带着很多论坛朋友们的问题去的,特别就断网防御、未知病毒查杀等问题请教了金山的工程师们。鉴于内容过于庞大,一篇文章写完固然可以让我得到很多分,或者显得我知道很多东西似的,但实际上对于论坛网友们,尤其是不太了解金山现今云防御手段的朋友们,洋洋万字的文章真是阅读的灾难。所以我特意将此行所了解到的内容分成三个系列来写,重点就介绍金山关于这三个方面的理念。这些理念未必会让所有人接受,但至少能让很多人纠正之前不正确的看法。

系列一:何谓“未知病毒无法查杀”

金山此次爆出了一个特别令人震惊的理论,那就是“现在没有一款杀软能够查杀未知病毒”,引发了主防控和启发控网友的一致声讨:明明我电脑上的HIPS和高级启发式根本无需升级病毒库也能拦截最新出现的病毒,凭啥说没有杀软能查杀未知病毒?!

之前我也感到不可思议,因为明明很多杀软很久不更新病毒库,他也能查杀刚出来的病毒嘛!

但是此行去金山,我了解到了比较重要的一个概念:何为“未知病毒”?何谓“查杀依据”?


首先要了解何谓“未知病毒”,“未知病毒”有两层意思:

一、该病毒对于某一特定厂商来说是未知的,没有被拦截到过,或者对某一特定版本的杀软来说是未知的,没有针对该病毒升级过病毒库或者特征库;
二、该病毒对于当前社会环境来说是未知的,新生于互联网,从未有任何一个杀软厂商拦截到过该病毒。

那么两层意思里面就出现差别了:
一、对于特定厂商的未知病毒,其他厂商可以查杀,那么这个病毒到底算不算未知病毒呢?
二、对于互联网新生的病毒,他是不是使用全新的编程方式来生成的呢?

解释清楚了这两个疑问,其实就可以知道未知病毒到底能不能查杀了。

假如是情况一,一个病毒对于某一特定杀软来说是未知病毒,其他杀软厂商却可以查杀,其实从本质上来说,这个病毒并不能被称为未知病毒,因为对于该病毒,行业内已经出现了确切的定义,很明显的,样本区出现一个病毒,卡巴、nod32杀了,红伞没杀,此时卡巴报病毒名为下载者,nod32报未知木马,难道就能说nod32能查杀未知病毒,红伞不能?那卡巴岂不是很吃亏?要知道下载者的行为其实行业内已经定义了,卡巴已经报具体名称,此时nod32宣称自己能查杀该未知木马肯定是显得很囧的,那如果是这样的话,一款杀软只需要在查杀的时候把所有的特征都报一个名字:“Unknow Virus”,那这款杀软是不是就是世界第一牛了呢?肯定不是啊!所以说,一款杀软查杀了业界已经拦截到了的病毒木马,即使其宣称“我没拦截到,我就是把它当成未知杀掉的”这种说法或者宣传手段,是不靠谱的。

假如是情况二,一个病毒新生于互联网,第一个自动拦截的杀软,是不是就可以被称为“可以查杀未知病毒”了呢?很明显,也不可以!因为我现在就可以随便制作一个病毒,但那个病毒的特征码可能已经被杀毒软件捕获了,或者加壳方式已经被记录,或者说发作方式已经被记录,很多病毒作者写一个新病毒出来,很多杀软都可以直接杀掉,甚至是报具体的病毒名称。这种状况,可以这么形容:新病毒,旧特征。就好像说盗号一样,这世界上无数病毒作者写过键盘记录机,但是键盘记录机的作用方式早已被各杀软公司所了解掌握了,其编码中关键的运行键盘记录的代码早就已经被加入了病毒库,所以病毒作者完全可以依葫芦画瓢去写一个键盘记录机,它的MD5肯定是新生于这个世界的,但是键盘记录机这个东西,即使其中很多代码不一样,但关键的运行方式早已被记录了,所以不能被称为未知病毒。

现在肯定有童鞋有疑问了:这个世界上确实有一些新生的,使用新的编码方式写出来的病毒,特征码根本和以前所有的都不一样,自家的主防和高启发就拦截了!

我在这里就要说到“查杀依据”的问题了

很多童鞋认为:Nod32不升级病毒库,甚至去掉病毒库,也能仅凭引擎查杀病毒,称之为高启发;Comodo是世界著名的HIPS主防软件,也是根本无需病毒库就可以拦截病毒的。

在此我要说:其实高启发和HIPS都不是无源之水,都是有其查杀依据的。Nod32的高启发是动态启发,也就是虚拟机启发技术,原理是将一个病毒在虚拟机中运行,检测其行为,判定其威胁;小红伞、AVAST的启发为静态启发,根据已有的病毒特征,进行细化分类,使用更短的特征代码,来检测更广阔的病毒族。Comodo的HIPS则更加纯粹,完全是根据实机运行的样本动作进行拦截的。

在这里我要说,我们所说的匹配技术并不是仅仅指病毒库,而是特征库这个特征库并不同于我们狭义上的病毒库,而是分为静态特征和动态特征。假如要判定一个人是罪犯,那么他的长相、穿着可以被归类为静态特征;他的习惯、动作、表情可以被归类为动态特征。假设病毒是罪犯,杀软是警察,其实无论是高启发还是HIPS,它们虽然没有匹配病毒库,也就相当于它虽然没有通缉令,但对于罪犯的部分微小特征其实是有匹配的,例如一颗痣,一根手指去抓罪犯,当然也可能把普通人抓了,这就是误报;comodo就是根据行为特征,例如他虽然不知道谁是罪犯,但他只要看到有人偷钱包、有人抢劫,它就立刻定位这个人为罪犯。

从以上简短的解答可以看出,其实对于高启发也好,主防也好,对于病毒和木马的行径都是有查杀依据的,绝对不是查杀的未知罪犯。因为小偷、抢劫犯这样的罪犯定义是早就存在了的。对高启发而言,它虽然不知道确切的罪犯是谁,但他知道,偷钱包的小偷,眼神总是瞄着别人的口袋;抢劫犯,身上可能携带了刀具等凶器;然后它看到人群里有人鬼鬼祟祟的,眼神总是瞟着别人的钱包的人,他就去把他抓获。而comodo呢?它看到有人把钱包从别人的口袋里掏出来,或者有人用刀指着另一个人,它就立刻匹配这个人是小偷或抢劫犯。

其实,这样一说,nod32和comodo都不是凭空抓了一个未知罪犯,它们抓到的都是确切的小偷或者抢劫犯,区别仅仅是罪犯的名字不一样而已,可能张三当过小偷,李四也当小偷,假如说传统特征码靠黑名单抓的张三、李四的话,高启发和主防抓的不是特定的张三、李四,而是抓的具备小偷特征和行为的人。但这绝不能说高启发和主防抓的是未知罪犯,而恰恰是匹配了小偷、强盗这样查杀依据的,即使一个是匹配的长相,一个是匹配的行为,但他们也是查杀的具体的小偷和强盗,而不是未知罪犯。

说到底,总结起来就是很简单的道理。现有的高启发也好,HIPS也好,他们虽然可能在报毒的时候报的是未知病毒,但实际上后台所查杀的依据,一定是基于已知病毒和木马的特征的---静态特征和行为特征。我们可以想象,其实病毒、木马在操作系统上的运行模式都是以前被拦截过的,例如著名的鬼影病毒,很多黑名单杀软并不能查杀,启发式也没杀到,但是例如微点、comodo一类的杀软也拦截到了,那么鬼影是不是未知病毒呢?显然不是,因为这些主防杀软是根据其修改MBR的行为判断其高危的,而修改MBR的病毒很久以前就出现过了。即使以前没有出现过,但修改MBR这个动作如果被深入分析的话,也可以判断极少有正常软件有这个动作,也可以列为病毒行为。那么届时即使查杀了鬼影病毒,报出未知病毒的名字,但实际上对于修改MBR的这种病毒,是已经有过定义了的。当然,更多的病毒有很明显的特征,例如复制自身,感染文件,替换正常文件,修改图标等,例如熊猫烧香,之前没有过这个病毒,但一些杀软确实直接拦截了,就是根据其行为特征,归类为危险动作而拦截的。不能说他们没有报熊猫烧香这个名字,就说查杀的是未知病毒,其实这个病毒的行为是已经被记录过了的。就好像一个人从没杀过人,公安局也没有他的记录,但他一杀人,肯定也有警察会直接抓他的,因为他的行为匹配了“杀人犯”这个大类别。

这里不得不提一下360的QVM,号称既不是HIPS,也不是普通的启发,也不是虚拟机,那难道真的是所谓的“人工智能”么?显然这是扯蛋。360的QVM简单来说是“基于统计学”的查杀引擎。其实计算机的人工智能展现确实是基于统计学的,就是分析海量的样本特征及行为,将广阔的样本进行分类统计,由图标、引录表、代码节、调用函数值进行分类汇总,并划出相应权限,多个行为汇总以后,打出分数。例如某一样本使用了90%的病毒使用的图标,包含80%病毒的代码,调用了80%病毒调用的函数,那么QVM就将其划分为病毒。这样一来,传统的加花、加壳、变形等手段免杀QVM就会变得非常困难,因为病毒必须做到需要做到的一件事,这件事必须是要满足某一条件才能做到的,QVM如果记录了所有要做到这一病毒行为所具备的条件,那么除非作者改变目的,不触及到这些条件,否则就不可能绕过QVM的统计。现在已有的免杀QVM的手段,其实是通过破坏QVM对于该样本的鉴定入口,来终止整个鉴定流程,这样的免杀,有一定的风险让样本本身失效。这就和某些病毒免杀金山云的办法类似,不是去针对启发、主防去进行修改,而是改变自身的大小去避免被云上传,有异曲同工之妙。

话扯回来,既然QVM是基于海量的病毒样本的统计,那么也就等于是一个已知病毒库,假如出现了一个真正的未知病毒,不匹配这个庞大的统计库里面的任何条件,QVM还能查杀么?显然是不可能的。所有基于已知的特征,不管是哪方面的,来匹配一个新生的病毒,那么这个新生病毒对于引擎来说就不可能是未知的。

所以综上所述,对于狭义的“未知病毒”,也就仅仅是MD5不同,由一个新的病毒作者写的一款病毒,其实对于杀毒软件来说根本不是所谓的未知病毒。而对于广义的未知病毒,也就是全新的代码组成,全新的入侵形式,全新的构架,甚至连运行的平台都不同于以往,那我想确确实实,任何一款杀软也不可能查杀这样的未知病毒。

评分

参与人数 6人气 +6 收起 理由
知微 + 1
zmzcy + 1 版区有你更精彩: )
liqing0305 + 1 感谢解答: )
菜鸟. + 1
zby_1991 + 1 学习,求继续~~

查看全部评分

明镜星空
发表于 2011-7-27 22:52:26 | 显示全部楼层
来支持
我总感觉我写着写着就没恒心写下去了……
蓝芯云安全
 楼主| 发表于 2011-7-28 00:04:30 | 显示全部楼层
妈呀,我就写了系列一就这么多字了!
lzh920808
发表于 2011-7-28 00:06:30 | 显示全部楼层
终于没权限了刚才没看到
wanglei7865
发表于 2011-7-28 00:09:11 | 显示全部楼层
前来学习了
hzqedison
发表于 2011-7-28 00:17:58 | 显示全部楼层
来支持
fujet
发表于 2011-7-28 00:18:43 | 显示全部楼层
学习了
sugerkevin
发表于 2011-7-28 00:19:52 | 显示全部楼层
学习了,感觉说的很有道理
朵朵飘落
发表于 2011-7-28 00:21:07 | 显示全部楼层
支持一个
雨宫优子
发表于 2011-7-28 00:21:35 | 显示全部楼层
呼。。。。好多。。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-7-4 12:04 , Processed in 0.129934 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表