宏病毒的预防与清除
2013-03-05咸爱勇
咸爱勇
摘要:现代办公人们离不开计算机,但是,它也带来了许多的不便与麻烦,宏病毒就是这些麻烦中的一个体现。由于人们防毒意识不强,对新技术不了解,就给宏病毒的传播和爆发带来了有利的条件,通过U盘、邮件等方式来回拷贝文件,使病毒文件从一台计算机传播到另一台计算机,严重危害了办公环境。为此,该文以最常见的宏病毒为例,从以下几个方面进行阐述:第一章,着重介绍了宏病毒的由来及计算机病毒与生物病毒的异同;第二章,介绍了目前单位内部发现的带病毒文件及发作的症状;第三章,给出清除这些宏病毒的解决方案;第四章,进行总结,给出了一些防治的措施。
关键词:VBA ;EXCEL;宏病毒
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)36-8650-03
1 宏病毒简介
在20世纪90年代,微软为了解决office产品的自动化问题,设计了一种新型的语言Visual Basic for Application,这种语言是可以让office产品的word、excel等软件共享使用的通用性语言,是Visual Basic的一种子集语言。一系列的可以执行的VBA语句,我们称为宏。
宏的功能很强大,可以使重复的任务自动化、自定义工具栏、操作复杂的数据等大大提高工作的效率,同时还可以把office产品中的软件当作开发和运行的平台,对计算机进行一系列的操作控制。宏的使用很简单,对于不会编写代码的人也可以使用。以Excel为例(未特殊说明,以下的例子都以excel2003来讲解),我们可以很方便的录制一个宏。由于宏具有功能强大和简单易用的特点,所以,它就很容易被人们使用,来完成一些特定的工作任务,同样的,它也就更容易被别有用心的人编写成为恶意代码,我们把这些恶意代码称为宏病毒。
在文献[1]中,计算机病毒被明确定义为编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。根据计算机病毒的定义,可以知道计算机病毒不是天然形成的,而是人为编写的逻辑严谨的代码。虽然偶然的程序错误,也会在计算机的磁盘和内存中产生乱码和指令,但是,它们都是无序的,从概率上分析,是不可能组成可以运行的程序片段。而生物病毒是天然形成的,这也是计算机病毒与生物病毒最大的不同。表1列出了计算机病毒和生物病毒的异同。
宏病毒是计算机病毒的一种,它具有计算机病毒的一些特征,但是它与别的计算机病毒不同的是,不会感染系统文件或者exe文件,只感染office文档文件。宏病毒以VBA语言方式直接混杂在文档文件中,具有很强的隐蔽性,以让人信赖的文档文件加以传播,从外表看来,这个文件是安全的,当运行的时候,才知道它是有危害的。
2 发现的宏病毒
目前,单位办公主要着重依靠于office软件,其中的word和excel这两个更是重中之重,可以算是每天开机必用软件。如果其中一个或者多个出现问题,那么,就会大大的影响了办公的效率。悲观的是,单位中常常见到excel的宏病毒,给办公带来了极大的不便,还好word文档的宏病毒还没有发现。在大量的excel中,有很多表格中夹杂着宏病毒或者病毒的残留。最常见的就是poppy宏病毒,对于此类宏病毒危害性还算小,如果中了此病毒,目前的症状只是造成了office大量的文档都中毒且打不开文档,造成office产品崩溃,不会感染windows系统文件。由于病毒已经发作,而且,病毒的源文件藏在excel表格中,所以即使是重新安装office产品或者重新安装windows也无济于事,根源在于病毒的源文件并没有消除,只要再次打开带有宏病毒的excel文档,依然会发生中毒现象。
通过查找相关的资料,XLSTART目录是Excel的专用启动目录(就像Windows XP的启动程序组一样),Excel每次启动时都会检查该目录,如果有文件就自动执行(或打开)该目录中的所有文件,否则就直接启动并创建一个新的工作簿供用户使用。XLSTART目录中保存的既可以是Excel宏文件,又可以是模板文件或具体的工作簿文件,甚至还可以是相关文件的快捷方式,Excel将根据文件类型的不同分别加以处理。也就是说,如果中了poppy宏病毒,那么它会在此目录中建立文件,无论你打开的Excel文档有没有病毒,都会自动的执行带有病毒的文件,然后通过宏使其打开的这个Excel带上病毒,最终通过一些途径传播到其它的计算机上。
3 宏病毒的解决方案
一个程序的运行,需要有相应的可执行环境。病毒也是程序,它同样需要运行环境。对于宏病毒的运行环境就是office的机器。因为office2003产品中宏是默认开启的,所以,就很容易给宏病毒的运行创造了条件。把宏设为禁止,就可以很好的阻止了宏病毒,但是我们往往是在安装完后不会更改其设置的。这种方法也不能够把病毒清除,只是缺少了环境,进入了潜伏中。假使开启了宏或者将此文件拷贝到另一台计算机中,此时,宏病毒就可能发作,对文件造成了破坏。
了解了宏病毒的某些特征,那么就可以采取相应的措施来解决此类问题。为了能够从根本上清除宏病毒,该文提供了以下两种方法:
3.1 手工清除
1)先从XLSTART目录出发,如果自己本身没有对excel进行设置自启动的表格的话,这个目录本身应该是个空的目录,所以,应该把目录中的文件进行删除。
2)创建一个新的excel文档,并打开这个文档,依次点击:工具-宏-安全性,把宏安全设置为中。因为在office2003中的excel中,宏默认是高,我们要在下一个步骤打开带有病毒的文件,如果安全等级过高,带有病毒的文件会保护自己使其打不开excel文件,所以降低下安全性(如果电脑已经中了宏病毒,宏安全默认为低)。
3)打开带有宏病毒的文件,在打开过程中会询问“禁用宏”和“启用宏”,此时应该选择禁用。查看这个excel中有没有隐藏的表格。依次点击:格式-工作表-取消隐藏,来查看,不过一般带有病毒的excel文件,通过这个也不会显示,必须通过一段VBA代码才可以显示。依次点击:工具-宏-Visual Basic编辑器,在工程栏中检查每个表格中是不是有代码(如图1所示,红色圈起来的都应该删除),如果有,这些代码就是宏病毒的源程序,那就删除,就破坏了宏病毒的主程序了。
3.2 杀毒软件
上述的手工清除步骤比较繁琐,对于少量的文件还可以处理,如果大量的文件都有病毒,那么工作量是相当的庞大。除了手动清理外,还可以用网上的杀毒软件来查杀,推荐使用金山毒霸的宏查杀。曾经测试了包括360杀毒、瑞星等杀毒软件,对于宏病毒一般发现不了。有的文件发现了清理后会留下后遗症,可以结合第4步来完成文件的修复。
4 总结和建议
为了防止宏病毒的再次感染和发作,营造安全的办公环境,我们就要采取一些预防的措施。为此,给出了如下的建议:
1)安装office2003完成后,把宏的安全等级调高,改为“非常高”的状态。。
2)如果要用到excel自启动的目录,那么就自己设置一个新的目录。依次点击:工具-选项-常规-替补启动目录。这样我们就设置了替补启动目录,在每次启动时,它和xlstart目录下的文件能够同时启动。这样设置的好处是知道自己需要的文件都在替补目录中,外来的在xlstart中,很容易知道哪些文件是有问题的。
3)计算机中安装杀毒软件,并定期更新病毒库。对于新的文档一定要先用杀毒软件查杀其是否安全,待查杀完后,再打开。
4)使用高版本的office,如office2007或者office2010。使用高版本的对计算机的性能要求也高。
参考文献:
[1] 中华人民共和国计算机信息系统安全保护条例[Z].
[2] Walkenbach J. Excel2003高级VBA编程宝典[M].盖江南,王勇,等,译.北京:电子工业出版社,2005.
[3] 谭浩强. Visual Basic程序设计[M].北京:清华大学出版社,2004.