《软件安全》复习课件_第1页
《软件安全》复习课件_第2页
《软件安全》复习课件_第3页
《软件安全》复习课件_第4页
《软件安全》复习课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件安全题型: 选择题(10*2分=20分) 填空题(6*3分=18分) 判断题(11*2分=22分) 简答计算题(4-5小题,共40分) 2信息的表现形式信息可以以多种形式表现:打印或书写在纸上,以电子数据的方式存储,或以胶片形式显示或者通过交谈表达出来等。3安全(Safety vs Security)Safety自然的,物理的,相对具体的如房屋、桥梁、大坝Security社会的,人为的,相对抽象的如食品、软件4我们愿意保护我们的信息吗?该信息的价值有多大?可能面临哪些风险?为保护该信息需要付出多少成本?在什么情况下愿意采取安全措施?认识到的价值*认识到的风险认识到的成本?是否应该采取安全

2、措施?真实价值*真实风险真实成本?系统引导与控制权系统引导与恶意软件有何关系?恶意软件如何再次获得控制权?自身被结束之后操作系统重启之后操作系统重装之后硬盘更换之后。5计算机系统引导过程主板BIOS系统进行硬件自检硬盘主引导程序(MBR)活动分区引导程序(DBR)操作系统引导(如NTLDR)操作系统内核启动驱动程序及服务系统自启动程序6系统引导与恶意软件的关联系统引导与恶意软件有何关系?恶意软件在植入系统之后,如何再次获得控制权?在计算机系统引导阶段获得控制权Bootkit:BIOS木马、MBR木马等,可用于长期驻留在系统;早期的DOS引导区病毒等。CIH病毒在操作系统启动阶段获得控制权最常见

3、的恶意软件启动方法,多见于独立的恶意软件程序。在应用程序执行阶段获得控制权最常见的文件感染型病毒启动方法。7实模式REALPROTECTED保护模式VIRTUAL虚拟8086CR0的PE位 置1CR0的PE位 置0通过中断执行IRETD指令RESET信号RESET对CPU复位Intel80X86处理器三种工作模式关系: 实模式、保护模式和虚拟86模式8FAT32文件系统结构引导扇区数据存储区(以簇为单位,每簇包含多个扇区,以簇号进行标示) FAT(File Allocation Table,文件分配表)FAT1+FAT2两个功能:1.记录数据存储区每一个簇的使用情况(是否被使用,或坏簇);2.

4、形成每个文件的簇链表描述分区属性:1.分区大小 ;2.簇的大小3.FAT表个数与大小4.分区引导程序等功能:存储两类数据目录项(目录和文件的属性信息,如文件名,大小,文件存储首簇号,时间等)-文件档案文件数据9文件的存储操作示意图引导扇区数据存储区FAT按照文件大小定位足够的空闲簇2.创建文件目录项(32+Bytes)3.在FAT中构建簇链表4.在对应分配的簇中写入数据10目录项的含义后缀名:INF文件名:AUTORUN文件属性首簇高16位首簇低16位文件更新日期及时间文件访问日期文件创建时间文件创建日期文件大小保留FAT32中,目录也被当作文件进行处理。如果是长文件名,则目录项向上继续扩展。

5、11文件创建实例首簇高16位首簇低16位文件大小首簇号:000A08DE(657630)文件大小:D488(54408字节,占14簇,每簇4096字节)12文件删除实例(AUTORUN.INF)-目录项的变化文件被删除后目录项的变化删除前2.首簇高位被清零13文件删除实例(AUTORUN.INF)-簇链表变化文件被删除后FAT表的变化:簇链表已被清空删除前删除后14文件删除实例(AUTORUN.INF)-文件内容无变化152.5.3被删除文件的恢复机理差异目录项:文件名首字节被修改为E5首簇高位被清零FAT表簇链:被全部清空文件内容:无变化可否恢复?目录项文件名首位是否可还原?如何确定高位?F

6、AT表簇链如何修复?连续存储(默认)总簇数(文件大小 )162.5.3被删除文件的恢复机理还原文件名首字节长文件名:直接逆向定位完整文件名。确定高位并还原参考相邻目录项的首簇高位从0往上试探,看首簇指向内容是否为预期文件头部修复FAT表簇链通过文件大小计算所占簇数按照连续存储假设,进行簇链修补,其中末簇FAT项用0FFFFFFF结尾。17PE文件格式查看工具1-PEViewPEView:可按照PE文件格式对目标文件的各字段进行详细解析。18PE文件格式查看工具2-Stud_PEStud_PE:可按照PE文件格式对目标文件的各字段进行详细解析。19PE程序调试工具-OllydbgOllydbg:

