文链接http://bbs.deepin.org/read.php?tid=257824

(
注:该文部分内容是辩驳性文章,但可以加深对微点的了解)
1.
已知病毒和未知病毒有什么不同?
2.
质疑微点行为判断的逻辑完全讲不通,除非微点的病毒收集能力高出卡巴上百倍。
3.
为什么总要带有色眼镜歧视微点?为什么就不能一碗水端平?
4.
什么是主动,什么是被动
5.
黑箱行为规则特征更重要的是保证用户安全,而不单是为了防止竞争。
6.
简析微点杀毒原理,微点为什么可以未卜先知查杀明天的病毒?
7.
微点和HIPS的区别


1.
已知病毒和未知病毒究竟有什么不同?

以微点的这篇病毒快报为例:
http://bbs.micropoint.com.cn/showthread.asp?tid=14430

已知病毒命名:Trojan.Win32.VB.bjs
未知病毒命名:Trojan.genus(未知***
)

我想问问大家,如果不看上面那份病毒快告的具体内容,单从名字上判断,谁能去分出已知***和未知***有什么不同?


相同点在于:已知和未知都明确说明了是***程序
不同点在于:已知命名详细说明了这个***是VB编写的Win32程序,序号是bjs

VB
编写的Win32程序,序号是bjs,这两点真的很有用么?显然不是,因为我们更关心的是这个程序是不是***!

所以,其实微点报已知和报未知对于用户来讲感受是基本一样的。至于lsyer提到的“见到未知就心烦”,完全属于其个人的心理作用。因为已知命名并没有比未知命名更多出什么有用的信息,难道说微点报警“未知***.007,加上个序号看着就爽了么?

当然,我也很理解lsyer对于“未知”这个提法的反感,因为“未知”一词,在心理上确会给人一种比较茫然的感觉。但是要注意,对于“未知”提法的修改应属于建议性质,而不是反对性质。欢迎大家一起来讨论出一个更好的提法,譬如说叫“新病毒”、“新***”好不好?

2.
质疑微点行为判断的逻辑完全讲不通,除非微点的病毒收集能力高出卡巴上百倍!


lsyer质疑的,微点为了凸显行为监控,故意对已知病毒报未知病毒,乍一听好像很符合微点的商业利益,是有可能的。但是从逻辑上一分析则是完全讲不通的,就像carsbus举的例子那样。微点和卡巴在样本区的表现是有目共睹的,样本区有很多样本卡巴不报警(也就是说卡巴还没收集到),但是微点报未知。

如果按照lsyer的逻辑,微点故意对已知病毒报未知病毒,那就推论出微点居然可以收集到大量卡巴斯基还没收集到的样本。结论是微点的病毒收集能力比卡巴要强百倍!!!

说微点的病毒收集能力比卡巴要强百倍,有人会相信么?显然大家都知道这太不现实了,至少今天没有人会去相信。所以lsyer的质疑是无法成立的。

理论上讲目前只有卡巴这种病毒收集能力超强,而且还有主动防御功能的产品,才具备上述作弊的可能。但是目前主动防御并不是卡巴当前首要突出的重点,所以卡巴也没有理由去做这种事。

呵呵,不过在以后主动防御市场竞争到白热化阶段的时候,并不排除某些无良厂商会用这种作弊手法来展现产品效果。

3.
为什么总要带有色眼镜歧视微点?为什么就不能一碗水端平?

特征码扫描的时候,没有一个人去质询具体的特征拾取方案,没有一个人说某某杀软要是不公布特征码偏移量,不公布特征码方案,我就不承认你是特征码扫描~!大家只是在夸某某杀软病毒库巨大,升级速度快。

扫描引擎脱壳的时候,没有一个人会去质询具体的脱壳方案,没有一个人说某某杀软要是不公布他的脱壳算法,不公布他的虚拟机设计方案,我就不承认你是脱壳引擎~!大家只是在夸某某杀软的扫描引擎强大,拖壳能力强。

启发式扫描的时候,没有一个人会去质询具体的启发式设计方案,没有一个人说某某杀软要是不公布他的启发式算法,不公布他的虚拟机设计方案,我就不承认你是启发式引擎~!大家只是在夸某某杀软的启发式引擎功能强大。

