资源描述
计算机病毒查杀,本章学习目标,掌握计算机病毒诊断知识掌握杀毒引擎扫描算法了解病毒诊断实验理解计算机病毒清除知识,本章内容:计算机病毒的诊断原理方法源码分析计算机病毒的清除典型病毒的查杀,1计算机病毒的诊断,内容:计算机病毒的诊断原理计算机病毒的诊断方法高速模式匹配自动诊断的源码分析,计算机病毒的诊断原理,用什么来判断?染毒后的特征常用方法:比较法校验和扫描法行为监测法行为感染试验法虚拟执行法陷阱技术先知扫描分析法等等,比较法,比较法是用原始或正常的对象与被检测的对象进行比较。手工比较法是发现新病毒的必要方法。比较法又包括:注册表比较法工具RegMon弱点:正常程序也操作注册表文件比较法通常比较文件的长度和内容两个方面工具FileMon弱点:长度和内容的变化有时是合法的病毒可以模糊这种变化,内存比较法主要针对驻留内存病毒判断驻留特征中断比较法将正常系统的中断向量与有毒系统的中断向量进行比较比较法的好处:简单比较法的缺点:无法确认病毒,依赖备份,校验和法,首先,计算正常文件内容的校验和并且将该校验和写入某个位置保存。然后,在每次使用文件前或文件使用过程中,定期地检查文件现在内容算出的校验和与原来保存的校验和是否一致,从而可以发现文件是否感染,这种方法叫校验和法,它既可发现已知病毒又可发现未知病毒。,优点:方法简单能发现未知病毒被查文件的细微变化也能发现缺点:必须预先记录正常态的校验和会误报警不能识别病毒名称程序执行附加延迟不对付隐蔽性病毒。,扫描法,扫描法是用每一种病毒体含有的特定字符串(Signature)对被检测的对象进行扫描。如果在被检测对象内部发现了某一种特定字符串,就表明发现了该字符串所代表的病毒。扫描器由两部分组成:特征串(Signature)和扫描算法(Scanner),选择代码串的规则是:代码串不应含有病毒的数据区,数据区是会经常变化的。在保持唯一性的前提下,应尽量使特征代码长度短些,以减少时间和空间开销。代码串一定要在仔细分析了程序之后才能选出最具代表性的,足以将该病毒区别于其他病毒和该病毒的其他变种的代码串。特征串必须能将病毒与正常的非病毒程序区分开。例如:给定特征串为“E97C0010?37CB”,则“E97C00102737CB”和“E97C00109C37CB”都能被识别出来.,其优点包括:(1)当特征串选择得很好时,病毒检测软件让计算机用户使用起来方便快速,对病毒了解不多的人也能用它来发现病毒。(2)不用专门软件,用编辑软件也能用特征串扫描法去检测特定病毒。(3)可识别病毒的名称。(4)误报警率低。(5)依据检测结果,可做杀毒处理。,缺点:(1)当被扫描的文件很长时,扫描所花时间也较多。(2)不容易选出合适的特征串,有时会发出假警报。(3)新病毒的特征串未加入病毒代码库时,老版本的扫毒程序无法识别出新病毒。(4)怀有恶意的计算机病毒制造者得到代码库后,会很容易地改变病毒体内的代码,生成一个新的变种,使扫描程序失去检测它的能力。(5)容易产生误警报。只要正常程序内带有某种病毒的特征串,即使该代码段已不可能被执行,而只是被杀死的病毒体残余,扫描程序仍会报警。(6)不易识别变异类病毒。(7)搜集已知病毒的特征代码,费用开销大。(8)在网络上使用效率低。,行为监测法,利用病毒的特有行为特性来监测病毒的方法称为行为监测法。常用行为:占用INT13H修改DOS系统数据区的内存总量对COM和EXE文件做写入动作写注册表自动联网请求优点:发现未知病毒缺点:难度大、误报警,感染实验法,这种方法的原理是利用了病毒的最重要的基本特征:感染特性。观察正常程序和可疑程序的表现是非不同。,1检测未知引导型病毒的感染实验法a.先用一张软盘,做一个清洁无毒的系统盘,用DEBUG程序,读该盘的BOOT扇区进入内存,计算其校验和,并记住此值。同时把正常的BOOT扇区保存到一个文件中。上述操作必须保证系统环境是清洁无毒的b.在这张实验盘上拷贝一些无毒的系统应用程序。c.启动可疑系统,将实验盘插入可疑系统,运行实验盘上的程序,重复一定次数。d.再在干净无毒机器上,检查实验盘的BOOT扇区,可与原BOOT扇区内容比较,如果实验盘BOOT扇区内容已改变,可以断定可疑系统中有引导型病毒。,2检测未知文件型病毒的感染实验法a.在干净系统中制作一张实验盘,上面存放一些应用程序,这些程序应保证无毒,应选择长度不同,类型不同的文件(既有COM型又有EXE型)。记住这些文件正常状态的长度和校验和。b.在实验盘上制作一个批处理文件,使盘中程序在循环中轮流被执行数次c.将实验盘插入可疑系统,执行批处理文件,多次执行盘中程序。d.将实验盘放人干净系统,检查盘中文件的长度和校验和,如果文件长度增加,或者校验和变化,则可断定系统中有病毒。,对于Windows中的病毒,感染实验法检测内容会更多一些,例如,当使用感染实验法检测“广外女生”木马病毒时,可以采用如下步骤:首先打开RegSnap,从file菜单选new,然后单击OK按钮,对当前干净的注册表以及系统文件做一个记录。如果木马修改了其中某项,就可以分析出来了。备份完成之后把它存为Regsnp1.rgs。在计算机上运行感染了“广外女生”病毒的文件,例如双击gdufs.exe,然后等一小会儿。如果此时发现正在运行着的“天网防火墙”或“金山毒霸”自动退出,就很可能木马已经驻留在系统中了。,重新打开RegSnap,从file菜单选new,然后单击OK按钮,把这次的snap结果存为Regsnp2.rgs。从RegSnap的file菜单选择Compare,在Firstsnapshot中选择打开Regsnp1.rgs,在Secondsnapshot中选择打开Regsnp2.rgs,并在下面的单选框中选中Showmodifiedkeynamesandkeyvalues,然后单击OK按钮。这样RegSnap就开始比较两次记录有什么区别了,当比较完成时会自动打开分析结果文件Regsnp1-Regsnp2.htm。为找出木马的驻留位置以及在注册表中的启动项,看Regsnp1-Regsnp2.htm,若显示如下信息:,Summaryinfo:Deletedkeys:0Modifiedkeys:15Newkeys:1FilelistinC:WINNTSystem32*.*Summaryinfo:Deletedfiles:0Modifiedfiles:0Newfiles:1Newfilesdiagcfg.exeSize:97792,Date/Time:2001年07月01日23:00:12Totalpositions:1,则表明两次记录中,没有删除注册表键,修改了15处注册表,新增加了一处注册表键值,在C:WINNTSystem32目录下面新增加了一个文件diagcfg.exe。这个文件非常可疑,因为在比较两次系统信息之间只运行了“广外女生”这个木马,所以有理由相信diagcfg.exe就是木马留在系统中的后门程序。这时打开任务管理器,可以发现其中有一个diagcfg.exe的进程,这就是木马的原身。但这个时候千万不要删除diagcfg.exe,否则系统就无法正常运行了。,木马一般都会在注册表中设置一些键值以便以后在系统每次重新启动时能够自动运行。从Regsnp1-Regsnp2.htm中可以看到哪些注册表项发生了变化,此时若看到:HKEY_LOCAL_MACHINESOFTWAREClassesexefileshellopencommandOldvalue:String:%1%*Newvalue:String:C:WINNTSystem32diagcfg.exe%1%*,则说明这个键值由原来的%1%*被修改成了C:WINNTSystem32DIAGCFG.EXE%1%*,这就使得以后每次运行任何可执行文件时都要先运行C:WINNTSystem32diagcfg.exe这个程序。找出木马监听的端口。使用fport可以轻松的实现这一点。在命令行中运行fport.exe,可以看到:,C:toolfportfportFPortv1.33TCP/IPProcesstoPortMapperCopyright2000byFoundstone,Inc.PidProcessPortProtoPath584tcpsvcs-7TCPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-9TCPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-13TCPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-17TCPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-19TCPC:WINNTSystem32tcpsvcs.exe836inetinfo-80TCPC:WINNTSystem32inetsrvinetinfo.exe408svchost-135TCPC:WINNTsystem32svchost.exe,836inetinfo-443TCPC:WINNTSystem32inetsrvinetinfo.exe8System-445TCP464msdtc-1025TCPC:WINNTSystem32msdtc.exe684MSTask-1026TCPC:WINNTsystem32MSTask.exe584tcpsvcs-1028TCPC:WINNTSystem32tcpsvcs.exe836inetinfo-1029TCPC:WINNTSystem32inetsrvinetinfo.exe8System-1030TCP464msdtc-3372TCPC:WINNTSystem32msdtc.exe1176DIAGCFG-6267TCPC:WINNTSystem32DIAGCFG.EXE/*注意这行!*/,836inetinfo-7075TCPC:WINNTSystem32inetsrvinetinfo.exe584tcpsvcs-7UDPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-9UDPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-13UDPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-17UDPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-19UDPC:WINNTSystem32tcpsvcs.exe584tcpsvcs-68UDPC:WINNTSystem32tcpsvcs.exe408svchost-135UDPC:WINNTsystem32svchost.exe8System-445UDP228services-1027UDPC:WINNTsystem32services.exe836inetinfo-3456UDPC:WINNTSystem32inetsrvinetinfo.exe,虚拟执行法,为了检测多态性病毒,提出了虚拟执行法。它是一种软件分析器,用软件方法来模拟和分析程序的运行。如果发现隐蔽性病毒或多态性病毒嫌疑时,启动虚拟执行模块,监视病毒的运行,待病毒自身的密码译码以后,再运用特征代码法来识别病毒的种类。,分析法,分析法的目的在于:1确认被观察的磁盘引导区和程序中是否含有2确认病毒的类型和种类,判定其是否是一种新病毒。3搞清楚病毒体的大致结构,提取特征识别用的字符串或特征字,用于增添到病毒代码库供扫描和识别程序用。4详细分析病毒代码,为制定相应的反病毒措施制定方案。,人工智能陷阱技术和宏病毒陷阱技术,人工智能陷阱是一种监测计算机行为的常驻式扫描技术。它将所有计算机病毒所产生的行为归纳起来,一旦发现内存中的程序有任何不当的行为,系统就会有所警觉,并告知使用者。这种技术的优点是执行速度快、操作简便,且可以侦测到各式计算机病毒。其缺点就是程序设计难度大,且不容易考虑周全。在这千变万化的计算机病毒世界中,人工智能陷阱扫描技术是一个具有主动保护功能的技术。宏病毒陷阱技术结合了搜索法和人工智能陷阱技术,依行为模式来侦测已知及未知的宏病毒。其中,配合OLE2技术,可将宏与文件分开,加快扫描速度,而且可以有效地将宏病毒彻底清除。,先知扫描法,先知扫描技术将专业人员用来判断程序是否存在计算机病毒代码的方法,分析归纳成专家系统和知识库,再利用软件模拟技术(SoftwareEmulation)伪执行新的计算机病毒,超前分析出新计算机病毒代码,对付未知的计算机病毒。,利用原始备份和被检测程序相比较的方法适合于不需专用软件,可以发现异常情况的场合,是一种简单的基本的病毒检测方法;扫描特征串和识别特征字的方法适用于制作成查病毒软件的方式供广大PC机用户使用,方便而又迅速,但对新出现的病毒会出现漏检的情况,需要与分析和比较法相结合;分析病毒的方法主要是由专业人员识别病毒,研制反病毒系统时使用,要求较多的专业知识,是反病毒研究不可缺少的方法。,计算机病毒的诊断方法,手工检测工具软件(Debug、UltraEdit、EditPlus、SoftICE、TRW、Ollydbg等)优点:Aver发现并分析新病毒缺点:不可能普及自动检测自动检测是指通过一些自动诊断软件来判断系统是否有毒的方法。优点:易于普及缺点:滞后性,高速模式匹配,查找的速度是评价一个查毒引擎的关键因素之一。算法种类:单模式匹配算法:KMPQSBM等多模式匹配算法:DFSA基于二叉树的算法问题描述设待处理(动态)文本为单模式匹配是从文本中查找一个模式串多模式匹配就是通过一次查找从文本中发现多个P1,P2,.,Pq,最简单的查找算法BF算法,Brute-Force算法匹配过程,单模式匹配BM算法,bad-character位移,字符a在P中出现,bad-character位移,字符a在P中不出现,计算公式,good-suffix位移,只有u的前缀v在P中重现,good-suffix位移,u的一次重现且其前一个字符与b不同,首先定义两个条件:cond1(j,s):对每个k,jkget_Inspectors(,当邮件在一个独立的窗口打开时,触发下列事件voidCOutlooksampleDlg:NewInspector(IDispatch*disp)/给该邮件一个事件newCEventSink(*this,disp);,/当邮件显示在预览窗口时voidCEventSink:SelectionChange()longcount=0;if(m_explorer!=0)Outlook:SelectionPtr,WEB恶意代码查杀方法,恶意代码经常通过修改注册表和系统配置来破坏系统的正常操作,影响用户的正常使用。被这种病毒感染后,要设法修复被修改和禁用各个注册表项。检查位置:网关客户端(魔法兔子等)修复方法是:首先新建一个文本文件,接着把扩展名改为reg;然后,把恢复脚本填入该文件中;最后,运行该文件就可以了。,网关技术,客户端技术,实时文件监控(杀毒软件)禁止功能例如,禁止3721REGEDIT5#B83FC273-3522-4CC6-92EC-75CC86678DA43721sCLSIDHKEY_LOCAL_MACHINESOFTWAREMicrosoftInternetExplorerActiveXCompatibilityB83FC273-3522-4CC6-92EC-75CC86678DA4CompatibilityFlags=dword:00000400,修复脚本,REGEDIT4/修复RUN按钮HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoRun=dword:00000000/修复关闭按钮HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoClose=dword:00000000/修复注销按钮HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoLogOff=dword:00000000,/取消隐藏盘符HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDrives=dword:00000000/取消禁止注册表HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemDisableRegistryTools=dword:00000000/取消禁止运行DOS程序HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppDisabled=dword:00000001,/取消禁止进入DOS模式HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppNoRealMode=dword:00000001/取消开机提示窗口标题HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeCaption=/取消开机提示窗口信息HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeText=,/重设IE标题HKEY_LOCAL_MACHINESoftwareMicrosoftInternetExplorerMainWindowTitle=MicrosoftInternetExplorerHKEY_CURRENT_USERSoftwareMicrosoftInternetExplorerMainWindowTitle=MicrosoftInternetExplorer/重置IE起始页HKEY_CURRENT_USERSoftwareMicrosoftInternetExplorerMainStartPage=,宏病毒查杀方法,方法1:用WordBasic语言以Word模板方式编制杀毒工具,在Word环境中杀毒。优点:杀毒准确,兼容性好缺点:适合手工,不宜商品化方法2:根据WordBFF格式,在Word环境外解剖病毒文档(模板),去掉病毒宏。缺点:第一,容易将原文档破坏;第二,很容易漏杀病毒;第三,要不断地随着Word版本升级和病毒变化而改变程序。易于商品化,杀毒和病毒入侵的原理完全相同查找感染标记-用新宏代替旧宏病毒:坏-好杀毒:好-坏以Maker病毒为例在Normal.dot的“ThisDocument”中加入以下代码:,PrivateSubDocument_Open()DimSaveDocument,DocumentInfectedAsBooleanDimadAsObjectDimstrVirusNameAsStringDimintVBComponentNoAsInteger病毒感染标记(如果要扫描自己,用&连接字符串可以避免误判自己)代码重用时,针对不同的病毒可修改以下两句ConstMarker=-thisisanother&marker!strVirusName=Marker将病毒所作的安全修改回来Options.VirusProtection=True可能存在的宏代码数目intVBComponentNo=ActiveDocument.VBProject.VBComponents.Count,Fori=1TointVBComponentNo获取当前激活文档的宏代码Setad=ActiveDocument.VBProject.VBComponents.Item(i)是否包含特征字符串DocumentInfected=ad.CodeModule.Find(Marker,1,1,10000,10000)如果包含病毒特征字符串IfDocumentInfected=TrueThenSaveDocument=ActiveDocument.Saved如果病毒为追加感染,请修改这一句。注意这里为全删除宏ad.CodeModule.DeleteLines1,ad.CodeModule.CountOfLinesActiveDocument.VBProject.VBComponents.Remove(ad)MsgBoxActiveDocument.FullName&被&strVirusName&_宏病毒感染.已去除!,vbInformation,By:Ray.DengEndIfNexti,IfDocumentInfected=True&SaveDocument=TrueThenActiveDocument.Save如果是成批消毒,建议加上这一句,自动关闭打开的文件ActiveDocument.CloseEndIfEndSub编好后存盘,然后查找所有doc和dot文件并执行打开操作。,清除W32.Spybot.Worm蠕虫病毒,Win32.Spybot.Worm是一种在线网络聊天系统机器人(BOT)的开放性源代码蠕虫病毒,由于它的开放性和管理方式都来源于这些分布的机器人,所以这些广泛的机器人病毒都有一些很微小的不同。威胁:搜集本地计算机的配置信息(包括连接的类型、CPU速度和本地驱动的信息);在本地计算机安装和删除的文件;在本地计算机执行各色各样的命令;键盘操作记录;毁掉防火墙和杀毒软件程序避免被察觉等等。,利用的漏洞:使用TCPport135的DCOMRPC弱点;微软本机安全性认证服务远程缓冲区弱点;使用UDPport1434(MSSQL2000或MSDE2000)验证弱点;使用TCPport80的WebDAV弱点;UPnP通知缓冲区弱点;使用TCPport445的工作站服务缓冲区溢位弱点。,清除方法,感染了Win32.Spybot.Worm病毒后,清除过程比较繁琐。商业杀毒软件和专杀工具都不能自接清除,而是需要手工干预。其清除步骤如下:隔离计算机清除病毒(1)关闭操作系统的“系统还原”功能。右键点击“我的电脑”属性系统还原关闭所有盘上的系统还原功能(2)更新杀毒软件(例如Symantec)为最新的病毒定义码。,(3)重新启动计算机到安全模式。(4)手工启动杀毒程序,对计算机做完全扫描。(5)记录被感染的文件名,并删除受感染的文件。(6)备份注册表。(7)检查注册表中的一下各项Run、RunOnce、RunServices、Run删除刚才记录的文件名键值(8)针对不同的操作系统,安装相应的补丁。(9)增强管理员账号的密码强度。,谢谢Q&A,
展开阅读全文