文档介绍:第12讲反病毒技术
一、反病毒技术概述
1、校验和
2、疫苗
3、扫描(模式匹配)
4、动态陷阱
5、启发式扫描
6、病毒实时监控
1、校验和
校验和:最先也是最容易想到的病毒检测方法。
检测一个文件是否被修改。既然病毒必须修改文件,校验和就能用来检测病毒。
它可能产生过多的虚警,因为并不是所有修改文件的都是病毒。
改进(例如仅校验一个程序的核心部分)使得这种方法工作得更好。
病毒作者们又发明了“偷盗病毒”的程序对付校验和程序。
把某个DOS中断服务例程(主要是文件I/O例程)改为自己的例程。当一个校验和程序检测它时,病毒通过暂时恢复原始数据来欺骗校验程序。
2、疫苗
疫苗曾一度是很流行的反病毒方法。疫苗疫苗实际上是计算机病毒的一个变形。它试图在开始执行时就得到控制,并检测宿主文件是否有任何错误,例如文件的大小。如果一个病毒试图象疫苗一样寄生在宿主文件上,那么被感染的疫苗获得控制并能检测病毒。疫苗也能通过事先保存在它里面精确信息来恢复宿主文件并截断病毒体。通过这种方式,疫苗可以自动地清除病毒。然而,与校验和方法相同,疫苗并不能对付偷盗病毒。而且,大多数用户不会希望用一个疫苗感染很多文件。
3、扫描(模式匹配)
模式匹配技术是现有反病毒工具中的最常用方法。所有的商业反病毒软件都采用了扫描。
病毒的模式(或称为签名)是一串连续的二进制代码,属于病毒的关键代码。它可以用于识别病毒,有时也可以识别病毒的变种。
由于匹配模式的地方可能不是宿主文件开始处的常数值,扫描工具需要判断病毒体的入口。一旦扫描工具知道病毒体从何处开始,它就可以使用模式匹配有效地判断不同的病毒。
扫描方法对检测变异和多形病毒没有什么作用。这些病毒体的起始点指令很难判断,因为它们是带有不同置换和指令的解密例程。一些反病毒公司声称他们正在开发通用界面子去解密加密代码,从而可以得到原始病毒体,然后再进行模式匹配。有一些扫描工具在判断某一些变异病毒时似乎有效。然而,隐藏在此方法后面的是被严守的商业秘密,很难找到文档描述它们。而且,这样的通用解密子通常会大大降低扫描工具的速度。
4、动态陷阱
陷阱工具通常驻留在内存中。它通常要求用户在计算机引导时执行陷阱工具。用户可以在DOS提示符下执行它,。为了使用户获得更高的安全性,陷阱工具应该尽早唤醒,例如在计算机的引导阶段。一旦一个陷阱工具挂接进系统,它就可以监视任何与病毒相关的可疑活动,例如非法写引导区,附加在可执行文件上。如果陷阱工具正确地实现,它应该可以在病毒攻击的瞬间保护系统。然而,已经有一些病毒专门设计来对付陷阱工具。陷阱工具的缺点主要在于DOS操作系统缺乏保护。为了不漏掉潜在的病毒,陷阱工具可能在发现可疑操作时产生虚警。
5、启发式扫描(1)
为克服传统扫描工具检测未知病毒的缺点而提出新技术。
启发式扫描通过病毒操作而不是病毒代码模式进行检测。
思路:把表示可疑操作的连续代码指定为有意义的告警。例如,二进制码“E8 00 00”是调用指令,用于调用下面描述的指令。病毒作者使用表面上无害的指令作为定位病毒自身的通用技巧,用于处理宿主文件的不同长度。正常的程序不会包含也不会执行这样的指令。由于病毒和正常指令的不同,启发式扫描可以把出现这种指令当作文件中含有病毒的信号。因此,启发式扫描工具的开发者研究病毒,识别这样的指令和它们的组合,并把它们包含在扫描器中。
5、启发式扫描(2)
问题一:如果孤立地看这些指令,那么正常程序和病毒的分界通常不是能很清晰地界定。为了减少虚警数量,启发式扫描工具经常包含一个附加的表,这个表中有一些常用软件,检测时去除这些软件以减少过多的虚警。
问题二:寻找明确指令的严格性。
例如,启发式扫描可能认出下面的序列:
MOV AH, 40 INT 21
这些指令在DOS下写中断服务例程。但是,如果把相同功能的指令伪装如下:
MOV AH,3F ADD AH,1 INT 21
那么启发式扫描将被欺骗。
6、病毒实时监控(1)
早期在各高校机房中普遍使用的硬盘写保护软件正是利用了实时监控技术。
将自身写入硬盘零磁头开始的几个扇区(由0磁头0柱面1扇最开始的64个扇区是保留的,DOS访问不到)并修改原来的主引导记录以使启动时硬盘写保护程序可以取得控制权。
引导时取得控制权的硬盘写保护程序会修改INT13H的中断向量指向自身已驻留于内存中的钩子代码以便随时拦截所有对磁盘的操作。
钩子代码主要负责由判断中断入口参数,包括功能号,磁盘目标地址等来决定该类型操作是否被允许,这样就可以实现对某一特定区域的写操作保护。
后来又有了在此基础之上进行改进的磁盘恢复卡之类产品,利用将写操作重定向至目标区域外的临时分区并保存磁盘先前状态等技术来实现允许写入并可随时恢