楼主: 红心王子
收起左侧

[分享] 杀毒软件技术漫谈:启发式对战主动防御

 关闭 [复制链接]
野马
发表于 2007-6-22 13:04:17 | 显示全部楼层
偶觉得主动防御的闪光点是--智能化!

如果离开智能化,那么我的手也是主动防御!

也可以启发式,也可以行为拦截!
竹节大将军
头像被屏蔽
发表于 2007-6-30 08:15:00 | 显示全部楼层

回复 #10 baerzake 的帖子

说得好,赞一个。
hewok
发表于 2007-6-30 10:29:32 | 显示全部楼层
主动防御有时提示起来有点麻烦的,老要允许或拒绝
woai_jolin
发表于 2007-6-30 11:16:25 | 显示全部楼层
我觉得KV的主动防御还处于不成熟的状态 有待改进
而微点没得说主动防御very good 但还是有误报
卡巴的主动防御也算不错
sharkkong
头像被屏蔽
发表于 2007-7-6 13:48:39 | 显示全部楼层
安全软件的世界里没有最好的,应为矛和盾的斗争不会停止。
dsl5
发表于 2007-7-6 14:46:58 | 显示全部楼层
原帖由 随风轻荡 于 2007-6-22 01:13 发表
我是否可以这样理解:

启发式就是说:通过虚拟机判断。(这个我不清楚)
主动防御就是:根据行为判断。(这个我是知道的)

以我理解,启发式应该不等于虚拟机,启发式其实是特征码的扩充而已,大概就是把特征码组合起来得出大概行为结论,瑞星以前有个听诊器,经常告诉我哪个哪个文件跟哪个哪个病毒有55%相似,这其实就是启发,例如一个病毒要三个关键的特征点来判断,那么假如你开启发,两个它就报了,两个大概就是70%相似左右,所以启发强的很容易误杀,启发是针对改代码的变种,虚拟机是针对壳的变种!
callwo
发表于 2007-7-9 13:36:28 | 显示全部楼层
还是有点不明白?
saber123
发表于 2007-7-10 10:27:18 | 显示全部楼层
原帖由 红心王子 于 2007-6-21 13:09 发表
当前,计算机病毒主要以加壳的特洛伊木马、蠕虫为主,病毒的作者不再像以前一样仅仅是为了炫耀自己的计算机水平有多高,而是为经济利益所驱使,盗取用户私密信息、开辟系统后门等等,带来直接经济损失。


  ...

金山以前和Dr.Web合作的时候有启发
baerzake
发表于 2007-7-10 10:31:58 | 显示全部楼层
网上搜到的一篇关于启发技术的强文,大家可以看看,虚拟机技术应该是启发的一种,而不代表启发就是虚拟机.

启发式引擎的目标是自动化地区分正常程序与非正常程序,因此就要“尽一切可能”利用两者的不同点,哪怕这不同点很无赖,但是只要它是有效的,就是正确的~~

早期的启发式引擎主要是用来针对感染文件的病毒,不过这和熊猫烧香之辈有天壤之别。首先以前的文件感染病毒一般都是用汇编写的(听说熊猫烧香是用Delphi写的?)。其次,感染方法上,以前的文件感染病毒是把自己插入感染目标作为其一部分,而不像熊猫烧香那样把感染目标捆绑为自己的一部分。针对以前的文件感染病毒,启发式引擎一般采用查找重定位指令、反EPO(对抗入口点模糊)、虚拟机(对抗多态)等方法,不过谈这个未免太枯燥,大家有兴趣自己查查吧,更何况现在真正意义上的文件感染病毒少之又少。

到最近,恶意程序发生的最大变化就是,它们一般都是用高级语言(VC++、VB、Delphi...)写成的,而且一般都是独立一个文件(不再插入别人感染),以往的启发式引擎面临变革。

我这里打算稍微介绍一些概念,如果你没兴趣的话也可以跳过。
API(Application Programming Interface),微软提供给编程者的接口,给编程者提供了极大的方便。举个例子,我要写一个读硬盘文件的程序,如果我要直接操作硬盘,那么意味着我要了解硬盘的基本架构、我要了解不同的分区方式,以及FAT、FAT32、NTFS...,一个小小的程序足以把我累死,而且万一我的程序出问题了,整个硬盘数据可能就报销了。有了API以后,我只要调用ReadFile等API函数,剩余的工作就可以交给Windows做了,而Windows的代码一般可以确保其高效性和可靠性。 换句话说,探知程序调用了哪些API就可以大致了解它要干什么了。
PE(Portable Executables)的格式,这里我只介绍和启发式有关的一小部分。我们的每个EXE文件都有自己的格式,并不是从第一个字节开始就是代码。先介绍一下引入表,其中告诉系统这个EXE要调用哪些API。当系统加载EXE的时候,会根据引入表中的信息,把正确的API函数的位置填入引入表,这样EXE就能正常调用API了。除了用于存放代码的代码段,EXE文件中还有用于存放字符串等数据的数据段。对于更复杂、体积更大的数据,比如图像、运行中要释放的子文件、窗口的布局等则会作为资源存放。