7、可跟踪目标程序的执行过程,属于用户态调试工具。2016进制文件编辑工具-UltraEditUltraEdit:可对目标文件进行16进制查看和修改。213 PE文件格式总体结构1.DOS MZ header2.DOS stub3.PE header4.Section table5-1 Section 15-2 Section 2Section .5.3 Section n223C处的值:000000B0指向PE文件头开始位置231)字串 “PE00”Signature 一dword类型,值为50h, 45h, 00h, 00h(PE00)。 本域为PE标记,可以此识别给定文件是否为有效PE文件。

8、PE00242) 映像文件头(0 x14)该结构域包含了关于PE文件物理分布的信息, 比如节数目、后续可选文件头大小、机器类型等。3个节X86可选文件头大小253)可选文件头定义了PE文件的很多关键信息内存镜像加载地址(ImageBase)程序入口点(代码从哪里开始执行?)节在文件和内存中的对齐粒度本程序在内存中的镜像大小、文件头大小等26ImageBase:PE文件在内存中的优先装载地址。 RVA地址:Relative Virtual Address,相对虚拟地址,它是相对内存中ImageBase的偏移位置。几个概念-127几个概念-2对齐粒度比喻:桶的容量为100升,现有367升水,请问需

9、要使用多少个桶?问题:代码节的代码实际长度为0 x46字节文件中节对齐粒度为0 x200,内存中节对齐粒度为0 x1000字节,请问代码节在文件和内存中分别占用多少字节?为什么PE文件中有很多“00”字节?28可选文件头中的一些关键字段名字描述Address Of Entry Point *(位置D8H,4字节)PE装载器准备运行的PE文件的第一条指令的RVA。(病毒感染中通用关键字段)Image Base(位置:E4H,4字节)PE文件的优先装载地址。比如,如果该值是400000h,PE装载器将尝试把文件装到虚拟地址空间的400000h处。Section Alignment(位置:E8H,4

10、字节)内存中节对齐的粒度。File Alignment(位置:ECH,4字节)文件中节对齐的粒度。29第一条指令在内存中的地址是多少?401000H=400000H+1000H30Directory16项8字节315.1 IMPORT Directory Table如何从PE文件定位到引入目录表(IDT)的起始位置?PE可选文件头的DataDirectory。325.4 IAT( IMPORT Address Table)引入地址表:DWORD数组可通过可选文件头中的DataDirectory的第13项定位在文件中时,其内容与Import Name Table完全一样。在内存中时,每个双字中存

11、放着对应引入函数的地址。33为何需要导出序号表?导出函数名字和导出地址表中的地址不是一一对应关系。为什么?一个函数实现可能有多个名字;某些函数没有名字,仅通过序号导出。34堆栈溢出的示意图 可以直观的见到,写入内存的数据大于我们分配的长度,导致临近的内存数据被覆盖,如果精心准备覆盖到程序返回指针的数据,程序的进程可能就会被攻击者所控制.35364.1.2.2 栈溢出的利用根据被覆盖的数据位置和所要实现的目的不同,分为以下三种:修改邻接变量修改函数返回地址S.E.H.结构覆盖374.1.2.2 修改邻接变量由于函数的局部变量是依次存储在栈帧上的,因此如果这些局部变量中有数组之类的缓冲区,并且程序

12、中存在数组越界缺陷,那么数组越界后就有可能破坏栈中相邻变量的值,甚至破坏栈帧中所保存的EBP、返回地址等重要数据。384.1.2.2 修改邻接变量观察如图4-4所示程序源代码,当代码执行到int verify_password(char *password)时,栈帧状态如右图所示。当输入口令超过7个字符,越界字符ASCII码会修改掉authenticated的值,进而绕过密码验证程序。程序在内存中的映像文本(代码)段数据段堆栈段内存低地址内存高地址内存递增方向初始化数据段非初始化数据段(BSS)堆(Heap)栈(stack)堆的增长方向栈的增长方向内核数据代码0 x800000000 x7FF

13、FFFFFPEB&TEB系统DLL代码段39404.1.3.1 堆的结构堆块空闲态:堆块被链入空链表中,由系统管理。占有态:堆块会返回一个由程序员定义的句柄,由程序员管理。414.1.3.1 堆的结构空闲堆块比占有堆块多出了两个4字节的指针,这两个指针用于链接系统中的其他空闲堆块。424.1.3.1 堆的结构空表空闲堆块的块首中包含一对重要的指针,这对指针用于将空闲堆块组织成双向链表。根据大小不同,空表总共被分成128条434.1.3.1 堆的结构空表堆表区中有一个128项的数组,称作空表索引(每项包含两个指针,标识一条空表)空闲堆块的大小=索引项8(字节)444.1.3.2 堆溢出的利用堆溢

