荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Mill (我会忘记), 信区: Virus
标  题: 怎样发现病毒
发信站: BBS 荔园晨风站 (Sun Oct 25 15:49:51 1998), 站内信件

发信人: zzz (earthquake), 信区: Virus
标  题: 怎样发现病毒(一)
发信站: 龙门客栈 (Thu Aug 14 14:13:41 1997), 转信

     计算机病毒要进行传染,必然会留下痕迹。检测计算机病毒,
就是要到病毒寄生场所去检查,发现异常情况,并进而验明“正身”
,确证计算机病毒的存在。病毒静态时存储于磁盘中,激活时驻留
在内存中。因此对计算机病毒的检测分为对内存的检测和对磁盘
的检测。
    一般对磁盘进行病毒检测时, 要求内存中不带病毒。因为某
些计算机病毒会向检测者报告假情况。例如4096病毒在内存中时,
查看被它感染的文件长度时,不会发现该文件的长度已发生变化,
而当在内存中没有病毒时, 才会发现文件长度已经增长了4096字
节。DIR 2病毒在内存中时,用DEBUG程序查看被感染文件时,根本
看不到DIR 2病毒的代码,很多检测程序因此而漏过了被其感染的
文件。又如引导区型的巴基斯坦智囊病毒,当它活跃在内存中时,
检查引导区时看不到病毒程序而只看到正常的引导扇区。 因此,
只有在要求确认某种病毒的类型和对其进行分析、研究时, 才在
内存中带毒的情况下作检测工作。
    从原始的、未受病毒感染的DOS系统软盘启动,可以保证内存
中不带病毒。启动必须是上电启动而不能是按PC机键盘上的Alt+
Ctrl+Del三个键的那种热启动,因为某些病毒通过截取键盘中断,
会将自己仍然驻留在内存中。从这里可见保留好一份贴好写保护
签的、未被病毒感染的DOS系统软盘是多么重要!
    要注意的是, 若要检测硬盘中的病毒,则启动系统软盘的DOS
版本应该等于或高于硬盘内DOS系统的版本号。 若硬盘上使用了
磁盘管理软件DM或ADM, 磁盘压缩存储管理软件Stacker, Double
space等,启动系统软盘上应把这些软件的驱动程序包括在软盘上,
并把它们列入CONFIG. SYS文件中。否则用系统软盘引导启动后,
将不能访问硬盘上的所有分区,使躲藏在其中的病毒逃过检查。
    检测磁盘中的病毒可分成检测引导区型病毒和检测文件型病
毒。这两种检测从原理上讲是一样的, 但由于各自的存储方式不
同,检测方法是有差别的。
    检测的原理主要是基于下列四种方法。比较被检测对象与原
始备份的比较法;利用病毒特征代码串的搜索法;病毒体内特定位
置的特征字识别法以及运用反汇编技术分析被检测对象, 确证是
否为病毒的分析法。下面详细讨论各自的原理及其优缺点。
    一、比较法
    比较法是用原始备份与被检测的引导扇区或被检测的文件进
行比较。比较时可以靠打印的代码清单 (比如DEBUG的D命令输出
格式) 进行比较,或用程序来进行比较(如DOS的DISKCOMP、COM P
或PCTOOLS等其它软件) 。这种比较法不需要专用的查病毒程序,
只要用常规DOS软件和PCTOO LS等工具软件就可以进行。 而且用
这种比较法还可以发现那些尚不能被现有的查病毒程序发现的计
算机病毒。因为病毒传播得很快,新病毒层出不穷,由于目前还没
有做出通用的能查出一切病毒,或通过代码分析,可以判定某个程
序中是否含有病毒的查毒程序, 发现新病毒就只有靠比较法和分
析法,有时必须结合这两者来一同工作。
    使用比较法能发现异常,如文件的长度有变化,或虽然文件长
度未发生变化, 但文件内的程序代码发生了变化。对硬盘主引导
区或对DOS的引导扇区做检查,比较法能发现其中的程序代码是否
发生了变化。由于要进行比较,保留好原始备份是非常重要的,制
作备份时必须在无计算机病毒的环境里进行, 制作好的备份必须
妥善保管,写好标签,贴写好保护签。
    比较法的好处是简单、方便, 不需专用软件。缺点是无法确
认病毒的种类名称。另外, 造成被检测程序与原始备份之间差别
的原因尚需进一步验证,以查明是由于计算机病毒造成的,或是由
于DOS数据被偶然原因,如突然停电、程序失控、恶意程序等破坏
的。这些要用到以后讲的分析法,查看变化部分代码的性质,以此
来确证是否存在病毒。另外,当找不到原始备份时,用比较法就不
能马上得到结论。从这里可以看到制作和保留原始主引导扇区和
其它数据备份的重要性。
    二、搜索法
    搜索法是用每一种病毒体含有的特定字符串对被检测的对象