而事情换成了微点呢,有人会去质询具体的行为分析设计方案,有人会说微点你要是不公布你的监控点,不公布你的行为分析设计方案,我就不承认你是行为分析,我就认为你是胡乱报警,我就认为你是用已知特征作弊,我就认为你用黑白名单……


启发式报警“suspicious Trojan/Worm”,就叫有名字?就叫准确报警?就叫光明正大的报?就叫真材实料?
那微点报警“Spyware.genus(未知间谍)、“Trojan.genus(未知***),和启发式的报警结果有什么不同?
难道说,报洋文就叫准确报出病毒名称,报中文就是骗子?

反正我是完全理解不了上面的现象,为什么事情到了微点这里就会完全变味儿,为什么微点就要被歧视?为什么微点就要被特殊化?为什么就不能一碗水端平?

可能是我太偏激了吧,可能是大家都非常关注微点这个新一代的安全产品,可能是微点在样本区的表现让很多人和厂商红了眼。

有人片面引用PETER的话,来为自己做例证。我想问问,为什么不去引用syst分析归纳的微点逻辑架构图呢?为什么不去引用在突破主动防御上很有研究的floxyzreg的话呢?
不要拿凡来忽悠人,不才在下也可以登录凡查阅原帖;
不要再给凡两个字抹黑了,出自凡的那篇所谓世界上只有五大杀毒引擎的文章,误导了多少人?!其实原作者早已在凡公开致歉的。随便说两个例子,除了那所谓的五大,至少NOD32瑞星是自己开发的扫描引擎。

4.
什么是主动,什么是被动?

从字面意思来讲,主动是一种积极的态度,形势由我们自己掌控,一切尽在掌握;被动是一种消极的态度,形势不由我们掌控,未来前景叵测。随便举个生活中的例子,如果我们要保护一个仓库的安全,在忽略费用问题和其他因素的情况下,安装最好的防盗门和雇最好的保安哪个安全性更高呢?答案是显而易见的,当然是保安比防盗门要安全得多,因为再好的防盗门也不过是一种被动防护,早晚要被攻破;而优秀的保安会去主动巡逻主动盘查可疑进出人员。

反病毒技术的发展,我觉得也是一个不断从被动转为主动的过程。

第一代较为成熟的反病毒软件,主要技术为特征码识别,主要形态是扫描。扫描是一个完全被动的防护过程,我只有给杀毒软件下达了扫描命令,杀毒软件才会去扫描。换个角度讲,如果我们在扫描的时候,查出了病毒,那么很遗憾,已经确认您被病毒肆虐过了,请注意即时检查各种帐号是否丢失……

有些网友认为我手工去扫描是一种主动行为啊,怎么会是被动呢?我们谈到的主动和被动是从安全防护的角度出发的,先中毒,后杀毒,所以扫描是一种被动防御。

既然扫描有这么多的缺点,那么为什么早期的大多数杀毒软件都采用扫描作为主要杀毒手段呢?我认为这和早期的病毒环境有关,早期的病毒以感染型病毒为主,一个病毒会使得全盘的可执行文件都被感染,而扫描在批量处理方面有着其他技术无法比拟的优势,所以扫描理所当然的就成为了早期最重要的杀毒手段。

随着时代的发展,病毒越来越多,用户越来越不堪病毒的烦扰,被动的扫描越来越被用户所诟病——很可能一次扫描还没有结束,几分钟前刚被扫描完的文件就又被感染了。。。

一个很理所当然的想法就出现了——如果每时每刻都在不间断的做扫描,那岂不是可以把安全系数提高很多?!实时监控就这么出现了。
PS
:具体我没有考证,据说实时监控技术是Norton首先开始应用的。

实时监控是具有划时代的意义的,每时每刻都在监控系统中当前正在被使用或即将被访问(使用)的文件,以保证磁盘中所有文件的安全。相对于被动扫描来说,实时监控就是一种主动扫描。所以,我们说安全的发展就是一个不断从被动转向主动的过程。

