您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 华中科技大学 病毒原理 课件 5-6章
计算机病毒对抗篇5章计算机病毒的查找与清除6网络环境下病毒的检测与防治5章计算机病毒的查找与清除•5.1病毒检测技术•5.2计算机病毒的清除技术•5.3.结语5.1病毒检测技术•5.1.1特征码检测技术•5.1.2特征码查找算法实现•5.1.3启发扫描技术•5.1.4及虚拟机技术•5.1.5各种检测方法的局限性•5.1.6病毒检测的发展趋势•5.1.7总结5.1.1特征码检测技术•商业反病毒公司在获取病毒样本后,提取出其特征码(特征码最初指病毒体内可惟一代表该病毒的字符串作为特征码)。这是一串表明病毒自身特征的十六进制的字串,特征码一般都选得较长,有时可达数十字节,一般也会选取多个以保证正确判断。然后通过该特征码对各个文件或内存等进行扫描。如果发现这种特征码,这说明感染了这种病毒,然后针对性地解除病毒。5.1.1特征码提取办法•通常选择特征码是按照以下思路:•1.获取一个病毒程序的长度,根据长度可以将文件分为几份,一般是3份-5份,也可以更多。•2.从每份中选取通常为16个或32个字节长的特征串。在选取时,应该采取如下的原则:非通用信息;非空字段;将选取出来的几段特征码及它们的偏移量存入病毒库,标示出病毒的名称即可。5.1.1广谱特征码-针对变种病毒特征码的获取不是简单的取出一段代码来,而是分段的,中间可以包含任意的内容(也就是增加了一些不参加比较的“掩码字节”,在出现“掩码字节”的地方,出现什么内容都不参加比较)。这就是商业公司宣称的广谱特征码的概念。虽然病毒本身可以组合自己的代码,但代码必然要在同一块堆栈中运作,只要在第一个特征码附近搜索第二个第三个,通过分散的特征码小片断来提高命中率。这样在极大程度上提高了特征码的通用性并降低了误判率。5.1.2特征码查找算法实现•(1)主程序•查找A盘中的所有文件。•leadx,dta;dtadb65dup(?)•movah,1ah;设置数据缓冲区•int21h;以存放查找的文件信息•leadx,s1;s1db‘a:\*.*’•movah,4eh•int21h;查找第1个文件•jcexit;没有文件或失败则退出•callopen_file;调用子程序•continue:movah,4fh•int21h;继续查找下一个文件•jcexit•callopen_file•jmpcontinue•exit:;程序结束5.1.2特征码查找算法实现•(2)open_file子程序•打开找到的文件•leasi,dta_1eh;SI指向文件名的位置•leadi,filename+3;filenamedb‘a:\’,13dup(?),’$’•trans_fname:lodsb•stosb;将找到的文件名传入•cmpal,00;filename区,形成文件名•jnztrans_fname;的ASCII串•leadx,filename•movah,9•int21h;显示被检测的文件名•leadx,filename•movax,3d00h•int21h;用只读方式打开文件•movhandsav,ax;句柄保存在handsav单元•callread_srch;调用子程序5.1.2特征码查找算法实现•(3)read_srch子程序•read:movbx,handsav•leadx,buff;bufdb100dup(?)•movex,100•movah,3fh•int21h;读取文件100个字节到buff•movrealnum,ax;实际读字节数存在realnum•cmpax,9;实际读取字节数是否小于•jbeexit2;等于9,若是则读完,退出•callsrch_all;调用子程序•movbx,handsav•movah,42h•movdx,-9•movcx,0ffffh•moval,1;从文件读出指针的当前位•int21h;置向前移动9个字节•jmpread;继续读取文件后面的内容•exit2:movbx,handsav5.1.2特征码查找算法实现•srch_oneprocnear•pushcx•pushdx•movbx,realnum;每个病毒特征码10字节,•subbx,9;后9字节不能作为串比较首址•srch_virus:movcx,10•pushdi•movsi,dx•repzcmpsb;串重复比较•jzfound_virus•popdi•incdi•decbx•callqingping;清屏•jmpexit3•found_virus:popdi•adddx,10;dx指向特征码后的病毒名称•movah,9•int21h;显示发现的病毒信息5.1.3启发扫描技术•新病毒不断出现,传统的特征码查毒法完全不可能查出新出现的病毒。为了更好的检测病毒家族相关的恶意代码,启发式扫描技术产生了,启发式扫描是通过分析指令出现的顺序,或特定组合情况等常见病毒的标准特征来决定文件是否感染未知病毒。5.1.4及虚拟机技术•所谓虚拟机技术,就是用软件先虚拟一套运行环境,让病毒先在该虚拟环境下运行,这样可以分析病毒的执行行为。并且由于加密的病毒在执行时最终还是要解密的,这样在其解密之后我们可以通过特征码查毒法对其进行查杀。5.1.5各种检测方法的局限性以上所述的各种病毒检测方法都是在现实中与计算机病毒对抗中产生的方法,在对抗病毒的斗争中发挥了值得肯定的作用,比如现在的杀毒软件仍是基于特征码的检测或广谱特征码检测,但是随着病毒技术的发展,这些技术的缺点也逐渐暴露出来,相对于病毒技术的发展或说计算机病毒对杀毒软件的反帧察能力必然会导致这些传统帧察技术的局限性。5.1.5.1特征码技术的局限性1.但现在变形技术已经被病毒广泛采用,它只能跟在病毒的后面,对未知病毒即病毒库中没有特征的病毒几乎不能检测。同时也对象Ghost/One-Half病毒与Casper病毒/Natas病毒这种可将自身变化千亿种,甚至无穷种变化的变形病毒无能为力。在这类病毒面前,单纯的特征码技术已完全失去作用。2.广谱特征码技术在一段时间内,对于处理某些变形的病毒提供了一种方法,曾是对抗变形病毒的利器。但其缺点是使误报率大大增加,5.1.5.2启发扫描技术的局限性1.启发查毒技术是现在对付未知威胁的主要手段,通常伴随其它检测技术一起工作,比如主动防御。启发分析技术可以分析程序编码,来判定程序是否具有恶意。2.启发杀毒技术中最先进的动态启发分析技术会将应用程序的编码复制到杀毒软件的模拟缓冲区中,并使用特别的“技巧”模拟其执行。启发式扫描比起静态的特征码扫描要先进得多,可以达到一定的未知病毒处理能力,但缺点是会有不准确(虚警)的时候。特别是因为无法确定是否一定是病毒,而不可能做未知病毒杀毒。5.1.5.3虚拟机技术的局限性•虚拟机技术能够对未知病毒进行判别,对标准病毒准确率高,在对反虚拟机的变形病毒或加密病毒上,效果不理想且误报率高。尽管虚拟机技术在杀毒软件中应用很多。不过现在由于效率问题,只能解决部分问题,并且简化的虚拟机完整程度还远远不能和我们一般理解的VMWare的那种虚拟机相比。同时也因为效率问题,行为判断不能做得非常复杂。目前一些设计先进的病毒,能够识别出这种简化虚拟机环境和真实环境的差别,在这种环境下不发作或破坏虚拟机。5.1.6病毒检测的发展趋势1思想的对抗2多项技术的融合3主动防御5.1.7对病毒检测的思考(1)与计算机共存在(2)用于军事目的(3)多种平台(4)网络化-普及化(5)查找技术落后(6)界限不明确5.3计算机病毒的清除技术•5.3.1计算机病毒的基本概念回顾•5.3.2计算机病毒的清除原理•5.3.3计算机病毒的清除方法•5.3.4小结5.2.1计算机病毒的基本概念回顾•引导模块•传染模块•表现模块•病毒表现模块最直接的表现设计者的目的,例如,有的在屏幕上现实具有特定意义的字符和文章,有的删除文件或数据等,表现多种多样5.3计算机病毒的基本概念回顾•(1)引导性病毒•(2)文件型病毒•文件型病毒分为前后附加型,覆盖型和伴随型:•1.前后附加型病毒:它是附加在可执行文件的开头或结尾的一种病毒。由于前附件型病毒更难于实现,因此多数是后附加型病毒。•2.覆盖型病毒:它是通过覆盖源代码来跑坏文件的一种病毒。如果将文件全部覆盖,则该文件被完全破坏。但是有的覆盖型病毒激活时,只覆盖不影响程序运行的部分,这样就不会察觉到它的存在而长期隐藏下来。这种病毒的另一个特点是覆盖后源文件的长度不变,因此难于发现。•3.伴随型病毒:它是在可执行文件中插入跳转指令,一旦该程序运行,则自动跳转到另一个可执行的含病毒代码的程序上,执行病毒代码,甚至控制系统。达到目的后,再返回到原来的程序,使用户感觉不到程序的问题。•(3)宏病毒5.3.1计算机病毒的清除原理•清除计算机病毒要建立在争取检测病毒的基础之上。清除计算机病毒主要应做好一下工作:•清除内存中的病毒。•清除磁盘中的病毒。•病毒发作后的善后处理。•大多数商品化的软件为保证对病毒的争取检测,都对内进行检测。但是清除内存中的病毒的软件并不多,一般都要求从干净的系统盘启动后再做病毒的检测和清除工作。5.3.2计算机病毒的清除方法•计算机病毒的清除方法一般有人工清除方法和自动清除方法两种。•人工清除是指用户利用软件,如DEBUG,PCTOOLS等所具有的有关功能进行病毒清除;自动清除是指利用防治病毒的软件来清除病毒。这两种方法视具体情况灵活运用。虽然目前有不少防治病毒的软件,但是由于病毒的多样性和软件的使用范围的局限性,不可能刚出现一种病毒就能很快研制出一种清除和对抗病毒的软件。因此,掌握人工清除病毒的方法具有特别的重要性。人工清除的步骤是:首先,用一张“干净”(无病毒)的DOS系统盘,关闭写保护,启动系统;然后判断感染对象的类型。如果是分区域感染,则恢复正常的分区表;如果是Boot区域感染,则恢复Boot区;如果是可执行文件感染,则对该文件消毒;最后,回收资源,如修改文件文件分配表(FAT)、根目录区等。5.3.3文件型病毒的清除方法•在计算机病毒中,绝大部分是文件型病毒。所谓文件型病毒是指此类病毒寄生在可执行文件上,传播的途径也是依靠可执行文件。从数学角度来讲,清除病毒的过程实际上是病毒感染过程的逆过程。通过检测工作,得到了病毒体的全部代码,用于还原的数据肯定在病毒体内有提示,只要找到这些数据,依照一定的方法即可将文件恢复,也就是说可以将病毒清除。•清除文件型病毒通常按照以下步骤进行:•分析病毒与被感染文件之间的连接方式。•确定病毒程序是位于文件的首部还是尾部,找到病毒程序开始和结束的位置,还原被感染文件的主要部分。•恢复被感染文件的头部参数。5.3.4引导型病毒的清除原理•(1)引导型病毒感染时的攻击部位有硬盘主引导扇区或软盘的Boot扇区。为保存原引导扇区,Boot扇区,病毒可能随意地将它们写入其他扇区,而毁坏这些扇区。•(2)硬盘主引导扇区感染病毒是可以修复的。恢复步骤如下:•·用无毒软盘启动系统。•·寻找一台同类型,硬盘分区相同的无毒机器,将其硬盘主引导扇区写入一张软盘;或者病毒感染前主引导扇区有备份,将备份的主引导扇区写入一张软盘。•·将此软盘插入染毒机器,将其中采集的主引导扇区数据写入染毒硬盘即可修复。•(3)硬盘、软盘Boot扇区染毒也可以修复。解决办法就是寻找与染毒盘相同版本的无毒系统软盘,执行SYS命令,即可修复。•(4)引导型病毒如果将原主引导扇区或Boot扇区以覆盖的方式写入根目录区,被覆盖的根目录区将被完全损坏,不可修复。•(5)如果引导型病毒将原主引导扇区或Boot扇区以覆盖的方式写入第一FAT时,第二FAT未被破坏,则可以修复。可将第二FAT复制到第一FAT中。•(6)一般,引导型病毒占用的其他部分存储空间,只有采用“坏簇”技术和“文件结束簇”占用的空间需要收回。(2)DEBUG清除引导型病毒•在检测到磁盘被引导型病毒感染后,清除病毒的基本思想是用正常的系统引导程序覆盖引导扇区中的病毒程序。•如果在病毒感染以前,预先阅读并保存了磁盘主引导区和DOS引导扇区的内容,就很容易清除病
本文标题:华中科技大学 病毒原理 课件 5-6章
链接地址:https://www.777doc.com/doc-3174717 .html