进行扫描。如果在被检测对象内部发现了某一种特定字节串, 就
表明发现了该字节串所代表的病毒。国外管这种按搜索法工作的
病毒扫描软件叫SCANNER。病毒扫描软件由两部分组成:一部分是
病毒代码库,含有经过特别选定的各种计算机病毒的代码串;另一
部分是利用该代码库进行扫描的扫描程序。国内常见的病毒扫描
程序有我国公安部发行的SCAN. EXE和美国McAfee Associates的
SCAN.EXE。病毒扫描程序能识别的计算机病毒的数目完全取决于
病毒代码库内所含病毒的种类有多少。 表4 1是衡量病毒代码库
质量的指标。 显而

易见,库中病毒代码种类越多,扫描程序能认出的病毒就越多。病
毒代码串的选择是非常重要的。 短小的病毒只有一百多个字节,
病毒代码长的有上10KB字节的。如果随意从病毒体内选一段作为
代表该病毒的特征代码串,可能在不同的环境中,该特征串并不真
正具有代表性, 不能用于将该串所对应的病毒检查出来。选这种
串做为病毒代码库的特征串就是不合适的, 例如在香港病毒中含
有下列代码串:
1F 58 EA 1A AF 00 F0 9C
翻译成汇编程序就是:
POP AX
JMP F000∶AF1A
PUSHF
    其中AF 1A 00 F0四个字节是地址,即被感染PC机ROM BIOS中
断13H的入口,不同的PC机上这个地址是不一样的。当大麻病毒感
染到不同机器时, 病毒体内这段代码是不同的。若选了这段代码
就不能使病毒扫描程序对大麻病毒进行可靠的识别。另一种情况
是代码串不应含有病毒的数据区,数据区是会经常变化 的。再有
就是代码串一定要在仔细分析了程序之后才能选出最具代表特性
的,足以将该病毒区别于其它病毒和该病毒的其它变种的代码串。
选定好的特征代码串是很不容易的,是病毒扫描程序的精华所在。
一般情况下,代码串是连续的若干个字节组成的串,但是有些扫描
软件采用的是可变长串, 即在串中包含有一个到几个“模糊”字
节。扫描软件遇到这种串时, 只要除“模糊”字节之外的字串都
能完好匹配,则也能判别出病毒。McAfee Associates的SCAN.EXE
就具有这种功能。例如给定特征串: “E9 7C 00 10 ?37 CB”则
“E9 7C 00 10 27 37 CB”和“E9 7C 00 10 9C 37 CB”都能被
识别出来,又例如:
    “E9 7C 37 CB”
可以匹配“E9 7C 00 37 CB” , “E9 7C 00 11 37 CB”和“E9
7C 0 0 11 22 37 CB” 。但不匹配“E9 7C 00 11 22 33 44 37
CB”,因为7C和37之间的子串已超过4个字节。除了前面的三个选
特征串的规则外,最重要的是第四条:特征串必须能将病毒与正常
的非病毒程序区分开。 不然将非病毒程序当成病毒报告给用户,
是假警报,这种“狼来了”的假警报太多了,就会使用户放松警惕,
等真的病毒一来,破坏就严重了;再就是若将这假警报送给清病毒
程序,会将好程序给“杀死”了。
    使用特征串的扫描法被查病毒软件广泛应用着。当特征串选
择得很好时,病毒检测软件让计算机用户使用起来很方便,对病毒
了解不多的人也能用它来发现病毒。 另外, 不用专门软件,  用
PCTOOLS等软件也能用特征串扫描法去检测特定病毒。 这种扫描
法的缺点也是明显的。第一是当被扫描的文件很长时, 扫描所花
时间也越多; 第二是不容易选出合适的特征串,例如SCAN.E XE时
常会发出假警报。 第三是新病毒的特征串未加入病毒代码库时,
老版本的扫毒程序无法识别出新病毒。第四是怀有恶意的计算机
病毒制造者得到代码库后,会很容易地改变病毒体内的代码,生成
一个新的变种, 使扫描程序失去检测它的能力。第五是容易产生
误警报,只要在正常程序内带有某种病毒的特征串,即使该代码段
已不可能被执行,而只是被杀死的病毒体残余,扫描程序仍会报警。
老版本CPAV对硬盘主引导区内未被清除干净, 已失去作用的香港
病毒发出假警报就是一个例子。      第六是不易识别Mutation
Engine类病毒。不管怎样, 基于特征串的计算机病毒扫描法仍是
今天用得最为普遍的查病毒方法。

    三、计算机病毒特征字的识别法

    计算机病毒特征字的识别法是基于特征串扫描法发展起来的
一种新方法。它工作起来速度更快、误报警更少, 但扫描法所具
有的第二、三、四项缺点特征字识别法也仍然存在。特征字识别
法只需从病毒体内抽取很少几个关键的特征字, 组成特征字库。
由于需要处理的字节很少,而又不必进行串匹配,大大加快了识别
速度, 当被处理的程序很大时表现更突出。类似于检测生物病毒
的生物活性,特征字识别法更注意计算机病毒的“程序活性”,减
少了错报的可能性。
    使用基于特征串扫描法的查病毒软件方法与使用基于特征字