上面一直在提特征码,特征码究竟是什么意思?其实特征码就相当于我们生活中的通缉令,犯罪分子作案潜逃,警察侦查后公安部发布通缉令,全国各地的警察协助查找具有某些特征(性别、身材、相貌、衣着等)的人。特征码杀毒也是一样,有人先中毒了,联系反病毒公司提交病毒样本,反病毒公司分析病毒样本组织升级,全国的用户升级后检查自己的电脑是否中毒。

特征码最大的缺点就是命运交由他人,电脑的安全并不因我安装了杀毒软件就可以得到控制,而是完全受制于杀毒软件公司。可能有时候我已经感觉到电脑很不正常,QQ密码也丢失了,但无论是扫描还是实时监控都没有报告出任何问题,为什么呢?因为控制这我命运的杀毒软件公司没有能收集到样本……

虽然实时监控是一种非常好的技术理念,本意也是为了夺回电脑安全的控制权,但是由于其本质上仍然要特征码整体被动性的困扰,所以在当前病毒数量大幅度爆发,病毒日益***化的时期,实时监控日益遭受用户的白眼。在这种形势下,特征码最具优势的批量扫描逐渐失去了优势。因为***只有很少几个文件,不会做全盘感染,用扫描引擎试图在诺大的硬盘上查找几个文件,费时费力,效果还不甚理想。

但实时监控的精神是非常好的,只有实时控制才能有效保证系统的整体安全。所以下一代的安全软件,仍然会以实时监控为主要表现形势。但是监控的要点或者说根本,由病毒特征码的比对转为了病毒的行为判断了。行为判断的代表,应该是2005年微点提出的主动防御。大家还记得IT168做的评测么?对付熊猫烧香这么一个完全没有技术含量的病毒,特征码完败,主动防御完胜。
http://publish.it168.com/2007/0131/20070131002301.shtml

为什么主动防御的产品会完胜特征码?道理很简单,其实还是主动和被动的问题。特征码的被动根源在于其冗长的操作环节:要有人先中毒,联系反病毒公司提交病毒样本,反病毒公司分析病毒样本组织升级,全国的用户升级后才能检查自己的电脑是否中毒。主动防御对病毒的分析由程序自动在本地完成,省去了样本提交和后续升级的过程,计算机的运行速度是很快的,整个主动防御的过程瞬间完成,时差可以忽略不计,再次把被动变为了主动。所以主动防御的安全效果必然要强于特征码。

特征码相当于门口的保安,遇到陌生人只要通缉令上没有的一律放行。而主动防御就相当于私人保镖,实时保护在主人四周,无论大门口放进来的是强盗还是小偷,只要危害到主人利益就会挺身而出。某种程度上说,虽然主动防御形式上是更新换代的安全软件,但是其安全理念更返璞归真了,更关注安全本源的东西。

5.
黑箱行为规则更重要的是保证用户安全,而不单是为了防止竞争。


偷个懒,借用一篇文章,自己可以少打点字哈:
HIPS(
程序动作拦截器)规则割裂防护体系
http://network.ccidnet.com/art/1099/20070807/1170171_1.html

我个人认为这个文章的精神是很对的,但是讲得过于隐晦,所以很多人都无法理解HIPS把规则公开会对于整体系统安全所带来的巨大隐患,包括部分论坛的反馈也是这样:有的论坛甚至有网友说可以用md5校验来保证规则的安全性。我觉得这种回复是很典型的对HIPS对行为监控缺乏理念理解造成的。

HIPS
监控的虽是一个动作点,但是其真正意义是封锁基于这个动作(API)的整个一类(无限多种)的程序调用,结果是试图阻止整个一类(无限多种)程序的恶意方式。正是因此,HIPS虽然只监控了系统中病毒最常用的一些API,但在全拒绝状态确实可以有效保证系统的安全。不过,全拒绝状态完全没办法应用,比如说为了安装一个新软件必须先把HIPS停掉,谁都知道安装新软件恰恰是最危险的时候,在最危险的时候HIPS居然先要被手工停止,这从安全理念上讲完全是混蛋逻辑,无异于主动伸出脖子来任人宰割。

