查看: 4287|回复: 32
收起左侧

[讨论] 关于杀软的启发与基因码的关系

  [复制链接]
fangweiqin
发表于 2011-2-15 14:37:52 | 显示全部楼层 |阅读模式
最近遇到一个困惑,就是关于杀软的启发扫描与基因码的关系。以下大部分内容来自互联网

按照部分人对于启发式查毒的定义是
启发式查毒技术属于主动防御的一种,是当前对付未知病毒的主要手段,从工作原理上可分为静态启发和动态启发两种。

  启发式指 “自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”, 是杀毒软件能够分析文件代码的逻辑结构是否含有恶意程序特征,或者通过在一个虚拟的安全环境中前摄性的执行代码来判断其是否有恶意行为。在业界前者被称为静态代码分析,后者被成为动态虚拟机。

  静态启发技术指的是在静止状态下通过病毒的典型指令特征识别病毒的方法,是对传统特征码扫描的一种补充。由于病毒程序与正常的应用程序在启动时有很多区别。

  通常一个应用程序在最初的指令,是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而病毒程序则通常是最初的指令是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。静态启发式就是通过简单的反编译,在不运行病毒程序的情况下,核对病毒头静态指令从而确定病毒的一种技术。

  而相比静态启发技术,动态启发技术要复杂和先进很多。动态启发式通过杀软内置的虚拟机技术,给病毒构建一个仿真的运行环境,诱使病毒在杀软的模拟缓冲区中运行,如运行过程中检测到可疑的动作,则判定为危险程序并进行拦截。这种方法更有助于识别未知病毒,对加壳病毒依然有效,但如果控制得不好,会出现较多误报的情况。

  由于诸多传统技术无法企及的强大优势,必将得到普遍的应用和迅速的发展。纯粹的启发式代码分析技术的应用(不借助任何事先的对于被测目标病毒样本的研究和了解),已能达到80%以上的病毒检出率,而其误报率极易控制在0.1%之下,这对于仅仅使用传统的基于对已知病毒的研究而抽取“特征字串”的特征扫描技术的查毒软件来说,是不可想象的。

而网上对于基因码的定义是:
所谓基因码,就是指同一病毒族群中的不同变种,多半含有相同的病毒特征。不少病毒最初是以单一品种出现,后经由其它病毒作者修改或自行演化,最后变成数十种以上的病毒变种。若以传统特征检测方式处理,病毒数据库便要为每一种病毒变种制作一份独立的特征数据;而较新的基因码检测技术,则会从各变种中找出共同之处,包括一些非连续的程序代码,以此找出同一类型病毒的普遍特征,缩小病毒数据库的体积。

有人认为
纯粹的启发式代码分析技术的应用不借助任何事先的对于被测目标病毒样本的研究和了解

也有人认为

启发式其实就是传统的特征码扫描的改进版,传统的扫描的特征码是固定死的... 而启发式是根据"父亲"和"儿子"之间的关系.,定位只能定到"儿子"..所以无论把"儿子"移动,"只要"父亲"还在,就能找到"儿子",所以我们必须找到"父亲"..针对"父亲"修改.... 这样"儿子"便可以不去管它,因为无法认出"父亲",,那"孩子"也自然不会去判断 。

那么基因究竟算不算启发?我们先回去看看关于静态启发技术的定义
静态启发技术指的是在静止状态下通过病毒的典型指令特征识别病毒的方法


这样子看的话,那么静态启发依靠的是什么?是不是有依赖基因码呢?如果不依赖的话,那么静态启发通过什么样的方法来发现识别病毒呢?如果说依靠的话,我拿eset nod32来做个例子,为什么在扫描的时候采用(扫描时开启病毒库和高启发)与(扫描时不开启病毒库只开启高启发)结果是一样的。。。如果不依靠的话,那么为什么锁库与升级病毒库扫描(同样是开启高启发,不开启病毒库)结果会差很多,而且影响很大。。

这个问题我从昨天晚上想到现在,现在有点迷糊了。。究竟启发与基因有没有关系呢?2者之间是有无依赖关系呢?还是说基因也算广义的启发???

麻烦各位大侠给个想法或者看法。。。





