Virus 版 (精华区)

作  家: zhili (北侠) on board 'virus'
题  目: 关于启发扫描的反病毒技术32/5)(转寄)
来  源: 哈尔滨紫丁香站
日  期: Sun May 25 09:52:43 1997
出  处: bbs@conger.neu.edu.cn

发信人: bluesea (蓝海), 信区: Virus
标  题: 关于启发扫描的反病毒技术(3/5)
发信站: BBS 水木清华站 (Sat May 24 20:10:54 1997)

关于启发扫描的反病毒技术(3/5)

关于虚警(谎报)
────────

    正如任何其他的通用检测技术一样,启发式扫描技术有时也会把一个本
无病毒的程序指证为染毒程序,这就是所谓的查毒程序虚警或谎报现象。原
因很简单。被检测程序中含有病毒所使用或含有的可疑功能。例如,QEMM所
提供的一个LOADHI.COM程序就会含有以下可疑功能调用。

A= 可疑的内存分配操作。程序使用可疑的方式进行内存申请和分配操作。
N= 错误的文件扩展名。扩展名预期程序结构与当前程序相矛盾。
S= 包含搜索定位可执行程序(如EXE或COM)的例程。
#= 发现解码指令例程。这在病毒和加密程序中都是经常会出现的。
E= 灵活无常的程序入口。程序被蓄意设计成可边入宿主程序的任何部痊,
    病毒极频繁使用的技
M= 内存驻留程序。该程序被设计成具有驻留内存的能力。
U= 未公开的中断/DOS功能调用。也许是程序被故意设计成具有某种隐蔽
    性,也有可能是病毒使
O= 发现用于在内存在搬移或改写程序的代码序列。
Z= EXE/COM辨认程序。病毒为了实现感染过程通常需要进行此项操作。

    LoadHi程序中确实含有以上功能调用,而这些功能调用足以触发检毒程
序的报警装置。因为LoadHi的作用就是为了分配高端内存,将驻留程序(通
常如设备驱动程序等等)装入内存,然后移入高端内存,等等……,所有这
些功能调用都可以找到一个合理的解释和确认,然而,检毒程序并不能分辨
这些功能调用的真正用意,况且这些功能调用又常常被应用在病毒程序中,
因此,可怜的检测程序只能判定Load Hi程序为“可能是病毒程序”。

虚警(谎报)的后果有多严重
─────────────

    如果某个基于上述启发式代码扫描技术的病毒检测程序在检测到某个文
件时弹出报警窗口“该程序可以格式化磁盘且驻留内存”而你自己确切地知
道当前被检测的程序是一个驻留式格式化磁盘工具软件,这算不算虚警谎报
呢?

    因为一个这样的工具软件显然应当具备格式化盘以及驻留内存的能力。
启发式代码检测程序的判断显然正确无误,这可算做虚警,但不能算做谎报
(误报)。问题在于这个报警是否是“发现病毒”,  如果报警窗口只是说
“该程序具备格式化盘和驻留功能”,好,100%正确,但它如果说“发现病
毒”,那么显然是100%的错了。关键是我们片怎样看待和理解它真正的报警
的含义。检测程序的使命在于发现和阐述程序内部代码执行的真正动机,到
底这个程序会进行哪些操作,关于这些操作是否预期或合法,尚需要用户方
面的判断。不幸的是,对于一个一的新手来说,要做出这样的判断仍然是有
困难的。

如何避免虚警和误报
─────────

    不管是虚警也好,误报或谎报也好,抛开具体的名称叫法不谈,我们决
不希望在每次扫描检测的时候我们的检测程序无缘由地狂喊“狼来了”,我
们要尽力减少和避免这种人为的紧张状况,那么如何实现呢?必须努力做好
以下几点:

1、 对于病毒行为的准确把握而给定的关于可疑功能调用集合的精确的定义。
除非满足两个以上的病毒重要特征,否则不予报警。

