1、计算机病毒原理与防范,任课教师:乔奎贤,E-mail:,第5章 计算机病毒检测技术,5.1 反病毒技术的发展历程,第一代反病毒技术:采取单纯的计算机病毒特征判断可以准确地清除计算机病毒,可靠性很高随着病毒技术的发展,特别是加密和变形技术的应用,这种简单的静态扫描方式逐渐失去了作用第二代反病毒技术:采用静态广谱特征扫描方法检测病毒可更多地检测出变形病毒,但是误报率也有所提高容易造成文件和数据的破坏,5.1 反病毒技术的发展历程,第三代反病毒技术:静态扫描技术和动态仿真技术相结合查找病毒和清除病毒合二为一,形成一个整体解决方案能全面实现预防、检测和清除等反病毒所必备的各种手段以驻留内存方式防止病毒
2、的入侵,凡是检测到的计算机病毒都能清除,不会破坏文件和数据第四代反计算机病毒技术: 基于计算机病毒家族体系的命名规则、基于多位CRC校验和扫描机理、启发式智能代码分析模块、动态数据还原模块、内存解毒模块和自身免疫模块等先进的解毒技术,5.2 计算机病毒检测技术原理,计算机病毒检测技术:通过一定的技术手段判定出病毒的技术计算机病毒检测技术种类:根据病毒在特征分类基础上的检测技术 根据病毒程序中的关键字、特征程序段内容、病毒特征及感染方式、危机程度的变化对文件或数据段的检验和进行检测 不针对具体病毒程序自身检验技术,即对某个文件或数据段进行检验和计算并保存其结果,以后定期或不定期地根据保存的结果对
3、该文件或数据段进行检验,若出现差异,即表示该文件或数据段的完整性已遭到破坏,从而检测到病毒的存在,5.2.1 病毒检测技术的基本原理,反病毒程序计算各个可执行程序的校验和某些反病毒程序是常驻内存程序 反病毒程序常驻内存中,搜索可能进入系统的计算机病毒,其目的是阻止任何病毒感染系统。少数工具可以从感染病毒的程序中清除病毒 少数工具反病毒工具虽可将染毒程序修复好,但有些修复效果不能保证。某些反病毒工具还可能产生虚假报警。反病毒技术的主要分类:病毒诊断技术、病毒治疗技术、病毒预防技术,5.2.2 检测病毒的基本方法,1借助简单工具检测指DEBUG等常规软件工具要求检测者必须具备的知识:分析工具的性能
4、磁盘内部结构(如BOOT区、主引导区、FAT表和文件目录等有关知识)磁盘文件结构(EXE文件头部结构,重定位方法、EXE和COM文件加载文件的不同等)中断矢量表内存管理(内存控制块、环境参数和文件的PSP结构等)阅读汇编程序的能力有关病毒的信息,5.2.2 检测病毒的基本方法,2借助专用工具检测指专门的计算机病毒检测工具,如Norton等 一般来说,专用工具具备自动扫描磁盘的功能,可检测磁盘的染毒情况。 病毒检测工具只能识别已知计算机病毒,其发展总是滞后于计算机病毒的发展,从而对相当数量的未知计算机病毒无法识别。,5.3 病毒主要检测技术和特点,5.3.1 外观检测法5.3.2 系统数据对比法
5、5.3.3 病毒签名检测法5.3.4 特征代码法5.3.5 检查常规内存数5.3.6 校验和法5.3.7 行为监测法(实时监控法)5.3.8 软件模拟法5.3.9 启发式代码扫描技术5.3.10 主动内核技术5.3.11 病毒分析法5.3.12 病毒感染法,5.3.1 外观检测法,虽不能准确判断系统感染了何种病毒,但可通过异常现象来判断病毒的存在 外观检测法是计算机病毒防治阶段起重要作用的一个环节1屏幕显示异常2声音异常3文件系统异常4程序异常5系统异常6打印机、软驱等外部设备异常,5.3.2 系统数据对比法,计算机系统的重要数据:主引导扇区、DOS分区引导扇区、软盘的引导扇区、FAT表、中断
6、向量表和设备驱动程序头等长度比较法及内容比较法依据:计算机病毒感染系统或文件,必然引起系统或文件的变化(长度的变化和内容的变化)注意:只靠检测长度和内容是不充分的,只能将其作为检测病毒的手段之一,5.3.2 系统数据对比法,内存比较法 依据:通常病毒要驻留内存,造成可用内存空间的减少 内存比较法是针对内存驻留计算机病毒进行检测的方法中断比较法 依据:计算机病毒为实现其隐藏和传染破坏的目的,常采用“截留盗用”技术,更改、接管中断向量,使系统中断向量转向执行计算机病毒控制部分。 方法:将正常系统的中断向量与染毒系统的中断向量进行比较,可发现是否有计算机病毒修改或盗用中断向量,5.3.3 病毒签名检
7、测法,计算机病毒签名:即计算机病毒感染标记不同计算机病毒的签名内容不同,位置也不同。并非所有计算机病毒都具备计算机病毒签名。计算机病毒签名检测法的特点:必须预先知道计算机病毒签名的内容和位置 每一种计算机病毒签名的获得都要耗费大量劳力,因此用计算机病毒签名的方法检测计算机病毒,常常是低效、不适用的方法可能造成虚假报警,5.3.4 特征代码法,原理:计算机病毒程序通常具有明显的特征代码特征代码可能是病毒的感染标记,由字母和数字组成串可能是一小段程序由若干指令组成,特征代码不一定连续方法:通过搜索、比较计算机系统中是否含有与特征代码数据库中特征代码匹配的特征代码,从而确定系统是否染毒,感染了何种病
8、毒。特点:依赖于对病毒精确特征的了解,必须事先对病毒样本做大量剖析分析计算机病毒需要很多时间,有时间滞后若病毒特殊代码段的位置或代码改动,则原检测方法失败,5.3.4 特征代码法,选择代码串规则不能随意选择病毒体内的一段作为特征代码串代码串不应含有病毒的数据区保持唯一性的前提下,代码串应尽量短特征代码串应最具代表性,足以区别于其他病毒程序特征代码串应能区别于其他正常的非病毒程序实现步骤采集已知计算机病毒样本从计算机病毒样本中,抽取计算机病毒特征代码将特征代码纳入计算机病毒数据库检测文件,5.3.4 特征代码法,优缺点特征代码法的优点:检测准确,快速可识别计算机病毒的具体类型误报率低依据检测结果
9、,针对病毒类型可做杀毒处理特征代码法的缺点:对于新计算机病毒,发现特征代码的时间滞后搜集已知计算机病毒的特征代码的研发开销大在网络上效率低,影响整个网络性能,5.3.4 特征代码法,高品质计算机病毒检测工具应具有的属性高速性:随着计算机病毒数量的不断增加,检测计算机病毒的时间开销就不断增加误报率低:具有检测多态性计算机病毒的能力:多态形计算机病毒能够变换自己的外观,如插入一些无害的指令随机分散到代码中,也可通过使用不同的密钥进行加密来产生变种能对付隐蔽性计算机病毒:隐蔽性计算机病毒若先于病毒检测工具进入内存,事先剥去病毒代码,从而躲避检测工具的检测,5.3.5 检查常规内存数,原理:病毒在发作
10、、执行时必将占用一定的系统资源。大多数病毒都常驻内存,并修改系统数据区记录的系统内存数或内存控制块中的数据方法:利用一些工具软件,通过检查内存的大小和内存使用情况来判断系统是否染毒:查阅有无可疑的驻留文件查看驻留文件有无可疑的中断向量值通过内存信息查看驻留文件的大小是否合适检查常规内存数的方法:查看系统内存总数,与正常情况进行比较检查系统内存高端的内容,判断其中的代码是否可疑,5.3.6 校验和法,原理:针对正常程序内容计算其校验和,将其写入该程序或其他程序中保存。在程序应用中,定期或每次使用前,计算程序当前内容校验和与原校验和是否一致,从而发现病毒的存在特点:可发现已知病毒,也可发现未知病毒
11、校验和法不能识别病毒的种类,不能报出病毒具体名称校验和法误报率很高方法:在计算机病毒工具中纳入校验和在应用程序中放入校验和和自我检查功能将校验和检查程序常驻内存,5.3.6 校验和法,优缺点:校验和法的优点:方法简单能发现未知计算机病毒能发现被检查程序的细微变化校验和法的缺点:必须预先记录程序正常状态的校验和误报率高不能识别计算机病毒的种类不能对付隐蔽性计算机病毒,5.3.7 行为监测法(实时监控法),原理:病毒有些行为是病毒的共同行为,且比较特殊,甚至罕见。程序运行时,监视其行为,若发现病毒行为,立即报警检测病毒的行为特征占用INT 13H修改DOS系统数据区的内存总量对.COM和.EXE文
12、件做写入操作计算机病毒与宿主程序的邦定和切换格式化磁盘或某些磁道等破坏行为扫描、试探特定网络端口发送网络广播修改文件、文件夹属性,添加共享等,5.3.7 行为监测法(实时监控法),病毒防火墙计算机病毒防火墙:基于实时反计算机病毒技术之上提出的,其宗旨是对系统实施实时监控,对流入、流出系统的数据中可能含有的计算机病毒代码进行过滤。对计算机病毒的过滤有良好的实时性病毒防火墙的“双向过滤”功能保证本地系统不会外传播病毒病毒防火墙操作更简单、更透明优缺点优点:可可发现已知病毒,也可较准确地预报未知多数病毒缺点:可能误报警;不能识别病毒的名称;实现有一定难度,5.3.8 软件模拟法,软件模拟法:专门用来
13、检测变形病毒,即多态性病毒变形病毒特征:病毒传播到目标后,病毒自身代码和结构在空间上、时间上具有不同的变化。变形病毒类型:第一类:一维变形计算机病毒 当病毒传播到一个目标后,其自身代码与前一目标中的病毒代码几乎没有3个连续字节是相同的,但其相对空间的排列位置是不变的 个别病毒遇到检测时能进行自我加密或解密,或自我消失 有的病毒能在列目录时能消失增加的字节数,或在加载跟踪时能破坏跟踪或逃之夭夭,5.3.8 软件模拟法,变形病毒类型:第二类:二维变形计算机病毒 除了具备一维变形病毒的特征外,而且变化的代码相互间的排列距离(相对空间位置)也是变化的第三类:三维变形计算机病毒 除了具备二维变形病毒的特
14、征外,而且能分裂后分别潜藏几处,当病毒引擎激活后能自我恢复成一个完整的计算机病毒 计算机病毒在附着体上的空间位置是变化的,即潜藏位置不定第四类:四维变形计算机病毒 具备三维变形病毒的特征,而且这些特性随时间动态变化 四维变形病毒大部分具备网络自动传播功能,能在网络的不同角落到处隐藏,5.3.8 软件模拟法,检测:一般而言,多态计算机病毒的变换方式:采用等价代码对原有代码进行替换;改变与执行次序无关的指令的次序;增加许多垃圾指令;对原有病毒代码进行压缩或加密。软件模拟技术:又称为解密引擎、虚拟机技术、虚拟执行技术或软件仿真技术 软件模拟技术是一种软件分析器,用软件方法模拟一个程序运行环境,将可疑
15、程序载入其中运行,在执行过程中,待计算机病毒对自身进行解码后,再运用特征代码法来识别病毒的种类,并进行清除,从而实现对各类多态病毒的查杀。,5.3.9 启发式代码扫描技术,1. 计算机病毒扫描技术:当前最主要的查杀方式 主要通过检查文件、扇区和系统内存来搜索计算机病毒,用“标记”查找已知病毒。病毒标记就是病毒常用代码的特征按杀毒方式分类:通用扫描:不依赖操作系统,可查找各种病毒专用扫描:专查某种计算机病毒按用户操作方式分类:实时扫描:若出现计算机病毒,能够立即发现请求扫描:只在运行时才能检测计算机病毒检测病毒的主要依据:病毒和正常程序之间存在很多区别,5.3.9 启发式代码扫描技术,2启发式代
16、码扫描:又称启发式职能代码分析 将人工智能的知识和原理运用到计算机病毒检测中 运用启发式扫描技术的计算机病毒检测软件,实际上就是以人工智能的方式实现的动态反编译代码分析、比较器,通过对程序有关指令序列进行反编译,逐步分析、比较,根据其动机判断是否为计算机病毒。3启发式扫描通常应设立的标志: 为了对程序可能的操作进行加权统计和描述,计算机病毒检测程序会对被检测程序作疑似计算机病毒的标记。 如:TBScan定义的常用标志,5.3.9 启发式代码扫描技术,4误报/漏报误报:将一个本无计算机病毒的程序指证为染毒程序漏报:将一个计算机病毒程序作为正常程序处理产生原因:被检测程序中含有病毒所使用或含有的可
17、疑功能减少或避免误报/漏报:准确把握病毒的行为和可疑功能调用集合的精确定义;对于常规程序代码的识别能力;对于特定程序代码的识别能力;类似“无罪假定”的功能。,5.3.9 启发式代码扫描技术,5其他扫描技术CRC扫描:磁盘中的实际文件或系统扇区的CRC值(检验和),这些CRC值被杀毒软件保存在自己的数据库中,在运行杀毒软件时,用备份的CRC值与当前计算的值比较,可知文件是否已被修改或被计算机病毒感染。,5.3.10 主动内核技术,Active K(主动内核)技术的要点在于能够在计算机病毒突破计算机系统软、硬件的瞬间发生作用。一方面不会伤及计算机系统本身;另一方面对企图入侵系统的计算机病毒具有彻底
18、拦截并杀除的作用。 主动内核技术:从操作系统内核的深度,给操作系统和网络系统打一“主动”的补丁,从安全角度对系统进行管理和检查,对系统的漏洞进行修补,任何文件在进入系统之前,作为主动内核的反病毒模块都将首先使用各种手段对文件进行检测处理。,5.3.11 病毒分析法,使用病毒分析法的人反计算机病毒技术人员使用病毒分析法的目的:即使用病毒分析法的工作顺序确认被观察的磁盘引导扇区和程序中是否有病毒确认病毒的类型和种类,判断其是否是一种新病毒分析病毒的大致结构,提取特征字符串或特征字详细分析病毒代码,为制定相应的反病毒措施制定方案,5.3.11 病毒分析法,使用病毒分析法的要求: 具有比较全面的有关计
19、算机、DOS结构和功能调用以及关于计算机病毒方面的各种知识。此外,还需要Debug、Provie等分析用工具软件和专用的试验用计算机。静态分析:利用Debug等反汇编程序将计算机病毒反汇编后进行分析,分析病毒的组成模块、病毒使用的系统调用,病毒采用的技巧、清除病毒的方法,特征码的选取动态分析:利用Debug等调试工具在内存带毒情况下,对病毒作动态跟踪,观察病毒的具体工作过程,在静态分析基础上理解病毒的工作原理,5.3.12 病毒感染法,感染实验法: 用于检测病毒检测工具不认识的新计算机病毒,可摆脱对计算机病毒检测工具的依赖,自主地检测可疑的新计算机病毒原理: 利用计算机病毒的最重要的基本特征感染特性检测未知引导型计算机病毒的感染实验法检测未知文件型计算机病毒的感染实验法,第5章 计算机病毒检测技术,本 章 结 束,