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