现代的启发式引擎主要面对的是:木马、间谍程序、下载者、已知恶意程序的变种等。现在,启发式引擎很少去分析代码,因为这些东西一般都是由高级语言的编译器做成的,从代码风格上和正常程序没有太多区别(高级语言编译器一般以代码最优化为目标,而病毒的代码则一般以混淆分析者为目标)。即便代码风格异常,也有可能是加壳所致(壳一般是由汇编写成的)。相反的,刚才提到的引入表、数据段中的字符串、资源,成了重要的判断依据。

以下载者为例,下载者一般是一个体积小巧的程序,用来下载一个体积更大、功能更完善的木马。针对这一特点,启发式引擎可以定义如下规则:
1、本身体积很小。
2、引入表中引入了UrlDownloadToFile。这是一个下载者普遍用来下载程序的API,但在正常程序中却很罕见。
3、数据段中存在形如“http://****/***.exe”的字符串。
4、引入表中不存在CreateWindow等用于创建窗口,和用户交互的API。

而针对一些进程插入式木马,则可以定义这些规则:
1、引入表中存在CreateRemoteThread,这是进程插入木马普遍采用的API,但在正常程序中很罕见。
2、资源中存在一个DLL文件。可以认为是运行中将要释放的,并进一步检查这个DLL。如果这个DLL符合其他特征就加重可疑度。
3、引入表中不存在CreateWindow等用于创建窗口,和用户交互的API。

可以看到,这些规则都是非常经验化的,并不是说满足这些规则就一定是恶意程序,只是很有可能。实际实现起来当然没有上面说得那么简单,比如,API的调用除了静态调用外还可以动态加载。而且还要考虑误报的问题。比如,可以计算“可疑API数目/总API数目”,避免一定的误报。

关于“加壳”:在我看来,加壳倒也未必是启发式最大的障碍。因为本来就不分析代码~~加壳带来的最大影响是一些保护壳会对引入表加密。对于启发式引擎,一定要把它解密。对于多层加壳,启发式引擎可以认为两层以上的多层加壳为病毒,正常程序很少会这么做。这样的话就可以理解为什么有杀软把所有加了北斗壳的文件都认为是病毒,因为除了在中国,用北斗加壳的正常程序几乎看不到~~

关于“沙盒”:似乎已经由杀软把沙盒技术融入与杀毒软件中,KAV7的启发式引擎也用到了“Emulator”,应该跟沙盒指的是一个东西。沙盒应该算作虚拟机的一个发展,传统的虚拟机只是虚拟一个CPU。沙盒除了要虚拟一个CPU以外,还要虚拟操作系统的一些数据结构等,要尽可能和操作系统做到一样。在沙盒中,启发式引擎可以像HIPS一样分析可疑文件的动作,并给出结论。相比HIPS,这应该是更安全的做法。
然而,模拟操作系统的复杂度远胜于模拟CPU。模拟了XP,那么要不要模拟Vista?模拟了用户态,要不要模拟内核态?而内核态的复杂度就更高了...
此外,和虚拟机一样,它也可能遇到“反沙盒”的病毒。虚拟机发展之初,还不很完善,有些多态病毒(一种自我加密、变形的病毒,可以做到每一份病毒副本,特征都不一样)为了防止自己在虚拟机中执行,使用了许多反虚拟机方法,可以用一些不正确的但是在真实系统却可以执行的代码引起虚拟机错误,也可以计算执行特定代码的时间,在虚拟机中运行的时间一般和真实系统不一样。总而言之,就是比较并区分虚拟的环境和真实的环境的区别,沙盒是否会面对类似挑战,还很难说。
另外,沙盒还遇到了性能方面的挑战,不可能每个程序都放到沙盒中跑一跑,这样的话,用户体验会相当糟糕,启发式引擎应当先扫描一下这个文件,然后决定是否有必要放到沙盒中。

当然,我上面说的这些是一些真正有用的启发式技术,并不是一些打着启发式幌子的杂牌引擎,有些启发式引擎只要资源中有可执行文件就报病毒,误报是非常可怕的。不过,需要承认的是,虽然启发式引擎有很多好处,前景也很不错,但是它还是要结合快速的病毒响应速度,想要完全靠启发式还是有点不太现实。

转载于:太平洋电脑网论坛,感谢原创作者hhzdlr

[ 本帖最后由 baerzake 于 2007-7-10 10:35 编辑 ]
baerzake
发表于 2007-7-10 10:48:43 | 显示全部楼层
原帖由 野马 于 2007-6-22 09:10 发表


偶觉得大侠好像没见过真正的主动防御?!
现在主动防御的概念似乎有喧宾夺主的趋势了,搞到后来大概大家都是主动防御了,微点却不是主动防御了。

微点也是主动防御,它也是以行为监控为基础,和某些带主防的杀软或主动防御软件的原理是一样的,某些主动防御提示"XX修改注册表XX"或"XX加载驱动"等,而微点为了方便普通用户使用,一律直接报为"未知木马或病毒",只是表述不同,原理是一样的,没有人说微点不是主动防御软件,至于你说我没见过真正的主动防御是什么意思 ,是说智能HIPS(DSA,CYBERHAWK一类)还是卡巴那种主动防御?
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-15 10:02 , Processed in 0.096631 second(s), 14 queries .

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

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