2、 对于常规的佥程序代码的和识别能力。某些编译器提供运行时实时解压
或解码的功能及服务例程,而这些情形往往是导致检测时误报警的原因,应
当在检测程序中加入认知和识别这些情状的功能模块,以避免再次误报。

3、 对于特定程序的识别能力。如上面涉及到的LoadHi及驻留式格式化工具
软件等等。

4、 类似“无罪假定”的功能,首先假定程序和电脑是不含病毒的。许多启
发式代码分析检毒软件具有自学习功能,能够记信那些并非病毒的文件并在
以后的检测过程中避免再报警。


如何处理虚警谎报
────────

    不管采用什么样的措施,虚警谎报现象总是要存在的。因此不可避免地
用户要在某些报警信息出现时作出自已的抉择:是真正病毒还是误报?也许
会有人说:“我怎么知道被报警的程序到底是病毒还是属于无辜误报?”大
多数人在问及这个问题的第一反应,是“谁也无法证明和判断。”事实上是
有办法作出最终判决的,但是这还要取决于应用启发式代码分析检测技术的
查病毒程序的具体解释。

    假如检测软件仅仅给出“发现可疑病毒功能调用”这样简单的警告,信
息而没有更多的辅助信息,对于用户来说几乎没有什么可资判断是否真正病
毒的实际帮助价值,换个说法,“可能是病毒”似乎永远没错,不必担负任
何责任,而用户不希望得到这样模棱两可的解释。

    相反地,如果检测软件把更为具体和实际的信息报告给用户,比如“警
告,当前被检测程序含有驻留内存和格式化软硬盘的功能”,类似的情况更
能帮助用户扩清楚到底会发生什么?该采取怎样应对措施。比如这种报警是
出现在一个字处理编辑软件中,那么用户几乎可以断定这是一个病毒。当然
如果这种报警是出现在一个驻留格式化盘工具软件上,用户大可不必紧张万
分了。这样以来,报警的可疑病毒常用功能调用都能得到合理的解释,因而
也会得到圆满正确的处理结果。

    自然地, 需要一个有经验的用户从同样的报警信息中推理出一个 “染
毒”还是“无毒”的,结论并非每一个用机者可以完全胜任的。因此,如果
把这类软件设计成有某种学习记忆的能力,在第一次扫描时由有经验的用户
逐一对有疑问的报警信息作好“是”与“非”的判断,而在以后的各次扫描
检测时,由于软件学习并记忆了第一次检测时处理结果,将不再出现同样的
烦人的提示警报。因为不论在什么情况下,偶尔请教一下某个有经验的“高
手”并不,难难堪的是每次就同样的问题去麻烦别人。

    不管怎样的缺点和不足,和其它的扫描识别技术相比起来,启发式代码
分析扫描技术几乎总能提供足够的辅助判断,信息让我们最终判定被检测的
目标对象是染毒的,亦或是干净的。启发式代码分析检测技术的实用应用效
果如何?启发式扫描技术仍然是一种正在发展和不断完善中的新技术,但已
经在大量优秀的反病毒软件中得到迅速的推广和应用。按照最保守的估计,
一个精心设计的算法支持的启发式扫描软件,在不依赖任何对病毒预先的学
习和了解的辅助,信息如特征代码,指纹字串,校验和等等的支持下,可以
毫不费力地检查出90%以上的对它来说是完全未知的新病毒。 可能会出现一
些个虚报、谎报的情况,适当加以控制,这种误报的概率可以很容易地被降
低在0.1%以下。

例如以下是TbScan(6.02)在对由Vesselin Bontchev 提供的测试用真实病毒
样本扫描处理的结果。

扫描的技术      从总数7210个样本中检出病毒的个数    检测的检出概率

传统基于手工分析和特征值        7056                97.86%
启发式代码分析                  6465                89.67%

误报率测试是必要的,但实施起来则要困难得多,因此这里没有提供。

--
扫除一切害人虫,全无敌...

m6m※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.94.2.152]m

--
※ 来源:·哈尔滨紫丁香站 bbs1.hit.edu.cn·[FROM: bbs@conger.neu.edu.c] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.317毫秒