7.2.1单机电脑病毒的防范
与以往的平台相比,Windows系统引入了很多非常有用的特性,充分利用这些特性将能大大地增强软件的能力和便利。应该提醒的是,尽管Windows平台具备了某些抵御计算机病毒的天然特性,但还是未能摆脱计算机病毒的威胁。单机防范计算机病毒,一是要在思想重视、管理上到位;二是依靠防杀计算机病毒软件。
1.选择一个功能完善的单机版防杀计算机病毒软件
一个功能较好的单机防杀计算机病毒软件应能满足下面的要求:
(1)拥有计算机病毒检测扫描器。
检测计算机病毒有两种方式,对磁盘文件的扫描和对系统进行动态的实时监控。同时提供这两种功能是必要的,实时监控保护更不可少。
DOS平台的计算机病毒扫描器:由于系统引导过程中,Windows未能提供任何保护。因此,在Windows启动之前,有必要通过autoexec。bat或config。sys载入DOS平台的计算机病毒扫描器,对引导扇区、内存或主要的系统文件进行扫描,确保无毒后才继续系统的启动。同时,在系统由于感染计算机病毒而崩溃或在内存发现计算机病毒时,通过“干净的”系统引导软盘启动,DOS扫描器便成为主要的杀毒工具。
32位计算机病毒扫描器:供用户对本地硬盘或网络进行扫描。它是专门为Windows系统而设计的32位软件,从而支持长文件名及确保发挥最高的性能。
(2)实时监控程序:通过动态实时监控来进行防毒。一般是通过虚拟设备程序或系统设备程序(Windows下的SYS)形式,而不是传统的驻留内存方式(TSR)进行实时监控。实时监控程序在磁盘读取等动作中,实行动态的计算机病毒扫描,并对计算机病毒和一些类似计算机病毒的活动发出警告。
(3)未知计算机病毒的检测:
新的计算机病毒平均以每天4~5个的速度出现,而计算机病毒特征代码库的升级一般每月一次,这是不够的。理想的防杀计算机病毒软件除了使用特征代码来检测已知计算机病毒外,还可用如启发性分析(Heuristic Analysis)或系统完整性检验(Integrity Check)等方法来检测未知计算机病毒的存在。然而,要100%地区分正常程序和计算机病毒是不大可能的。在检测未知计算机病毒时,最后的判断工作常常要靠用户的经验。
(4)压缩文件内部检测:
从网络上下载的免费软件或共享软件大部分都是压缩文件,防杀计算机病毒软件应能检测压缩文件内部的原始文件是否带有计算机病毒。
(5)文件下载监视:
相当一部分计算机病毒的来源是在下载文件中,因此有必要对下载文件,尤其是下载可执行程序时进行动态扫描。
(6)计算机病毒清除能力:
仅仅检测计算机病毒还不够,软件还应该有很好的清除计算机病毒能力。
(7)计算机病毒特征代码库升级:
定时升级计算机病毒特征代码库非常重要。当前通过互联网进行升级已成为潮流,理想的是按一下按钮便可直接连线进行升级。
(8)重要数据备份:
对用户系统中重要的数据进行备份,以便在系统受计算机病毒攻击而崩溃时进行恢复。通常数据备份在可启动的软盘上,并包含有防杀计算机病毒软件的DOS平台计算机病毒扫描器。
(9)定时扫描设定:
对个人用户来说,这一功能并不重要,但对网络管理员来说,它可以避开高峰时间进行扫描而不影响工作。
(10)支持FAT32和NTFS等多种分区格式:Windows95OSR2以后版本中增加了FAT32分区格式的支持,从而增加了硬盘的利用率,但同时也禁止了某些低级存取方式,而传统的软件大多使用低级存取方式检测或消除计算机病毒。如果软件不支持FAT32,便很难充分发挥其功能甚至误报。对于运行Windows NT/2000的计算机来说,支持NTFS也是防杀计算机病毒软件必须支持的。
(11)关机时检查软盘:
这一功能便是利用了关机的漫长时间,再次对A盘的引导区进行检测,以防止下次引导时的计算机病毒入侵。
(12)必须注重计算机病毒检测率:
检测率是衡量防杀计算机病毒软件最重要的指标。
这里只能引用一个间接参考标准:美国ICSA(国际计算机安全协会,原名国家计算机安全协会NCSA)定期对其AVPD会员产品进行测试,要求对流行计算机病毒检测率为100%,对随机抽取的非流行计算机病毒检测率为90%以上。
2.主要的防护实施
检查BIOS设置,将引导次序改为硬盘先启动。
关闭BIOS中的软件升级支持,如果是底板上有跳线的,应该将跳线跳接到不允许更新BIOS。
用DOS平台防杀计算机病毒软件检查系统,确保没有计算机病毒存在。
安装较新的正式版本的防杀计算机病毒软件,并经常升级。
经常更新计算机病毒特征代码库。
备份系统中重要的数据和文件。
在Word中将“宏病毒防护”选项打开,并打开“提示保存Normal模板”,退出Word,然后将Normal。dot文件的属性改成只读。
在Excel和PowerPoint中将“宏病毒防护”选项打开。
若要使用Outlook/Outlook express收发电子函件,应关闭信件预览功能。
在IE或Netscape等浏览器中设置合适的互联网安全级别,防范来自ActiveX和Java Applet的恶意代码。
对外来的软盘、光盘和网上下载的软件等都应该先进行查杀计算机病毒,然后再使用。
经常备份用户数据。
启用防杀计算机病毒软件的实时监控功能。
7.2.2网络病毒与防范措施
随着计算机技术的不断发展,病毒也变得越来越复杂和高级,新一代的计算机病毒,充分利用某些常用操作系统与应用软件低防护性的弱点不断肆虐,最近几年随着互联网在全球的普及,将含病毒文件附加在邮件中的情况不断增多,使得病毒的扩散速度也急骤提高,受感染的范围越来越广,通过网络传播病毒,我们称之为网络病毒。
原先常见的计算机病毒的破坏性无非就是格式化硬盘,删除系统与用户文件、破坏数据库等等。而传播途径也无非是通过遭病毒感染的软件的互相拷贝,携带病毒的盗版光盘的使用等,如感染磁盘系统区的引导型病毒和感染可执行文件的文件型病毒,而网络病毒除了具有普通病毒的这些特性外,还具有远端窃取用户数据、远端控制对方计算机等破坏特性,比如特洛伊木马病毒和消耗网络计算机的运行资源,拖垮网络服务器的蠕虫病毒。
下面介绍几种网络病毒:
1.新型电脑病毒“我爱你”
2000年5月4日,一种叫做“我爱你”的电脑病毒开始在全球各地迅速传播。这种病毒主要是利用Microsoft Outlook电子邮件系统的漏洞进行感染与传播的,邮件的主题为“I LOVE YOU”,邮件中包含一个VBS附件。一旦在Microsoft Outlook里打开这个邮件,并运行了这个VBS附件,系统就会自动复制并利用感染者地址簿中的所有邮件地址作为目标发送病毒体。
对付这类电子邮件病毒的方法很简单,那就是对于附件里包含有可执行部分的邮件都删除掉,比如:COM、EXE、BAT、VBS等。
2.Win32/Aspam。Trojan特洛伊木马
这一病毒是通过一封伪造的声称来自微软公司的电子邮件进行传播的,邮件声称附件里带的是一个Spam过滤器而欺骗你运行邮件附带的可执行文件。一旦你运行,病毒将感染你的计算机。
邮件附带的可执行文件为Aspam。exe(文件长度为173568字节),是一个特洛伊木马。如果该文件被执行,它将显示一个消息框,如下:
Congratulations
Your mail client is now properly configured to use Microsoft Anti Spam Policy?
实际上,Aspam特洛伊木马在\Windows\System目录下增长了一个名为Amcis32.dll(文件长度为145408字节)的DLL文件。对付该病毒,也是将附件里包含有可执行部分的邮件删掉。
3.Zelu特洛伊木马通缉令
Zelu是一个伪装为Y2K bug修复工具的特洛伊木马,通过电子邮件进行传播,感染后它通过覆盖系统文件,而使系统文件内容不能恢复甚至永远丢失。Zelu特洛伊木马是以一个名为Y2K。EXE的可执行文件进入计算机系统。病毒发作后,它会游遍所有驱动器记录的文件,并用以下住处覆盖所有文件:“This file is sick!It was contaminated by the radiation liberated by the explosion of the atomic bomb”。随着受破坏的文件被覆盖,这些文件的内容将不能再恢复且永远丢失。
4.泡沫小子病毒
VBS/BubbleBoy(译做:泡沫小子)是一个通过MS Outlook广泛传播的蠕虫病毒。它可以被看做“概念试验”(proof-of-concept)蠕虫。它是第一个不需要从电子邮件打开附件就能被激活的蠕虫病毒。BubbleBoy会发送一封主题为“BubblleBoy is back!”(泡沫小子来了!)的HTML电子邮件。如果你的IE5.0的安全保护设置级别置为中、低级,则该HTML页隐含着(植入)VBS程序代码,在未提示用户的情况下就会被执行。
5.Happy99蠕虫程序
Happy99也是一种以电子邮件形式传播的网络病毒,邮件的附件里包含了一个名为Happy99.exe的程序,一不小心执行后,出现一幅放礼花的画面,此时你的机器已经被感染了。通常该程序会以邮件的附件形式传递开来,或者从一些程序组中下载而来。
这么多网络病毒在您眼前,那么一般采取哪些简便的方法防范网络病毒呢?如果对收发邮件防范网络病毒应做到:①不要开启匿名邮件附件,只打开已知附件,以及可信资源建立链接关系。②关闭自动打开附件功能。③执行*。EXE、*。HTA、*。VBS和其他可执行附件时要谨慎。④打开*。DOC、*。XLS、*。PPT文件时要小心。⑤不要在本地邮件列表中保存别名为“ALL-Company”的邮件。⑥将Internet Explorer4.x或以上版本的安全级别设定成“高级”;终止Active X和Active Scripting。⑦Outlook Express:终止打开和/或预览窗口,在对话框下面,不要选中预览窗口。⑧Netscape:终止JavaScript在菜单栏中选取编辑/参数,在对话框左边,点击高级,在对话框右边,不要启用邮件和新闻的JavaScript,停止JavaScript浏览最高安全级别。⑨其他邮件用户:终止Visual Basic Scripting或JavaScript。
事实上,通过互联网进行数据传输和交换必须遵循网络协议,如果将防病毒软件和网络协议相结合,就能更有效地控制网络病毒的传播。
7.2.3计算机病毒的预防技术
当系统可能或者已经染有病毒时,需要检测病毒。系统和文件染毒以后,需要消毒。但是,破坏性病毒一旦沾染了没有副本的程序,便无法医治,隐蔽性病毒和多态性病毒使人难以检测,在与病毒的对抗中,如果能采取有效的预防措施,就能使系统不染毒,或者染毒后能减少损失,才是上策。像对待生物病毒一样,应以预防为主,防患于未然,避免染毒以后被动地打针吃药。
说到预防计算机病毒,正如不可能研究出一种像能包治人类百病的灵丹妙药一样,研制出万能的防计算机病毒程序也是不可能的。但可针对病毒的特点,利用现有的技术,开发出新的技术,使防御病毒软件在与计算机病毒的对抗中不断得到完善,更好地发挥保护计算机的作用。
计算机病毒预防是指在病毒尚未入侵或刚刚入侵时,就拦截、阻止病毒的入侵或立即报警,目前在预防病毒工具中采用的技术主要有以下几项:
(1)将大量的消毒/杀毒软件汇集一体,检查是否存在已知病毒,如在开机时或在执行每一个可执行文件前执行扫描程序。这种工具的缺点是:对变种或未知病毒无效;系统开销大,常驻内存,每次扫描都要花费一定时间,已知病毒越多,扫描时间越长。
(2)检测一些病毒经常要改变的系统信息,如引导区、中断向量表、可用内存空间等,以确定是否存在病毒行为。其缺点是:无法准确识别正常程序与病毒程序的行为,常常报警,而频频误报警的结果是使用户失去对病毒的戒心。
(3)监测写盘操作,对引导区BR或主引导区MBR的写操作报警。若有一个程序对可执行文件进行写操作,就认为该程序可能是病毒,阻止其写操作,并报警。其缺点是:一些正常程序与病毒程序同样有写操作,因而被误报警。
(4)对计算机系统中的文件形成一个密码检验码和实现对程序完整性的验证,在程序执行前或定期对程序进行密码校验,如有不匹配现象即报警。其优点是:易于早发现病毒,对已知和未知病毒都有防止和抑制能力。
(5)智能判断型:设计病毒行为过程判定知识库,应用人工智能技术,有效区分正常程序与病毒程序行为,是否误报警取决于知识库选取的合理性。其缺点是:单一的知识库无法覆盖所有的病毒行为,如对不驻留内存的新病毒,就会漏报。
(6)智能监察型:设计病毒特征库(静态)、病毒行为知识库(动态)、受保护程序存取行为知识库(动态)等多个知识库及相应的可变推理机。通过调整推理机,能够对付新类型病毒,误报和漏报较少。这是未来预防病毒技术发展的方向。
病毒总是会想方设法地入侵电脑。虽然你可以使用反病毒之类的软件,但也绝不能忽视平时的预防工作。“御敌于国门之外”是最理想的,所以最好的方法是采用“防为先”。当系统可能或者已经染有病毒时,需要检测病毒。系统和文件染毒以后,需要消毒。但是,破坏性病毒一旦沾染了没有副本的程序,便无法医治,隐蔽性病毒和多态性病毒使人难以检测,在与病毒的对抗中,如果能采取有效的预防措施,就能使系统不染毒,或者染毒后能减少损失,这是上策。
7.2.4计算机病毒检测方法
检测磁盘中的计算机病毒,可分成检测引导型计算机病毒和检测文件型计算机病毒,这两种检测从原理上讲是一样的,但由于各自的存储方式不同,检测方法是有差别的。
1.比较法
比较法是用原始备份与被检测的引导扇区或被检测的文件进行比较。比较时可以靠打印的代码清单(比如DEBUG的D命令输出格式)进行比较,或用程序来进行比较(如DOS的DISKCOMP、FC或PCTOOLS等其他软件)。这种比较法不需要专用的查计算机病毒程序,只要用常规DOS软件和PCTOOLS等工具软件就可以进行。而且用这种比较法还可以发现那些尚不能被现有的查计算机病毒程序发现的计算机病毒。因为计算机病毒传播得很快,新的计算机病毒层出不穷,由于目前还没有做出通用的能查出一切计算机病毒,或通过代码分析,可以判定某个程序中是否含有计算机病毒的查毒程序,发现新计算机病毒就只有靠比较法和分析法,有时必须结合这两者来一同工作。
使用比较法能发现异常,如文件的长度有变化,或虽然文件长度未发生变化,但文件内的程序代码发生了变化。对硬盘主引导扇区或对DOS的引导扇区做检查,比较法能发现其中的程序代码是否发生了变化。由于要进行比较,保留好原始备份是非常重要的,制作备份时必须在无计算机病毒的环境里进行,制作好的备份必须妥善保管,写好标签,并加上写保护。
比较法的好处是简单、方便,不需专用软件。缺点是无法确认计算机病毒的种类名称。另外,造成被检测程序与原始备份之间差别的原因尚需进一步验证,以查明是由于计算机病毒造成的,或是由于DOS数据被偶然原因,如突然停电、程序失控、恶意程序等破坏的。这些要用到以后讲的分析法,查看变化部分代码的性质,以此来确证是否存在计算机病毒。另外,当找不到原始备份时,用比较法就不能马上得到结论。从这里可以看到制作和保留原始主引导扇区和其他数据备份的重要性。
2.加总比对法
根据每个程序的档案名称、大小、时间、日期及内容,加总为一个检查码,再将检查码附于程序的后面,或是将所有检查码放在同一个数据库中,再利用此加总对比系统,追踪并记录每个程序的检查码是否遭更改,以判断是否感染了计算机病毒。一个很简单的例子就是当您把车停下来之后,将里程表的数字记下来。那么下次您再开车时,只要比对一下里程表的数字,那么您就可以断定是否有人偷开了您的车子。这种技术可侦测到各式的计算机病毒,但最大的缺点就是误判断高,且无法确认是哪种计算机病毒感染的,对于隐形计算机病毒也无法侦测到。
3.搜索法
搜索法是用每一种计算机病毒体含有的特定字符串对被检测的对象进行扫描。如果在被检测对象内部发现了某一种特定字节串,就表明发现了该字节串所代表的计算机病毒。国外对这种按搜索法工作的计算机病毒扫描软件叫Virus Scanner。计算机病毒扫描软件由两部分组成:一部分是计算机病毒代码库,含有经过特别选定的各种计算机病毒的代码串;另一部分是利用该代码库进行扫描的扫描程序。目前常见的防杀计算机病毒软件对已知计算机病毒的检测大多采用这种方法。计算机病毒扫描程序能识别的计算机病毒的数目完全取决于计算机病毒代码库内所含计算机病毒的种类多少。显而易见,库中计算机病毒代码种类越多,扫描程序能认出的计算机病毒就越多。计算机病毒代码串的选择是非常重要的。短小的计算机病毒只有100多个字节,长的有上万字节的。如果随意从计算机病毒体内选一段作为代表该计算机病毒的特征代码串,可能在不同的环境中,该特征串并不真正具有代表性,不能用于将该串所对应的计算机病毒检查出来。选这种串作为计算机病毒代码库的特征串就是不合适的。
另一种情况是代码串不应含有计算机病毒的数据区,数据区是会经常变化的。代码串一定要在仔细分析了程序之后才选出最具代表特性的,足以将该计算机病毒区别于其他计算机病毒的字节串。选定好的特征代码串是很不容易的,是计算机病毒扫描程序的精华所在。一般情况下,代码串是连续的若干个字节组成的串,但是有些扫描软件采用的是可变长串,即在串中包含有一个到几个“模糊”字节。扫描软件遇到这种串时,只要除“模糊”字节之外的字串都能完好匹配,则也能判别出计算机病毒。
除了前面说的选特征串的规则外,最重要的一条是特征串必须能将计算机病毒与正常的非计算机病毒程序区分开。不然将非计算机病毒程序当成计算机病毒报告给用户,是假警报,这种“狼来了”的假警报太多了,就会使用户放松警惕,等真的计算机病毒一来,破坏就严重了;再就是若将这假警报送给杀计算机病毒程序,会将好程序给“杀死”了。
使用特征串的扫描法被查计算机病毒软件广泛应用。当特征串选择得很好时,计算机病毒检测软件让计算机用户使用起来很方便,对计算机病毒了解不多的人也能用它来发现计算机病毒。另外,不用专门软件,用PCTOOLS等软件也能用特征串扫描法去检测特定的计算机病毒。
这种扫描法的缺点也是明显的。一是当被扫描的文件很长时,扫描所花时间也越多;二是不容易选出合适的特征串;三是新的计算机病毒的特征串未加入计算机病毒代码库时,老版本的扫毒程序无法识别出新的计算机病毒;四是怀有恶意的计算机病毒制造者得到代码库后,会很容易地改变计算机病毒体内的代码,生成一个新的变种,使扫描程序失去检测它的能力;五是容易产生误报,只要在正常程序内带有某种计算机病毒的特征串,即使该代码段已不可能被执行,而只是被杀死的计算机病毒体残余,扫描程序仍会报警;六是不易识别多维变形计算机病毒。不管怎样,基于特征串的计算机病毒扫描法仍是今天用得最为普遍的查计算机病毒方法。
4.分析法
一般使用分析法的人不是普通用户,而是防杀计算机病毒技术人员。使用分析法的目的在于:
(1)确认被观察的磁盘引导扇区和程序中是否含有计算机病毒;
(2)确认计算机病毒的类型和种类,判定其是否是一种新的计算机病毒;
(3)搞清楚计算机病毒体的大致结构,提取特征识别用的字节串或特征字,用于增添到计算机病毒代码库供计算机病毒扫描和识别程序用;
(4)详细分析计算机病毒代码,为制定相应的防杀计算机病毒措施制定方案。
上述四个目的按顺序排列起来,正好是使用分析法的工作顺序。使用分析法要求具有比较全面的有关计算机、DOS、Windows、网络等的结构和功能调用以及关于计算机病毒方面的各种知识,这是与其他检测计算机病毒方法不一样的地方。
要使用分析法检测计算机病毒,其条件除了要具有相关的知识外,还需要反汇编工具、二进制文件编辑器等分析用工具程序和专用的试验计算机。因为即使是很熟练的防杀计算机病毒技术人员,使用性能完善的分析软件,也不能保证在短时间内将计算机病毒代码完全分析清楚。而计算机病毒有可能在被分析阶段继续传染甚至发作,把软盘硬盘内的数据完全毁坏掉,这就要求分析工作必须在专门设立的试验计算机上进行,不怕其中的数据被破坏。在不具备条件的情况下,不要轻易开始分析工作,很多计算机病毒采用了自加密、反跟踪等技术,使得分析计算机病毒的工作经常是冗长和枯燥的。特别是某些文件型计算机病毒的代码可达10Kb以上,与系统的牵扯层次很深,使详细的剖析工作十分复杂。
计算机病毒检测的分析法是防杀计算机病毒工作中不可缺少的重要技术,任何一个性能优良的防杀计算机病毒系统的研制和开发都离不开专门人员对各种计算机病毒的详尽而认真的分析。
分析的步骤分为静态分析和动态分析两种。静态分析是指利用反汇编工具将计算机病毒代码打印成反汇编指令程序清单后进行分析,看计算机病毒分成哪些模块,使用了哪些系统调用,采用了哪些技巧,并将计算机病毒感染文件的过程翻转为清除该计算机病毒、修复文件的过程;判断哪些代码可被用做特征码以及如何防御这种计算机病毒。分析人员具有的素质越高,分析过程越快、理解越深。动态分析则是指利用DEBUG等调试工具在内存带毒的情况下,对计算机病毒做动态跟踪,观察计算机病毒的具体工作过程,以进一步在静态分析的基础上理解计算机病毒工作的原理。在计算机病毒编码比较简单的情况下,动态分析不是必须的。但当计算机病毒采用了较多的技术手段时,必须使用动、静相结合的分析方法才能完成整个分析过程。
5.人工智能陷阱技术和宏病毒陷阱技术
人工智能陷阱是一种监测计算机行为的常驻式扫描技术。它将所有计算机病毒所产生的行为归纳起来,一旦发现内存中的程序有任何不当的行为,系统就会有所警觉,并告知使用者。这种技术的优点是执行速度快、操作简便,且可以侦测到各式计算机病毒;其缺点就是程序设计难,且不容易考虑周全。不过在这千变万化的计算机病毒世界中,人工智能陷阱扫描技术是一个至少具有主动保护功能的新技术。
宏病毒陷阱技术是结合了搜索法和人工智能陷阱技术,依行为模式来侦测已知及未知的宏病毒。其中,配合OLE2技术,可将宏与文件分开,使得扫描速度变得飞快,而且更可有效地将宏病毒彻底清除。
6.软件仿真扫描法
该技术专门用来对付多态变形计算机病毒。多态变形计算机病毒在每次传染时,都将自身以不同的随机数加密于每个感染的文件中,传统搜索法的方式根本就无法找到这种计算机病毒。软件仿真技术则是成功地仿真CPU执行,在DOS虚拟机(Virtual Machine)下伪执行计算机病毒程序,安全并确实地将其解密,使其显露本来的面目,再加以扫描。
7.先知扫描法
先知扫描技术(VICE,Virus Instruction Code Emulation)是继软件仿真后的一大技术上突破。既然软件仿真可以建立一个保护模式下的DOS虚拟机,仿真CPU动作并伪执行程序以解开多态变形计算机病毒,那么应用类似的技术也可以用来分析一般程序,检查可疑的计算机病毒代码。因此先知扫描技术将专业人员用来判断程序是否存在计算机病毒代码的方法,分析归纳成专家系统和知识库,再利用软件模拟技术(Software Emulation)伪执行新的计算机病毒,超前分析出新计算机病毒代码,对付以后的计算机病毒。