正因为全拒绝无法正常使用电脑,HIPS使用了每个程序动作(API)都做询问的机制来兼顾安全性和正常使用。但是呢,正如原作者所说“Win32 API是微软公司公开提供的应用程序接口,供广大Windows用户开发应用程序与系统进行交互操作。所以从本质上讲,API并没有好坏之分,也没有善恶之别。”HIPS报警的那些所谓的危险API,实际上很多正常程序也在使用的,所以HIPS最典型的情况就是报警频繁,并且报警的内容以无意义的虚警居多。

针对海量的虚警情况,对单一确切程序的点规则是意义不大的,除非我们有能力彻底确认一个程序的安全性,有耐心针对系统中的每一个应用程序都做若干条规则(3D防护),并且要对系统中不断安装更新的新软件不断分析确认安全性并不断地补充规则。那请问,海量的需要不断扩充维护的点规则有普遍可操作性么?答案显然是否定的。而且对于新建文件这种情况,因为新建文件本身就是未知的,所以FD防护不可能完全使用带有md5校验的点规则来完成。现实中的真实情况,就是大量点规则配合部分类规则来使用,以达到最大限度减少虚警的目的。

点规则的安全性是有保证的,HIPS的安全性隐患恰恰出在了类规则的身上。因为类规则针对的是一类动作(无限多种),既然是无限多种具体的实际应用,那么被恶意利用的可能肯定是必然存在的。比如说原文作者提到了.gho案例,我理解就是一个典型的类规则产生的安全隐患。允许生成*.gho,这种规则就是FD系统最典型的类规则,他针对的是一类(无限多个)程序调用——允许随便一个进程都可以随意生成任意内容、任意文件名、任意数量的.gho文件。不管怎么说,利用.gho规则,***就已经轻松写入到硬盘当中,至于后续如何隐蔽地激活***,则要看其他规则的具体设置了。

上面说了这么多,其实孙武子怹老人家用一句话就全概括了:正所谓“知彼知己者,百战不殆”,病毒***的作者既然可以得到网络上大范围传播的HIPS规则,他怎么可能不去主动研究利用呢?HIPS规则结构上的缺陷,对于其原本很安全的防护体系来说就是最致命的威胁。

所以说,我觉得微点采用黑箱行为规则,不是一个简单为了保护自己产品利益的行为,因为从整体结构看,黑箱行为规则对于最大限度保证用户安全是非常必要的。而且安全产品对自身核心部分采用黑箱机制是一贯的传统,比如说没有一家杀软公布他们的特征码拾取方案,没有一家杀软公布他们的虚拟机,没有一家杀软公布他们的启发式规则。保护产品是一方面,但更重要的是对安全检测技术的保密,可以有效提高病毒***的编写技术门槛,增加他们的开发难度,从而在整体上尽可能地保护用户的系统安全。

PS
:黑箱就是指不公开、保密的意思。白箱与之相对。

当然,同样作为一名信息安全技术的爱好者,我对上述的这些保密技术也是非常感兴趣的。反汇编彻底分析软件结构,难度太大,离我们太遥远。大家要注意到,我们网友间为了研究分析安全软件,出了一些很有意思的小工具,比如说针对特征码扫描的分析工具CCL特征码定位器等。我想,既然大家对微点的行为分析这么有兴趣,为什么没有人去做一个行为探测器呢?目前还没有看到类似的工具,但应该是不远了~

6.简析微点杀毒原理,微点为什么可以未卜先知查杀明天的病毒?
(略,见上文)

7.
微点和HIPS的区别
一、先看表象:
1.
定义
HIPS
:程序动作拦截器,作用就是对HIPS所监控的API拦截报警,安装用户的要求阻止或放行。作用相当于一个动态的系统分析器,告诉使用者系统当前有哪些变化。
微点:主动防御软件,主要依据程序行为判定新病毒,辅以特征码、状态检测防火墙等技术的综合性安全软件。作用相当于杀毒软件+防火墙。

2.
软件结构
HIPS
:监控
微点:监控+分析+清除

我没有要贬低HIPS的意思,但是从结构来看,微点的软件规模要远大于HIPS,复杂度要远大于HIPS,开发难度、工作量、代码数量都要远大于HIPS