14、出利用的精髓 用精心构造的数据去溢出覆盖下一个堆块的块首,使其改写块首中的前向指针(flink)和后向指针(blink),然后在分配、释放、合并等操作发生时伺机获得一次向内存任意地址写入任意数据的机会(Arbitrary Dword Reset,又称Dword Shoot)。通过这个机会,可以控制设计的目标(任意地址),选择适当的目标数据,从而劫持进程,运行shellcode。454.1.3.2 堆溢出的利用举例:如何通过节点的拆卸产生Dword Shoot 拆卸节点node时发生如下操作: node-blink-flink=node-flink; node-flink-blink=node-

15、blink; 当精心构造的数据淹没前向指针和后向指针时,如果在flink放入4字节的任意恶意数据内容,在blink放入目标地址,当执行以上操作时,导致目标地址的内容被修改为该4字节的恶意数据。464.1.3.2 堆溢出的利用举例:如何通过节点的拆卸产生Dword Shoot PE型病毒-传统文件感染型关键技术重定位病毒代码目标寄生位置不固定API函数自获取需要使用的API函数但无引入函数节支撑47PE型病毒-传统文件感染型关键技术目标程序遍历搜索全盘查找,或者部分盘符查找感染模块病毒代码插入位置选择与写入控制权返回机制48病毒代码植入HOST文件后的位置差异49解决方法重定位本质:修正实际地址

16、与预期地址的差异解决方案:根据HOST特征逐一硬编码繁琐,未必准确病毒代码运行过程中自我重定位50常见的重定位方法之一(ebp-offset delta)Call语句功能:将下一条语句开始位置压入堆栈JMP 到目标地址执行51(2)API函数地址自获取如何获取API函数地址?DLL文件的引出函数节kernel32.dll:GetProcAddress和LoadLibraryA52文件感染感染的关键病毒代码能够得到运行选择合适的位置放入病毒代码(已有节,新增节)将控制权交给病毒代码修改程序入口点:Address of Entry Point或者在原目标代码执行过程中运行病毒代码(EPO技术,En

17、tryPoint Obscuring)程序的正常功能不能被破坏感染时,记录原始“程序控制点位置”病毒代码执行完毕之后,返回控制权避免重复感染:感染标记53宏病毒如何获得控制权 利用如下自动执行宏,将病毒代码写在如下宏中,由于这些宏会自动执行,因此获取控制权。自动宏功能演示54宏病毒的感染 在Word和其他微软Office系列办公软件中,宏分为两种。内建宏:位于文档中,对该文档有效,如文档打开(AutoOpen)、保存、打印、关闭等。全局宏:位于office模板中,为所有文档所共用,如打开Word程序(AutoExec)。宏病毒的传播路线:单机:单个Office文档Office文档模板多个Off

18、ice文档网络:电子邮件居多55网络蠕虫基本功能四个主要模块:信息收集:主要完成对本地和目标节点主机的信息汇集;扫描探测:发现易感染主机群体;攻击渗透:利用已发现的服务漏洞实施攻击控制权获取;自我推进:完成对目标节点的感染蠕虫主体程序传输。56木马的通信方式传输通道构建信息IP地址、端口等信息、第三方网站地址建立通信连接的方式正向连接反向连接57正向连接正向连接防火墙拦截控制端主动连接被控端58反向连接反向连接59远控木马的常见功能与意图1.木马结构完整的木马一般由木马配置程序、控制端程序(客户端)和被控制端程序(服务端程序)等三部分组成。60 恶意代码检测对象与策略恶意代码的检测是将检测对象

19、与恶意代码特征(检测标准)进行对比分析,定位病毒程序或代码,或检测恶意行为。检测对象主要包括:引导扇区文件系统中可能带毒的文件内存空间主板BIOS等(网络流量、系统行为等)61 特征值检测技术 病毒特征值是反病毒软件鉴别特定计算机病毒的一种标志。通常是从病毒样本中提取的一段或多段字符串或二进制串。具体思路:获取样本-提取样本特征-更新病毒库-查杀病毒62校验和检测技术预期符合性校验和检测技术:在文件使用/系统启动过程中,检查检测对象的实际校验和与预期是否一致,因而可以发现文件/引导区是否感染。预期:正常文件内容和正常引导扇区数据静态可信:可信计算机对主引导扇区和一些系统关键程序进行了校验,从而保障系统启动之后的初始安全。63 启发式扫描技术经验和知识:专业反病毒技术人员使用反汇编、调试或沙箱工具稍加分析,就可能判定出某程序是否染毒,为什么?启发式代码扫描技术(Heuristic Scanning)实际上就是恶意代码检测经验和知识的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论