里奥
发表于 2011-2-15 14:45:03 | 显示全部楼层
静态启发是使用特殊敏感代码,来预判,是病毒库的一种升级
动态启发是行为预判技术,几乎没有代码查杀,可以把他归入主动防御一类
fangweiqin
 楼主| 发表于 2011-2-15 14:47:42 | 显示全部楼层
里奥 发表于 2011-2-15 14:45
静态启发是使用特殊敏感代码,来预判,是病毒库的一种升级
动态启发是行为预判技术,几乎没有代码查杀,可 ...

这个我知道。。
但是你所说的特殊敏感代码与基因是否有关系呢?

基因码检测技术,则会从各变种中找出共同之处,包括一些非连续的程序代码,以此找出同一类型病毒的普遍特征,缩小病毒数据库的体积。

如果这样子的话,那么静态启发也是有依靠基因的了?
里奥
发表于 2011-2-15 14:52:55 | 显示全部楼层
fangweiqin 发表于 2011-2-15 14:47
这个我知道。。
但是你所说的特殊敏感代码与基因是否有关系呢?

这样吧
病毒库是一段完整的病毒代码
而基因码并不完整,但包含有重要及高敏感的代码
也就是传统的特殊敏感代码
代表杀软:大蜘蛛
静态启发是在敏感码基础上增加了对系统核心的识别为的就是防止误杀系统
而基因码也被人称为是静态启发的核心内容
代表杀软:NOD32
fangweiqin
 楼主| 发表于 2011-2-15 14:58:13 | 显示全部楼层
里奥 发表于 2011-2-15 14:52
这样吧
病毒库是一段完整的病毒代码
而基因码并不完整,但包含有重要及高敏感的代码

也就是你认为静态启发需要依赖于基因了?
lovehhy
发表于 2011-2-15 15:01:13 | 显示全部楼层
现在还有病毒吗?几乎是清一色的木马和流氓软件啊。

直接写盘操作、解码指令,或搜索某路径下的可执行程序

现在还有这样的病毒吗?直接写盘是DOS下的概念,又不需要感染MBR,写盘干什么呢?
里奥
发表于 2011-2-15 15:02:21 | 显示全部楼层
fangweiqin 发表于 2011-2-15 14:58
也就是你认为静态启发需要依赖于基因了?

传统的静态启发是这样的,因为他本身就是病毒库的一种扩展
现在的虽然有些关系,但是并不完全依赖基因码
帅就是帅
发表于 2011-2-15 15:02:36 | 显示全部楼层
这个本来就没统一,个人有个人的看法,也没必要做太死的限制
个人认为,基因的载体是特征码,但过程完成了“举一反三”的“启发”,而也如你所说,非纯粹启发,基于对样本的研究。
There are a thousand Hamlets in a thousand people's eyes。
lovehhy
发表于 2011-2-15 15:07:54 | 显示全部楼层
本帖最后由 lovehhy 于 2011-2-15 15:09 编辑
帅就是帅 发表于 2011-2-15 15:02
这个本来就没统一,个人有个人的看法,也没必要做太死的限制
个人认为,基因的载体是特征码,但过程完成了 ...

NOD32就是误报先生,我有不少国外杀软的朋友。

真正新一带杀软是基于行为的统计,比如某软件的某个行为有个权值,这些权值到最后触发某些阀值,就会被判为病毒。同时再加上大规模的云,把行为做成特征码进行全球统计和计算,某些行为是常规软件所不具备的,那就是应该拦截的软件。

目前只有赛门和Returnil在做这样的产品。Returnil的多点还原就是和这个行为结合的,当行为过激触发规则后,就创建还原点,再继续让软件走下去,继续创建还原点,最后当触发最后的红线时,就回滚系统到之前的状态。
fangweiqin
 楼主| 发表于 2011-2-15 15:08:49 | 显示全部楼层
帅就是帅 发表于 2011-2-15 15:02
这个本来就没统一,个人有个人的看法,也没必要做太死的限制
个人认为,基因的载体是特征码,但过程完成了 ...

刚刚找到你回复的关于基因和启发定义的帖子。。

其实我也觉得,现在部分商家关于病毒库的定义和静态启发原理给模糊了。。
启发也需要依赖,纯粹根据规则的启发应该是没有的。。
动态启发也需要根据一定的特征来进行判断。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

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

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

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