
第2章计算机病毒结构及分析.ppt
43页第二章第二章 计算机病毒结构分析计算机病毒结构分析本章学习目标本章学习目标掌握计算机病毒的结构掌握计算机病毒的工作机制了解各种计算机病毒技术一、一、计算机病毒的结构和工作机制 四大模块:•感染模块•触发模块•破坏模块(表现模块)•引导模块(主控模块) 两个状态:•静态•动态图2-1: 病毒程序的生命周期 图2-2: 病毒程序的典型组成示意图 工作机制工作机制图2-3: 病毒的工作机制 引导模块引导模块引导前——寄生•寄生位置:•引导区•可执行文件•寄生手段:•替代法(寄生在引导区中的病毒常用该法)•链接法(寄生在文件中的病毒常用该法)图2-4 替代法 图2-5 链接法引导过程•驻留内存•窃取系统控制权•恢复系统功能引导区病毒引导过程•搬迁系统引导程序-〉替代为病毒引导程序•启动时-〉病毒引导模块-〉加载传染、破坏和触发模块到内存-〉使用常驻技术•最后,转向系统引导程序-〉引导系统文件型病毒引导过程•修改入口指令-〉替代为跳转到病毒模块的指令•执行时-〉跳转到病毒引导模块-〉病毒引导模块-〉加载传染、破坏和触发模块到内存-〉使用常驻技术•最后,转向程序的正常执行指令-〉执行程序感染模块病毒传染的条件•被动传染(静态时)•用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另一个载体上。
或者是通过网络上的信息传递,把一个病毒程序从一方传递到另一方这种传染方式叫做计算机病毒的被动传染 •主动传染(动态时)•以计算机系统的运行以及病毒程序处于激活状态为先决条件在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把病毒自身传染给另一个载体或另一个系统这种传染方式叫做计算机病毒的主动传染 传染过程•系统(程序)运行-〉各种模块进入内存-〉按多种传染方式传染传染方式•立即传染,即病毒在被执行的瞬间,抢在宿主程序开始执行前,立即感染磁盘上的其他程序,然后再执行宿主程序•驻留内存并伺机传染,内存中的病毒检查当前系统环境,在执行一个程序、浏览一个网页时传染磁盘上的程序,驻留在系统内存中的病毒程序在宿主程序运行结束后,仍可活动,直至关闭计算机 文件型病毒传染机理•首先根据病毒自己的特定标识来判断该文件是否已感染了该病毒;•当条件满足时,利用INT 13H将病毒链接到文件的特定部位,并存入磁盘中;•完成传染后,继续监视系统的运行,试图寻找新的攻击目标文件型病毒传染途径•加载执行文件 文件型计算机病毒驻内存后,通过其所截获的INT 21中断检查每一个加载运行可执行文件进行传染。
传染不到那些用户没有使用的文件•浏览目录过程•创建文件过程 破坏模块破坏模块的功能•破坏、破坏、还是破坏……破坏对象•系统数据区、文件、内存、系统运行速度、磁盘、CMOS、主板和网络等破坏的程度触发模块触发条件•计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作或只传染不发作,这个条件就是计算机病毒的触发条件 触发模块的目的是调节病毒的攻击性和潜伏性之间的平衡•大范围的感染行为、频繁的破坏行为可能给用户以重创,但是,它们总是使系统或多或少地出现异常,容易使病毒暴露•而不破坏、不感染又会使病毒失去其特性•可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性病毒常用的触发条件病毒常用的触发条件日期触发时间触发键盘触发感染触发•例如,运行感染文件个数触发、感染序数触发、感染磁盘数触发、感染失败触发等启动触发访问磁盘次数触发CPU型号/主板型号触发二、常见计算机病毒的技术特征 驻留内存驻留内存病毒变种病毒变种EPO((Entry Point Obscuring-隐藏)技术隐藏)技术抗分析技术(加密、反跟踪)抗分析技术(加密、反跟踪)隐蔽性病毒技术隐蔽性病毒技术多态性病毒技术多态性病毒技术 插入型病毒技术插入型病毒技术超级病毒技术超级病毒技术破坏性感染技术破坏性感染技术网络病毒技术网络病毒技术1 驻留内存:DOS TSR(Terminate and Stay Resident, DOS实现多任务的实现多任务的编程方法编程方法)DOS系统区内存控制块(MCB)内存块1为病毒分配的内存块内存块2为病毒分配一块内存高端内存区域视频内存块中断向量表空闲区域病毒代码空闲区域空闲区域空闲区域图2-6 DOS病毒驻留内存位置示意图 已感染了计算机病毒系统的启动过程如下。
1)将Boot区中的计算机病毒代码首先读入内存的0000:7C00处2)计算机病毒将自身全部代码读入内存的某一安全地区、常驻内存,监视系统的运行3)修改INT 13H中断服务处理程序的入口地址,使之指向计算机病毒控制模块并执行之因为任何一种计算机病毒要感染软盘或者硬盘,都离不开对磁盘的读写操作,修改INT 13H中断服务程序的入口地址是一项少不了的操作4)计算机病毒程序全部被读入内存后才读入正常的Boot内容到内存的0000:7C00处,进行正常的启动过程5)计算机病毒程序伺机等待随时准备感染新的系统盘或非系统盘如果发现有可攻击的对象,计算机病毒还要进行下列的工作1)将目标盘的引导扇区读入内存,对该盘进行判别是否传染了计算机病毒2)当满足传染条件时,则将计算机病毒的全部或者一部分写入Boot区,把正常的磁盘的引导区程序写入磁盘特写位置3)返回正常的INT 13H中断服务处理程序,完成对目标盘的传染 1 驻留内存:引导区病毒的内存驻留 大小在1K或者几K为了避免用户可以很容易的觉察到系统可用内存的减少,一些病毒会等待DOS完全启动成功,然后使用DOS自己的功能分配内存不用考虑重载 1 驻留内存:Windows环境下病毒的内存驻留三种驻留内存的方法•由于Windows操作系统本身就是多任务的,所以最简单的内存驻留方法是将病毒作为一个应用程序,病毒拥有自己的窗口(可能是隐藏的)、拥有自己的消息处理函数;•另外一种方法是使用DPMI申请一块系统内存,然后将病毒代码放到这块内存中;•第三种方法是将病毒作为一个VXD(Win3.x或者Win9x环境下的设备驱动程序)或者在Win NT/Win2000下的设备驱动程序WDM加载到内存中运行。
防止重载的方法•传统的防止重入方法•禁止启动两个实例•对于VXD病毒•静态加载时,病毒会在“SYSTEM.INI”文件中包含加载设备驱动程序的一行信息;•动态加载时,可能使用某些英特尔CPU的一些特殊状态位来表示病毒是否存在于内存中(CIH病毒就采用了这种方法) 1 驻留内存:宏病毒的内存驻留方法病毒随着宿主程序而被加载并且一直存在于系统中,所以从某种意义上,宏病毒都是内存驻留病毒宏病毒通过检测自己的特征防止重入2 病毒变种变形变种——〉新品种两种方式:•手工变种•自动变种(Mutation Engine:变形机)•保加利亚Dark Avenger的变形机•VCS(病毒构造工具箱,Virus Construction Set)•GenVir•VCL(病毒制造实验室,Virus Creation Laboratory)•PS-MPC(Phalcon-Skism Mass-Produced Code Generator)•NGVCK(下一代病毒机,Next Generation Virus Creation Kit)•VBS蠕虫孵化器 变种分类变种分类第一类,具备普通病毒所具有的基本特性,然而,病毒每感染一个目标后,其自身代码与前一被感染目标中的病毒代码几乎没有三个连续的字节是相同的,但这些代码及其相对空间的排列位置是不变动的。
这里称其为一维变形病毒第二类,除了具备一维变形病毒的特性外,并且那些变化的代码相互间的排列距离(相对空间位置)也是变化的,有的感染文件的字节数不定这里称其为二维变形病毒第三类,具备二维变形病毒的特性,并且能分裂后分别潜藏在几处,随便某一处的子病毒被激发后都能自我恢复成一个完整的病毒病毒在附着体上的空间位置是变化的,即潜藏的位置不定例如,在某台机器中,病毒的一部分可能藏在机器硬盘的主引导区中,另外几部分也可能潜藏在可执行文件中,也可能潜藏在覆盖文件中,也可能潜藏在系统引导区,也可能另开垦一块区域潜藏等等在另一台被感染的机器内,病毒可能又改变了其潜藏的位置这里称其为三维变形病毒第四类,具备三维变形病毒的特性,并且,这些特性随时间动态变化例如,在染毒的机器中,刚开机时病毒在内存里变化为一个样子,一段时间后又变成了另一个样子,再次开机后病毒在内存里又是一个不同的样子这里称其为四维变形病毒3 EPO(Entry Point Obscuring)技术为什么要采用EPO技术呢?•杀毒技术提高 ---〉 防止被发现 ---〉 EPO实现方法:•最早的EPO通过改变程序入口处的代码实现的简单但无用•把宿主程序的任意位置的指令替换为跳转语句。
难点在于定位一个完整的指令(类似于一个反编译器)如果在一段代码中有一条指令:228738fd ff15eb0f107d call [7d100febh] 把它替换成新的指令Call [Address of virus] 在病毒体内还要再次调用Call [7d100febh]来完成宿主程序的功能代码如下: dw ff15h ;ff15eb0f107d的前缀 backaddr dd 0 ;存放ff15eb0f107d的后缀,这个后缀是变化的在病毒代码中,把backaddr的值动态的改为Call [7d100febh]指令编译后的后缀4 抗分析技术加密技术:这是一种防止静态分析的技术,使得分析者无法在不执行病毒的情况下,阅读加密过的病毒程序反跟踪技术:使得分析者无法动态跟踪病毒程序的运行4 抗分析技术:自加密技术数据加密(信息加密)•例如:文件型病毒6.4就是这样处理的,计算机病毒发作时将在屏幕上显示的字符串被用异或操作的方式加密存储•1575 病毒加密数据文件加密文件名COMMAND.COM病毒代码加密•Chinese Bomb把宿主程序前6个字节加密并转移位置。
•1701/1704用宿主程序的长度作为密钥加密代码4 抗分析技术:反跟踪技术DOS下,修改int 0-3中断•Int 0:除零中断•Int 1:单步中断,用于程序调试•Int 2:不可屏蔽中断NMI•Int 3:断点中断,用于程序调试Windows下:•封锁键盘输入•关闭屏幕显示•修改堆栈指令•程序运行计时•动态地生成指令代码5 隐蔽性病毒技术引导型隐藏方法一•感染时,修改中断服务程序•使用时,截获INT 13调用DOS应用程序原来的INT13H服务程序DOS下的杀毒软件病毒感染后的INT13H服务程序普通扇区普通扇区被病毒感染的扇区被病毒感染的扇区的原始扇区读扇区调用读请求读请求返回数据返回数据返回数据引导型隐藏方法二•针对杀毒软件对磁盘直接读写的特点•截获 INT 21H,然后恢复感染区•最后,再进行感染DOS命令解释程序(COMMAND..COM)感染后的INT 21H功能40H(加载一个程序执行)用户敲入AV.EXE 执行反病毒程序恢复被病毒感染的扇区为原来的内容原来的INT21H功能重新感染扇区返回DOS命令解释程序(COMMAND..COM)文件型病毒的隐藏技术拦截(API, INT调用)访问 ——〉 恢复 ——〉再感染。
例如,改变文件大小病毒, dir病毒等DOS INT21H调用INT13H(直接磁盘访问)列目录功能(FindFirst、FindNext)读写功能(Read、Write)执行功能(EXEC)其他功能(rename等)视窗操作系统下,支持长文件名的扩展DOS调用隐藏病毒扇区列目录时显示感染前的文件大小读写文件看到正常的文件内容执行或者搜索时隐藏病毒在支持长文件名的系统隐藏自身宏病毒的隐藏技术删除相关的菜单项:“文件->模板”或者“工具->宏” 使用宏病毒自己的FileTemplates和ToolsMacro宏替代系统缺省的宏6 多态性病毒技术多态病毒就是没有特殊特征码的病毒,这种病毒无法(或极难)用特征码扫描法检测到方法:•使用不固定的密钥或者随机数加密病毒代码•运行的过程中改变病毒代码•通过一些奇怪的指令序列实现多态性BASIC,Shell等解释性语言可以在一行包括很多语句改变可执行代码技术的多态病毒基本上都使用在宏病毒中,其他病毒少见•宏语言都是以BASIC为基础的引导型病毒•在引导区或者分区表中,包含了一小段代码来加载实际的病毒代码,这段代码在运行的过程中是可以改变的文件型病毒•“厚度”(Ply)病毒•“TMC”病毒多态病毒的级别多态病毒的级别半多态:半多态:病毒拥有一组解密算法,感染的时候从中间随机的选择一种算法进行加密和感染。
具有不动点的多态:具有不动点的多态:病毒有一条或者几条语句是不变的(我们把这些不变的语句叫做不动点),其他病毒指令都是可变的带有填充物的多态:带有填充物的多态:解密代码中包含一些没有实际用途的代码来干扰分析者的视线算法固定的多态:算法固定的多态:解密代码所使用的算法是固定的,但是实现这个算法的指令和指令的次序是可变的算法可变的多态:算法可变的多态:使用了上述所有的技术,同时解密算法也是可以部分或者全部改变的完全多态:完全多态:算法多态,同时病毒体可以随机的分布在感染文件的各个位置,但是在运行的时候能够进行拼装,并且可以正常工作查杀技术查杀技术对于前面3种多态病毒,可以使用病毒特征码或者改进后的病毒特征码对于第4种多态病毒,可以增加多种情况的改进后的特征码至于第5和第6种多态病毒,依靠传统的特征码技术是完全无能为力的最好的办法是虚拟执行技术 7 超级病毒技术超级病毒技术就是在计算机病毒进行感染、破坏时,使得病毒预防工具无法获得运行机会的病毒技术技术较难实现和杀毒技术相比,具有时效性8 破坏性感染技术破坏性感染病毒是针对计算机病毒消除技术的一项病毒技术实例:•Burge病毒是这类病毒的典型代表,该病毒会使宿主文件头部丢失560字节;•Hahaha病毒会使宿主程序丢失13592字节。
传播性差 --〉破坏面小•在潜伏期长的情况下,其传播性可以有所改观9 网络病毒技术网络病毒是指以网络为平台,对计算机产生安全威胁的所有程序的总和.常见的几种:•木马(木马(Trojan))•蠕虫(蠕虫(Worm)) •邮件病毒邮件病毒•恶意网页恶意网页Any Questions?Thank You!。