延伸一个问题,不知道朋友们是否想过单就微点和HIPS重合的这一个点——“监控”来说,谁的监控更灵敏呢?换句话说也就是谁的API监控得更多呢?

答案可能出乎很多人预料,实际上微点监控的API要远多于HIPS的。
道理很简单,Windows API的数量太多了,HIPS为了提高其易用性,监控的API越少越好,所以只监控与安全相关的一些API,其余的一律放任不理。
而微点的监控则要BT很多,除了HIPS监控的那些众所周知的安全性API,微点还监控了很多和安全有可能有关的API。有谁会想到微点竟然会监控程序被改名!根据网友提供的资料,我测试了一下,微点确实监控程序被改名,在程序生成日志中也有体现。原因也很好解释,如果不监控程序改名,那么微点根据程序生成日志向上追杀***源的时候就有可能会被误导造成杀毒不彻底。微点究竟还有哪些BT的监控项,我是没能力分析,欢迎大牛们逆向一下,列个清单出来大家一同分析总结。

PS

《揭秘行为杀毒》里有较详细的介绍,遗憾的是贴图没能找到。
http://www.ixpub.net/thread-678163-1-1.html


二、分析内因
谈谈我的看法,微点和HIPS究竟有什么区别呢?我的意见是实在没有必要非分出个谁强谁弱,两个软件的设计目的完全不一样,最终表现出来的软件形态也是天壤之别。如果非要定性的话,只能说微点和HIPS是两类软件,不能简单做比较。

大家想过HIPS为什么要去监控程序API动作?因为HIPS是程序动作拦截器,它的使命就是告诉使用者系统当前有哪些变化(API调用)。然后呢?HIPS监控了API之后会去做什么?答案是然后什么也不干,因为HIPS的使命已经完成了。

大家想过微点为什么要去监控程序API动作么?
因为微点要对一系列动作进行行为分析,需要监控点提供足够的信息。
为什么微点要进行行为分析?
因为微点要判断出程序是否有害。
点判断程序有害是为了什么?
因为微点是一款综合性安全软件,它的使命是保护系统安全,杀毒杀***杀后门杀蠕虫……
微点发现程序有害之后会怎么办?
根据日志中的记录,逆向操作中止有害进程、文件、注册表……
至此,微点的使命得以实现。也就是说微点前面所有工作的努力都是为了彻底清除有害程序这最终的目的。

微点虽然比HIPS多了很多东西,但是你绝不能简单地说微点比HIPS NB多少多少,这样是不客观的,因为同类软件,不能简单地直接做对比。HIPS完成了它的设计使命,所以HIPS是称职的。微点完成了它的设计使命,所以微点也不错。

篇外:
over
,本章到此理应结束。我很欢迎朋友们来积极热烈参与讨论,在深度这种技术性讨论社区,大家应以技术、逻辑、以理服人。嘿嘿,不过从私心来讲,我对某些朋友混淆概念,搞文字游戏的把戏还是很有兴趣的,稍微掺和几句,权当调节气氛了。

以微点和HIPS都具有监控模块,而论证出微点是高级HIPS的结论,还是很站不住脚的。莫忘了除了监控和分析模块,微点还有最重要的清除模块呢。对微点来说,监控是手段,分析是方法,清除才是核心最重要的目的。完全忽略主体,而只谈某一个过程,就有点儿太矫情了……

诚然HIPS虽没有清除能力,但使用动作阻拦也可以达到一定的安全防护作用。但如果我以钳子和六轴精密数控车床都可以加工金属部件为由,非说车床==高级钳子,我想问问有人能接受么?呵呵,实际上,钳子归属五金类,而车床归属机械类,完全是两类产品,不能在一块简单作比较的。使钳子(当然不止钳子咯)的高手叫钳工,使床子的高手叫车工,高级钳工和高级车工都是优秀的高级人才,并没有高下之分。。。

答案就是这么简单。

哈哈,想起上学时的金工实习了,师傅指着车床一声“上床”~!然后我们就都想歪了。。。
车铣刨磨钳铸,数控、线切割,怀念哦……