




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,计算机病毒 Computer Virus,傅建明 F; ,武汉大学计算机学院,2,第八章 病毒对抗技术,8.1 病毒的检测技术 8.2 病毒发现和抗病毒软件 8.3 病毒的清除 8.4 计算机病毒的免疫技术 8.5 计算机病毒的防治,3,8.1 病毒的检测技术,常规计算机病毒的检测是对主引导区、可执行文件、内存空间和病毒特征串进行对比分析,寻找病毒感染后留下的痕迹. 1)检查磁盘的主引导扇区 检查FAT表/检查中断向量 2)检查可执行文件 3)检查内存空间 4)根据特征查找,4,8.1 病毒的检测技术,8.1.1 特征值检测技术 8.1.2 校验和检测技术 8.1.3 行为监测技术 8.1.4 启发式扫描技术 8.1.5 虚拟机技术,5,8.1.1 特征值检测技术,计算机病毒的特征值是指计算机病毒本身在特定的寄生环境中确认自身是否存在的标记符号.其作用是指病毒在传染宿主程序时,首先判断该病毒欲传染的宿主是否已染有病毒时,按特定的偏移量从文件中提出的特征值。 Eg:1575病毒在被传染文件的尾部均标记有0A0CH,0A0CH即是1575病毒的标识。 病毒的标识可由下列字符构成:26个英文字母和10个数字(0、1、2、3、4、5、6、7、8、9)以及其它符号。,6,8.1.1 特征值检测技术,计算机病毒的特征值可能有别于病毒标识,特征值是指一种病毒有别于另一种病毒的字符串。 一般而言,一种病毒的标识可以作为一种病毒的特征值,但一种病毒的特征值并不一定表示该病毒的标识。如1575病毒的特征字可以是0A0cH,也可以是从病毒代码中抽出的一组16进制的代码:06 12 8C C0 02 lF 0E 07 A3等,前者是1575病毒的传染标识,而后者则不是。,7,8.1.1 特征值检测技术,计算机病毒的特征串是用户或反病毒工作者鉴别特定计算机病毒的一种标志。目前,许多抗病毒软件都采用了计算机病毒特征值检测技术的鉴别方法。其局限性在于只能诊断已知的计算机病毒,而优越性在于能确诊计算机病毒的类型。例:已知杨基病毒的特征串是16进位的值:“F4,7A,2C,00”。,8,8.1.1 特征值检测技术,(1) 采集已知的病毒样本。即使是同一种病毒,当它感染一种宿主时,就要采集一种样本。即如果病毒既感染COM文件,又感染EXE文件以及引导区,那就要提取三个样本。 (2) 在病毒样本中,抽取特征串。抽取的特征串应比较特殊,不要与普通正常程序代码吻合,当抽取的特征串达到一定长度时,就能保证这种特殊性。抽取的特征串要有适当长度,这保证了特征串的唯一性,同时查毒时又不需太大的空间和时间开销。,9,8.1.1 特征值检测技术,(3) 可用下列方法获取病毒特征串。 当计算机病毒表现模块或破坏模块被触发时,把病毒在计算机屏幕上出现的信息作为病毒的特征串。例如大麻病毒的提示为:“Your PC is now stoned”等。 病毒为提高传播效率而使用的感染标记,即用病毒标识作为病毒的特征字串。如黑色星期五的“suMs DOS”。 (c) 从病毒代码的任何地方开始取出连续的、不大于64且不含空格(ASCII值为32)的字节串都可以作为计算机病毒的特征串。例如洋基病毒的特征串为“FA 7A 2C 00H”。从理论上讲,简单地从病毒头部取出连续的64字节,则可判断的病毒数可达264*8种。为了提高效率,有的特征串长度为7一l5字节之间。 (4) 将特征串纳入病毒特征数据库。,10,8.1.1 特征值检测技术,广谱特征串建立方法如下: (1) 提取变形病毒的多个感染样本,最好是对同一个宿主的多次单独感染样本,不是多次重复感染。 2在每个样本的相同位置抽取适当长度的病毒代码,这是传统意义的病毒特征串。 (3) 比较这些病毒特征串,依次记下各个样本完全相同的代码,如果一定位置上的代码各个样本不是完全相同或根本不同,那么把这些常变换的代码用两个问号“?”来代替,每一个双问号代表一个字节。 (4) 如果各个样本中的病毒特征串中,从第一组(有1个字节以上含1个字节)相同的特征串到第二组相同的特征串之间的代码,不仅常变换,而且在每一个样本中,它们之间的间距也不相同。如果是在32个字节内变化,可以用双“%”百分号来过滤这些变化的代码。同样第二组到第三组也如法炮制,依此类推。 (5) 按以上方法处理完病毒特征串,我们最后得到的就是病毒的广谱特征串,下面是广谱特征串例子: “B8 ? 42 ? ? ? ? B4 40 B8 ? 57”,11,8.1.1 特征值检测技术,特征值检测方法的优点是:检测准确快速、可识别病毒的名称、误报警率低,并且依据检测结果可做解毒处理。其缺点是: A.速度慢。搜集已知病毒特征串的费用开销大。随着病毒种类的增多,检索时间变长。如果检索5000种病毒,必须对5000个病毒特征代码逐一检查。如果病毒种数再增加,检病毒的时间开销就变得十分明显。此类工具检测的高速性,将变得日益困难。 B.误报警率低。 C.不能检查未知病毒和多态性病毒。特征值检测方法是不可能检测多态性病毒的,因为其代码不唯一。 D.不能对付隐蔽性病毒。,12,在文件使用/系统启动过程中,检查文件现在内容的校验和与原来保存的校验和是否一致,因而可以发现文件/引导区是否感染,这种方法叫校验和检测技术。在SCAN和CPAV等抗病毒软件中除了病毒特征值检测方法之外,还纳入校验和检测方法,以提高其检测能力。 这种方法既能发现已知病毒,也能发现未知病毒,但是,它不能识别病毒类,不能报出病毒名称。 校验和检测技术对隐蔽性病毒无效。,8.1.2 校验和检测技术,13,运用校验和检测技术查病毒采用三种方式: 在检测病毒工具中纳入校验和检测技术,对被查的对象文件计算其正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较。 在应用程序中,放入校验和检测技术自我检查功能,将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原校验和值。实现应用程序的自检测,s-box。 将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。,8.1.2 校验和检测技术,14,(一)、系统数据 病毒一般要修改和攻击系统的重要数据,在磁盘上一般要攻击硬盘主引导扇区、DOS引导扇区,在内存中要攻击中断向量表、设备驱动程序头、system32 (主要是块设备驱动程序头)。 C:FCB INTl.DAT INT2.DAT,8.1.2 校验和检测技术,15,8.1.2 校验和检测技术,(二)、文件头部 一般比较整个文件效率较低,有的检测仅比较文件的头部。实际上现有大多数寄生病毒是通过改变宿主程序的头部,来达到先于宿主程序执行的目的。对于寄生在头部的COM文件型病毒,病毒附着在宿主程序的前面,这些染毒文件的开头部分即为病毒代码。对于寄生在尾部的COM文件型病毒,病毒必然替换宿主程序的第一条指令,以便跳转到程序尾部的病毒代码执行。对于EXE文件型病毒,病毒必然改变EXE文件头的程序入口(CS : IP)指针。,16,(三)、文件基本属性 文件的基本属性包括文件长度、文件创建日期和时间、文件属性(一般属性、只读属性、隐含属性、系统属性)、文件的首族号、文件的特定内容等。如果文件的这些属性值任何一个发生了异常变化,则说明极有可能病毒攻击了该文件(传染或是毁坏)。如Tripwire软件可以实现对UNIX和Windows中文件属性的监控。,8.1.2 校验和检测技术,17,UNIX系统属性监控 : 1) 文件增加,删除,修改。 2) 文件访问许可属性。 3) iNode及Link数量。 4) Uid及Gid。 5) 文件类型和大小。 6) iNode存储的磁盘设备号。 7) iNode指向的设备的设备号(指设备文件) 8) 分配的区块。 9) 修改时间戳。 10) iNode创建和修改的时间戳。 11) 访问时间戳。 12) 增长的文件。 13) 缩小的文件。 14) HASH检查。,Windows 系统属性监控: 1) 文件增加,删除,修改。 2) 文件标记(归档,只读,隐藏,离线,临时,系统,专向) 3) 最近访问时间。 4) 最近写时间。 5) 创建时间。 6) 文件大小。 7) MS-DOS 8.3名称。 8) NTFS压缩标记,NTFS OSID,GSID,NTFS DACL,NTFS SACL。 9) 安全描述符控制及安全描述符大小。 10) 可变的数据流数目。 11) HASH检查。,18,8.1.2 校验和检测技术,(四)、文件校验和 对文件内容(可含文件的属性)的全部字节进行某种函数运算,这种运算所产生的适当字节长度的结果就叫做校验和。这种校验和在很大程度上代表了原文件的特征,一般文件的任何变化都可以反映在校验和中。比如说,校验和长度取为一个字节,则平均257个文件,才有两个文件的校验和相同;校验和长度取为两个字节,则平均65537个文件,才有两个文件的校验和相同。 为了计算校验和,首先对文件按某一个长度L进行划分。若文件整个长度不是L的整数倍,则对文件填充一个常数,使得填充后的文件长度为L的正数倍。当划分完毕后,对每个划分块实施某种操作,如累加、异或、CRC(Cyclic Redundancy Check)和HASH等。如Kaspersky AV Personal Pro采用了CRC技术。,19,采用CRC校验时,把整个文件看作一个长整数t(x),g(x)为生成多项式,并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:以g(x)去除t(x),得到余数作为CRC校验码。 一般取g(x)的阶为16或32,如g(x)=或g(x)=。 HASH算法是对整个文件求文件摘要,常用算法为MD5(Message Digest)或SHA(Standard Hash Algorithm)。,8.1.2 校验和检测技术,20,8.1.2 校验和检测技术,校验和检测技术的优点是:方法简单、能发现未知病毒、被查文件的细微变化也能发现。其缺点是:必须预先记录正常文件的校验和、会误报警、不能识别病毒名称、不能对付隐蔽型病毒和效率低。,21,8.1.3 行为监测技术,病毒不论伪装得如何巧妙,它总是存在着一些和正常程序不同的行为。比如病毒总要不断复制自己,否则它无法传染。再如,病毒总是要想方设法地掩盖自己的复制过程,如不改变自己所在文件的修改时间等。病毒的这些伪装行为做得越多,特征值检测技术越难以发现它们,由此反病毒专家提出了病毒行为监测技术,专门监测病毒行为。 行为监视是指通过审查应用程序的操作来判断是否有恶意(病毒)倾向并向用户发出警告。,22,8.1.3 行为监测技术,常见的病毒行为特性有: (1) 引导型病毒必然截留盗用INT 13H (2) 高端内存驻留型病毒修改DOS系统数据区的内存总量 (3) 内存控制链驻留型病毒修改最后一个内存控制块(MCB)的段址 (4) 修改INT 21H、INT 25H、INT 26H、INT 13H (5)修改INT 24H DOS严重错误中断 (6)对可执行文件进行写操作 (7)写磁盘引导区 (8)病毒程序与宿主程序的切换 (9)windows PE病毒部分特征:修改入口点/自己重定位/通过搜索API函数地址,23,8.1.3 行为监测技术,极少数正常程序也有类似的病毒行为,称为类病毒行为。例如: 杀病毒工具去写有毒的可执行程序。 某些安装程序动态修改可执行程序。 加密程序对被加密程序的写入行为。 反病毒工具携带某些数据文件,这些文件中的某些随机数据非常类似于反病毒工具的判据。 某些程序自己修改自己,譬如MSDOS系统的SETVER.EXE。,24,如果我们换一个思维角度,判断某种行为是否是合法行为,同样可以达到防毒的目的。我们以合法系统行为知识模型为支持,不仅使用行为监测方法,监测病毒传播的行为特征等必要条件,如修改中断、修改内存、修改设备链等,而且是直接分析用户程序的需求,根据系统合法行为知识模型决定系统最后对存储对象的操作是否合法,抓住了判断计算机病毒的充分条件,从而达到了以下目标: (1) 少误报。不要求用户具有判断知识。 (2) 少冲突。由于抓住了充分条件,所以不会将其它软硬件的行为作为可疑行为而加以阻止。,8.1.3 行为监测技术,25,8.1.3 行为监测技术,行为监测技术的优点有:可发现未知病毒、可相当准确地预报未知的多数病毒。行为监测技术的不足是:可能误报警、不能识别病毒名称和实现时有一定难度。,26,采用行为监测技术实现行为-阻塞软件(Behavior blocker),该软件把主机操作系统和受到恶意攻击时对程序的实时监视行为结合在一起,并在那些恶意的行为对系统进行攻击之前就将它们阻塞。监视行为的内容包括: 试图打开、查看、删除、或修改文件。 试图格式化磁盘和其它不可恢复的磁盘操作。 对可执行文件和程序代码进行修改。 对关键性的系统设置进行修改。例如系统的启动设置。 电子邮件的脚本程序以及通知客户发送可执行内容。 网络通信的初始化。,8.1.3 行为监测技术,27,8.1.3 行为监测技术,读文件操作,用户应用程序调用子系统库Kernel32.dll中的API函数ReadFile,ReadFile接着调用系统库Ntdll.dll中的NtReadFile,NtReadFile通过一个陷入指令(INT2E)将处理器模式提升至ring0。然后Ntoskrnl.exe中的系统服务调度程序KiSystemService将在系统服务调度表中定位Ntoskrnl.exe中的NtWReadFile并调用之,同时解除中断。此服务例程是I/O管理器的一部分。,28,8.1.3 行为监测技术,它首先检查传递给它们的参数以保护系统安全或防止用户模式程序非法存取数据,然后创建一个主功能代码为IRP_MJ_READ的IRP,并将之送到文件系统驱动程序的入口点。以下的工作会由文件系统驱动程序与磁盘驱动程序分层来完成。,29,8.1.3 行为监测技术,文件系统驱动程序可以重用一个IRP或是针对单一的I/O请求创建一组并行工作的关联(associated)IRP。执行IRP的磁盘驱动程序最后可能会访问硬件。对于PIO方式的设备,一个IRP_MJ_READ操作将导致直接读取设备的端口或者是设备实现的内存寄存器。尽管运行在内核模式中的驱动程序可以直接与其硬件会话,但它们通常都使用硬件抽象层(HAL)访问硬件:读操作最终会调用Hal.dll中的READ_PORT_UCHAR例程来从某个I/O口读取单字节数据。,30,8.1.3 行为监测技术,WINNT/2000下设备和驱动程序的有着明显堆栈式层次结构:处于堆栈最底层的设备对象称为物理设备对象,或简称为PDO,与其对应的驱动程序称为总线驱动程序。在设备对象堆栈的中间某处有一个对象称为功能设备对象,或简称FDO,其对应的驱动程序称为功能驱动程序。在FDO的上面和下面还会有一些过滤器设备对象。位于FDO上面的过滤器设备对象称为上层过滤器,其对应的驱动程序称为上层过滤器驱动程序;位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器,其对应的驱动程序称为下层过滤器驱动程序。,31,8.1.3 行为监测技术,这种栈式结构可以使I/O请求过程更加明了。每个影响到设备的操作都使用IRP。通常IRP先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面的驱动程序。每一层驱动程序都可以决定如何处理IRP。有时,驱动程序不做任何事,仅仅是向下层传递该IRP。有时,驱动程序直接处理完该IRP,不再向下传递。还有时,驱动程序既处理了IRP,又把IRP传递下去。这取决于设备以及IRP所携带的内容。,32,8.1.3 行为监测技术,如果我们想拦截系统的文件操作,就必须拦截I/O管理器发向文件系统驱动程序的IRP。而拦截IRP最简单的方法莫过于创建一个上层过滤器设备对象并将之加入文件系统设备所在的设备堆栈中。具体方法如下:首先通过IoCreateDevice创建自己的设备对象,然后调用IoGetDeviceObjectPointer来得到文件系统设备(Ntfs,Fastfat,Rdr或Mrxsmb,Cdfs)对象的指针,最后通过IoAttachDeviceToDeviceStack将自己的设备放到设备堆栈上成为一个过滤器。,33,8.1.4 启发式扫描技术,病毒和正常程序的区别可以体现在许多方面,比较常见的如通常一个应用程序在最初的指令是检查命令行输入有无参数项、清屏和保存原来屏幕显示等, 而病毒程序则从来不会这样做,它通常最初的指令是远距离跳转、搬移代码、直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。,34,8.1.4 启发式扫描技术,启发式代码扫描技术(Heuristic Scanning)实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。 一个采用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。,35,8.1.4 启发式扫描技术,如果一段程序以如下序列开始: MOV AH ,5 MOV BX, 500H INT 13H /*即调用格式化磁盘操作的BIOS指令功能,那么这段程序就十分可疑,值得引起警觉。*/ JMP XXXX /*开始的指令*/,36,8.1.4 启发式扫描技术,启发性扫描主要是分析文件中的指令序列,根据统计知识,判断该文件可能感染或者可能没有感染,从而有可能找到未知的病毒。因此,启发性扫描技术是一种概率方法,遵循概率理论的规律。早期的启发式扫描软件采用代码反编译技术作为它的实现基础。这类病毒检测软件在内部保存数万种病毒行为代码的跳转表,每个表项存储一类病毒行为的必用代码序列,比如病毒格式化磁盘必用到的代码。,37,TbScan 的检测标记,F 具有可疑的文件操作功能,有进行感染的可疑操作。 R 重定向功能,程序将以可疑的方式进行重定向操作。 A 可疑的内存分配操作,程序使用可疑方式进行内存申请和分配操作。 N 错误的文件扩展名,扩展名预期程序结构与当前程序相矛盾。如EXE扩展名表示所可执行文件,其结构就与普通文件不同。 S 包含搜索定位可执行程序(如EXE或COM)的例程。,38,TbScan 的检测标记,# 发现解码指令例程。这在病毒和加密程序中都是经常会出现的。 E 变化的程序入口。程序被蓄意设计成可编入宿主程序的任何部分,病毒极频繁使用的技术。 L 程序截获其它软件的加载和装入,有可能是病毒为了感染被加载程序。 D 直接写盘动作,程序不通过常规的DOS功能调用而进行直接写盘动作。 M 内存驻留程序,该程序被设计成具有驻留内存的能力。,39,TbScan 的检测标记,I 无效操作指令,非80868088或80386指令等。 T 不合逻辑的错误的时间标记。有的病毒借此进行感染标记。 J 可疑的跳转结构。使用了连续或间接的跳转指令。这种情况在正常程序中少见,但在病毒中却很平常。 ? 不相配的EXE文件。可能是病毒,也可能是程序设计失误导致。 G 无效操作指令。包含无实际用处,仅仅用来实现加密变换或逃避扫描检查的代码序列,如NOP。,40,TbScan 的检测标记,U 未公开的中断/DOS功能调用。也许是程序被故意设计成具有某种隐蔽性,也有可能是病毒使用一种非常规方法检测自身存在性。 O 发现用于在内存中搬移或改写程序的代码序列。 Z EXE/COM辨认程序。病毒为了实现感染过程通常需要进行此项操作。 B 返回程序入口。包括可疑的代码序列,在完成对原程序入口处开始的代码修改之后重新指向修改前的程序入口,在病毒中极常见。 K 非正常堆栈。程序含有可疑的堆栈。,41,8.1.4 启发式扫描技术,特点:误报率高 解决方案:传统扫描技术与启发式扫描技术的结合可以使病毒检测软件的检出率提高到前所未有的水平,而另一方面,又大大降低了总的误报率。,42,8.1.5 虚拟机技术,多态性病毒采用以下几种操作来不断交换自己:采用等价代码对原有代码进行替换;改变与执行次序无关的指令的次序;增加许多垃圾指令;对原有病毒代码进行压缩或加密。 为了检测多态性病毒,反病毒专家研制了一种新的检测方法“虚拟机技术”。该技术也称为软件模拟法,它是一种软件分析器,用软件方法来模拟和分析程序的运行,而且程序的运行不会对系统起实际的作用(仅是“模拟”),因而不会对系统造成危害。,43,8.1.5 虚拟机技术,虚拟机技术并不是一项全新的技术。我们经常遇到的虚拟机有很多。比如象GWBasic这样的解释器、Microsoft Word的WordBasic宏解释器、JAVA虚拟机等等。虚拟机的应用场合很多,它的主要作用是能够运行一定规则的描述语言。,44,8.1.5 虚拟机技术,“虚拟”二字,有着两方面的含义: 其一在于运行一定规则的描述语言的机器并不一定是一台真实地以该语言为机器代码的计算机,比如JAVA想做到跨平台兼容,那么每一种支持JAVA运行的计算机都要运行一个解释环境,这就是JAVA虚拟机; 另一个含义是运行对应规则描述语言的机器并不是该描述语言的原设计机器,这种情况也称为仿真环境。,45,8.1.5 虚拟机技术,比如Windows的MS-DOS Prompt就是工作在V86 方式的一个虚拟机,虽然在V86方式,实x86指令的执行和在实地址方式非常相似,但是Windows为MS-DOS程序提供了仿真的内存空间。,46,8.1.5 虚拟机技术,虚拟机的主要工作有以下内容。首先的工作是对病毒代码做解释执行。对指令的解释程度决定了这个虚拟机的基本性能。除了处理每种 x86指令在各种寻址上的差异外,286指令、386指令、x87指令、 保护模式指令、MMX 指令也应该在仿真的范围之内,任何一条虚拟机不认识的指令都会让虚拟机“宕机”,因为不能保证病毒不会运行不认识的指令。,47,8.1.5 虚拟机技术,第二个是仿真一部分MS-DOS和BIOS调用。其中包括重要的内存分配、文件处理、磁盘操作等关键环节。仿真的目的不仅仅是识别这些调用,而且是仿真获得这些调用及指令运行的结果。,48,8.1.5 虚拟机技术,第三个是PC环境、BIOS环境、MS-DOS环境及扩充的PC环境。比如重要的BIOS和MS-DOS数据区、MS-DOS的内存管理链、UMB甚至Himem、Emm386这样的程序所带来的XMS、EMS、DPMI等等管理协议。目前已经发现有病毒通过DPMI来实现一些特定的功能。,49,8.1.5 虚拟机技术,虚拟机技术具有如下优点: (1) 由于代码与数据的天然区别,代码可执行而数据不可执行,杜绝了原来传统特征值监测技术常常把数据误当成病毒报警的情形,误报率降低。 (2) 由于代码是虚拟运行,病毒被装在虚拟环境里执行,真正的CPU从来没有真正运行病毒代码。因此,病毒可能实施的破坏在虚拟机监控下,不会真正发生。,50,8.1.5 虚拟机技术,(3) 在虚拟机中,虽然他会运行这些病毒代码,但却不会造成虚拟机的死机。例如一条INT 3H指令可以令真的CPU停机,但虚拟机则可将之识别,不会真停机。 (4) 各种病毒生产机或辅助开发包生成的病毒,由于产生的是同族病毒,大同小异,在内存中运行还原后面貌大致相同,不同的只是在硬盘上储存时的静态排列方式,借此逃避特征值监测技术的扫描。而虚拟机可以在还原其真实面目的基础上,再进一步用特征串匹配,当然可以提高准确率。,51,8.1.5 虚拟机技术,(5) 更先进的变形病毒/加密编码病毒,虽然号称其每次自我复制的下一代样本中不存在任何相同的两处以上连续字节,实际上也是指静态存储形式(磁盘上的静态病毒)而言的,根本上还是以一个普通病毒为原型,再经变形算法加以变换处理实现的。它同样会在虚拟机面前显出原形。 (6) 在反病毒软件中引入虚拟机是由于综合分析了大多数已知病毒的共性,并基本可以认为在今后一段时间内的病毒大多会沿袭这些共性。,52,8.1.5 虚拟机技术,(7) 目前抗病毒软件应用的虚拟机并不是完整仿真环境,而是相对比较简单的、易于实现的版本。 (8) 虚拟机技术仍然与传统技术相结合,并没有抛弃已知病毒的特征知识库。,53,自含代码虚拟机(SCCE),自含代码虚拟机工作起来象一个真正的CPU。一条指令取自内存,由SCCE解码,并被传送到相应的模拟这条指令的例程,下一条指令则继续这个循环。虚拟机会包含一个例程来对内存/寄存器寻址操作数进行解码,然后还会包括一个用于模拟每个可能在CPU上执行的指令的例程集。,54,缓冲代码虚拟机,缓冲代码虚拟机是SCCE的一个缩略版,因为相对于SCCE它具有较小的尺寸和更快的执行速度。在BCE中,一条指令是从内存中取得的,并和一个特殊指令表相比较。如果不是特殊指令,则它被进行简单的解码以求得指令的长度,随后所有这样的指令会被导入到一个可以通用地模拟所有非特殊指令的小过程中。而特殊指令,只占整个指令集的一小部分,则在特定的小处理程序中进行模拟。,55,有限代码虚拟机,有限代码虚拟机有点象用于通用解密的虚拟系统所处的级别。LCE实际上并非一个虚拟机,因为它并不真正的模拟指令,它只简单地跟踪一段代码的寄存器内容,也许会提供一个小的被改动的内存地址表,或是调用过的中断之类的东西。选择使用LCE而非更大更复杂的系统的原因,在于即使只对极少数指令的支持便可以在解密原始加密病毒的路上走很远,因为病毒仅仅使用了INTEL指令集的一小部分来加密其主体。,56,8.2 病毒发现和抗病毒软件,现象观察法 计算机屏幕的异常 计算机系统的运行速度减慢 计算机系统出现异常死机 系统文件的发生变化 计箕机存储系统的存储容量异常 键盘异常 上网异常,57,8.2 病毒发现和抗病毒软件,抗病毒软件 误报(false positive):当一个没有被感染的对象(文件、扇区和系统内存)触发抗病毒软件报警时产生。 漏报(false negative):与误报相反,当一个感染对象存在但抗病毒软件没有报警或检测到。 ,58,8.2 病毒发现和抗病毒软件,按需检测(on-demand scanning):抗病毒软件在用户的请求下开始扫描。在该模式下,抗病毒软件一般处于非激活状态,直到用户发出请求。 动态检测(on-the-fly scanning):也称为实时检测,所有的对象在任何操作下都要检查是否携带病毒,如打开、关闭、创建、读或写等。在该模式下,抗病毒软件总是激活的,一般为驻留内存程序,主动检查各种对象。,59,抗病毒软件归类,第一类抗病毒软件采取单纯的特征值检测技术,将病毒从染毒文件中清除。 第二类抗病毒软件采用一般的启发性扫描技术、特征值检测技术和行为监测技术,这种方式可以更多地检测出变形病毒,同时可实现动态监测。,60,抗病毒软件归类,第三类抗病毒软件在第二类抗病毒软件的基础上采用虚拟机技术,将查找病毒和清除病毒合二为一,形成一个整体解决方案,能够全面实现防、查、杀等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵。,61,抗病毒软件归类,第四类抗病毒软件则是在第三类的基础上,结合人工智能的研究成果,实现启发式、动态、智能地查毒技术。该类软件采用CRC校验和扫描机理、启发式智能代码分析模块、动态数据还原模块(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒模块、自身免疫模块等先进的解毒技术,较好地解决了以前防毒技术顾此失彼、此消彼长的状态。,62,抗病毒软件的评价,可靠性和使用的便利性。使用不存在故障,或其它技术问题,这些问题可能需要专门的知识。 对大多数病毒的检测质量。能够扫描文档文件(Microsoft Word, Excel, Office97),如打包的文档和存档文件,没有误报。能清除已感染的目标文件。扫描器及时更新特征库,从而能够检查新病毒。,63,抗病毒软件的评价,对不同平台(DOS, Windows 3.x, Windows9x, Windows2k/XP, WindowsNT, Novell NetWare, OS/2, Alpha, Linux etc.)具有抗病毒能力,不仅可以按需扫描,而且可以动态扫描,同时,在网络环境提供服务器版本。 检测的速度和其它特性。,64,8.2.3 感染实验分析,感染实验分析法是一种简单实用的检测病毒方法。由于病毒检测工具落后于病毒的发展,当病毒检测工具不能发现病毒时,如果不会用感染实验法,便束手无策。如果会用感染实验法,一般可以检测出工具不认识的新病毒,可以摆脱对工具的依赖,自主地检测可疑新病毒。 如果发现新的病毒,可以使用调式工具或者反汇编工具,如IDA/Soft ICE等,寻找病毒的特征和病毒的行为模式。,65,8.3 病毒的清除,将染毒文件的病毒代码摘除,使之恢复为可正常运行的健康文件,称为病毒的清除,有时称为对象恢复。 不论手工消毒还是用抗病毒软件进行消毒,都是危险操作,可能出现不可预料的结果,将染毒文件彻底破坏。,66,8.3 病毒的清除,引导型病毒的清除: (1)DOS SYS命令或者FDISK/MBR (2)备份引导扇区 宏病毒的清除: RTF(Rich Text Format)适合保留原始文档的足够信息而不包含宏。然后,退出文档编辑器,删除已感染的文档文件、NORMAL.DOT和start-up目录下的文件。,67,8.3 病毒的清除,文件型病毒的清除 : 破坏性感染病毒由于其覆盖式写入,破坏了原宿主文件,不可能修复(如果没有原文件拷贝时)。一般文件型病毒的染毒文件可以修复。在绝大多数情况下,感染文件的恢复都是很复杂的。如果没有必要的知识,如可执行文件格式、汇编语言等,是不可能手工清除的。,68,8.3 病毒的清除,当恢复受感染的文件时,须考虑下列因素。 (1)不管文件的属性(只读/系统/隐藏),测试和恢复所有的目录下的可执行文件。 (2) 希望确保文件的属性和最近修改时间不改变。 (3)一定考虑一个文件多重感染情况。,69,8.3 病毒的清除,病毒的去激活: 清除内存中的病毒,需要检测病毒的执行过程,然后改变其执行方式,使病毒失去传染能力。这需要全面分析病毒代码,因为不同的病毒其感染方式不同。,80 FC 3D CMP AH,3Dh 74 xx JE Infect_File E9 xx xx JMP Continue,80 FC 3D CMP AH,3Dh 90 90 NOP, NOP E9 xx xx JMP Continue,70,8.4 计算机病毒的免疫技术,生物免疫系统(Biological immune system ,BIS)。接着,从生物免疫系统得到启发,阐述了计算机病毒免疫的基本原理。最后,分析了IBM的数字免疫系统(Digital Immune System,DIS)。,71,72,生物免疫系统特点,(1)具有多层次的保护:BIS对外来侵害提供多层保护。 (2)免疫系统的唯一性:每个生物体的免疫系统都是独一无二、各不相同的,因此每个个体的安全脆弱性不同。 (3)识别功能:生物免疫系统具有辨认“自己”和“非己”的特殊识别能力。,73,生物免疫系统特点,(4)学习和记忆功能:生物免疫系统具有两种类型的免疫应答:初次免疫应答和二次免疫应答。 (5)自适应性:自然界中存在的抗原种类远远多于生物体内的抗体种类,因此侵入生物体内的抗原具有不可预知性。但免疫系统会通过免疫细胞的增殖和分化作用,不断地产生新的抗体,最终生成适合的抗体来消灭抗原,从而动态地适应外界环境的变化。,74,生物免疫系统特点,(6)动态平衡系统:在免疫应答过程中,免疫系统内部各免疫细胞之间、抗原与抗体、抗体与抗体之间形成一个相互作用的动态平衡网络体系,使免疫应答维持合适的强度。 (7)检测新的外部入侵:BIS具有先天免疫功能,可识别首次遇到的新入侵,并作出反应。 (8)分布检测:BIS的检测和记忆是高度分布、非集中控制的。 (9)不精确匹配:检测免疫记忆具有联想特性。,75,76,8.4.2 计算机病毒免疫的原理,计算机免疫系统(Computer Virus Immune System,CVIS)根据生物免疫系统的原理,实现对计算机病毒的免疫作用的系统。,77,8.4.2 计算机病毒免疫的原理,S.Forrest在这一领域研究中较早地作了尝试。她首先根据BIS区分“自己”和“非己”的原理,提出了阴性选择算法,建立了异常行为检测系统。 J.O.Kepharts提出了使用“诱导”技术对病毒(包括新病毒)进行检测。首先使“诱饵”程序感染病毒,通过对受感染“诱饵”程序的分析,确定病毒的存在。,78,8.4.2 计算机病毒免疫的原理,目前常用的免疫
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生活方式与营养平衡考试试卷及答案
- 2025年飞行器设计与制造职业资格考试试题及答案
- 2025年公共艺术与创新设计相关考试题及答案
- 万科保安入职考试题及答案
- 一级造价工程师考试真题及答案
- 一级建造师注册协议书
- 山东省日照市实验高级中学2024-2025学年高一下学期阶段学情诊断数学试卷B(解析版)
- (高清版)DB1311∕T 046-2006 水貂屠宰取皮技术
- 2025年化学气相沉积设备项目发展计划
- 预防癌症护理
- 南非介绍课件
- 2023年安全生产月电力安全生产培训PPT铸安全文化之魂守安全发展之基PPT课件(带内容)
- SQL必知必会(第5版)
- 湘版(2017秋)4年级下册实验报告单
- 暖通空调文献翻译
- 水利水电工程施工质量检验与评定规程SL176-
- 前滚翻分腿起教案
- SB/T 11118-2015移动通讯终端售后服务规范
- JJG 905-2010刮板细度计
- GB/T 3741.1-1983卡套式端三通管接头
- 医院医疗费用价格公示制度
评论
0/150
提交评论