识别法的查病毒软件方法是一样的。只要运行查毒程序, 就能将
已知的病毒检查出来。将这两种方法应用到实际中, 都需要不断
地对病毒库进行扩充,一捕捉到病毒,经过提取特征并加入到病毒
库, 就能使查病毒程序多检查出一种新病毒来。使用检查病毒程
序的人不需要关于病毒太多的知识, 但病毒代码库的维护更新人
员,即反病毒技术人员需要具备相当多的关于病毒和DOS以及PC机
的知识。提取病毒特征串或特征字时,需要足够的有关知识,要用
到检测计算机病毒的第四种技术——分析法。

      四、分析法

    一般使用分析法的人不是普通用户, 而是反病毒技术人员。
使用分析法的目的在于:
    (1)确认被观察的磁盘引导区和程序中是否含有病毒;
    (2)确认病毒的类型和种类,判定其是否是一种新病毒;
    (3)搞清楚病毒体的大致结构,提取特征识别用的字节串或特
征字,用于增添到病毒代码库供病毒扫描和识别程序用;
    (4)详细分析病毒代码,为制定相应的反病毒措施制定方案。
上述四个目的按顺序排列起来, 正好大致是使用分析法的工作顺
序。 使用分析法要求具有比较全面的有关PC机、DOS结构和功能
调用以及关于病毒方面的各种知识, 这是与检测病毒的前三种方
法不一样的地方。
    要使用分析法检测病毒,其条件除了要具有相关的知识外,还
需要DEBUG、PROVIEW等分析用工具程序和专用的试验用计算机。
因为即使是很熟练的反病毒技术人员,使用性能完善的分析软件,
也不能保证在短时间内将病毒代码完全分析清楚。而病毒有可能
在被分析阶段继续传染甚至发作, 把软盘硬盘内的数据完全毁坏
掉,这就要求分析工作必须在专门设立的试验用PC机上进行,不怕
其中的数据被破坏。在不具备条件的情况下, 不要轻易开始分析
工作,很多计算机病毒采用了自加密、抗跟踪等技术,使得分析病
毒的工作经常是冗长和枯燥的。特别是某些文件型病毒的代码可
达10KB以上,与系统的牵扯层次很深,使详细的剖析工作十分复杂。
    病毒检测的分析法是反病毒工作中不可或缺的重要技术, 任
何一个性能优良的反病毒系统的研制和开发都离不开专门人员对
各种病毒的详尽而认真的分析。
    分析的步骤分为动态的和静态的分析两种。静态分析是指利
用DEBUG等反汇编程序将病毒代码打印成反汇编后的程序清单进
行分析, 看病毒分成哪些模块,使用了哪些系统调用,采用了哪些
技巧, 如何将病毒感染文件的过程翻转为清除病毒、修复文件的
过程, 哪些代码可被用做特征码以及如何防御这种病毒。分析人
员具有的素质越高, 分析过程越快、理解越深。动态分析则是指
利用DEBUG等程序调试工具在内存带毒的情况下,对病毒做动态跟
踪,观察病毒的具体工作过程,以进一步在静态分析的基础上理解
病毒工作的原理。在病毒编码比较简单的情况下, 动态分析不是
必须的。但当病毒采用了较多的技术手段时, 必须使用动、静相
结合的分析方法才能完成整个分析过程。例如Flip病毒采用随机
加密,利用对病毒解密程序的动态分析才能完成解密工作,从而进
行下一步的静态分析。
    作为利用分析法检测病毒的实例, 这里给出检测内存中是否
含有1575病毒的DEBUG用法和静态检测小球病毒是否存在于磁盘
的方法。详细讨论动态分析的方法和技巧已超出本书内容的范围,
不再详述了。

    从上面的讨论可以看出:

    (1) 利用原始备份和被检测程序相比较的方法适合于不需专
用软件,可以发现异常情况的场合,是一种简单的基本的病毒检测
方法;
    (2) 扫描特征串和识别特性字的方法适用于制作成查病毒软
件的方式供广大PC机用户使用,方便而又迅速,但对新出现的病毒
会出现漏检的情况,需要与分析和比较法相结合。
    下一小节将着重介绍使用扫描法的几个病毒检测和清除软件。
    分析病毒的方法主要是由专业人员识别病毒, 研制反病毒系
统时使用,要求较多的专业知识,是反病毒研究不可缺少的方法。

--
m;36m※ 来源:.龙门客栈 bbs.newsnet.net.cn.[FROM: 202.96.179.69]m
--
m;36m※ 转寄:.龙门客栈 bbs.szonline.net.[FROM: 202.96.191.124]m

--
                         ┏━━━━━━━━━━━━━┯┓
                         ┃ 弃我去者,昨日之日不可留, ╚┫
                         ┃ 乱我心者,今日之日多烦忧.   ┃
                         ┗━━━━━━━━━━━━━━┛
 取下天上的月亮后,我拿给你
 Email: s7110109@szu.edu.cn  Macrobird

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.167]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店