引用: |
【baohe的贴子】所谓主动防御,就是将病毒、木马、后门等有害程序拒之门外。包括它们释放文件、插入进程、修改注册表等恶意行为——统统不能发生。
例1:后门 Backdoor.Win32.RBot.akq(可执行文件:recyclecl.exe) ........................... |
“主动防御”------被国人加了噱头的“Behavior Blocking”
很简单的说这种技术就是可疑行为的判定,阻止。这是一项很古老的技术了,不行大家可以再翻翻dos时代的反病毒资料。。反病毒卡,还有现在大家电脑bios上有的引导区病毒
检测.都是这类技术的应用。或者再夸大点现在的硬盘还原卡也是基于这类“主动防御”
技术的。。。
这类技术的好与坏不是一句就可以道明的,要不然发展这么多年好的话它们早就击败其它技术了,当然反过来说如果不好那么这么多年了它早该灭绝了,也不至于到现在还有“创新”公司把它拿来作为“技术突破”。
下面我们从纯技术的角度来看看 “主动防御”--(“Behavior Blocking System”以下简称:BBS --有点怪吧~~~)是个什么?
1.设点监控
首先为了实现BBS,我们必须在系统的n个点实现hook,保证“可疑程序”的一些系统调用被当做这个进程的行为检查触发点。
这里的行为可能是比较抽象的东西比如:改写run的注册表操作就能抽象成“疑似病毒”
建立系统启动关联动作。类似:文件操作,进程空间的内存读写等等,都能被当做疑似病毒行为------(经过对病毒的总结:认为的可能只有病毒才会做的行为。)有了这些行为
2.判定病毒
当然判定就变的简单了。主要是在对病毒“行为”的总结归纳上 如:我们可以这么说,有一个程序释放它自己(释放了一个文件,当然这个文件如果经bbs的比较是程序自己的话)到system或windows目录并建立了和系统的启动关联(该写run项)。我们就认为它是病毒(简单吧,是一个很朴素的想法,但相当有效。很多病毒确实是这么做的。)
缺点:
1.当然这样的方法就带来了不可避免的误判问题,很简单因为我们再怎么定义可疑行为都不能把病毒行为和程序行为严格的区分开来。这是每一个做程序的人都应该知道的简单道理。
简单解释下,如我们简单定义:
一:“如果有人拿枪在街上杀人那么我们就认为此人是匪徒。”
ok,这很简单,如果这样的话我们如何区分和匪徒搏斗的警察呢?从简单定义上警察是人同样拿着枪在街上杀人(杀匪徒)。
这个定义当然太不严谨,太多的人会说能这样定义吗?
ok,我们对它进行进化
二:“如果有人拿枪在街上杀人,并此人不是警察那它就是匪徒。”
这下好很多了吧,可是我们怎么判断警察的特征用以区分它们呢?穿警服,用警枪的就是吗?当然这都很不准确,靠。 警服,警枪匪徒也都能用。。。
......
看到这里可以看到,我们实际上很难用几条“定义”区分匪徒和警察,理由很简单。上下文不足及判定的困难。(偶表达的不好,实际大家细想下会有自己的答案)
有人说,人可以判定出病毒,为什么程序不能呢?这是毫无疑问的是无理性的说法。你妈能生你?程序能生你吗?按上面的理论,人可以程序就可以。--反证:现在程序不行,那你妈就不是人了??? 这完全是对电脑处理问题缺乏最基本理解。
2.BBS还有一大缺点就是必须拿用户的系统做为“实贱”平台,也就是说,病毒破坏ing
中。你判定出病毒的时候也许已经为时已晚了。(当然同常bbs这类产品都会先来个免责声明,呵呵。。要不出了问题你找它,它怎么赔呀。)
BBS的改进方案Sand-Boxing:
没错就是SB(简称),SB是一个很好的方案,它建立了一个纯虚的环境,假设这个环境
模拟的足够像真实的的话,那么它是一个很理想的解决方案(行为判定技术),这方面
国外公司一向做的比国内强。
最后,老子鄙视一切忽视技术发展的人,同时也鄙视一切拿所谓“技术”忽忧广大人民
群众的投机份子。