《软件安全》复习课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件安全》复习课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件安全 软件 安全 复习 课件
- 资源描述:
-
1、1软件安全软件安全题型:题型:选择题(选择题(10*2分分=20分)分)填空题(填空题(6*3分分=18分)分)判断题(判断题(11*2分分=22分)分)简答计算题(简答计算题(4-5小题,共小题,共40分)分)2信息的表现形式o 信息可以以多种形式表现:n 打印或书写在纸上,n 以电子数据的方式存储,n 或以胶片形式显示或者通过交谈表达出来等。3安全(Safety vs Security)o Safetyn 自然的,物理的,相对具体的n 如房屋、桥梁、大坝o Securityn 社会的,人为的,相对抽象的n 如食品、软件4我们愿意保护我们的信息吗?o 该信息的价值有多大?o 可能面临哪些风险
2、?o 为保护该信息需要付出多少成本?o 在什么情况下愿意采取安全措施?n认识到的价值*认识到的风险认识到的成本?p 是否应该采取安全措施?n真实价值*真实风险真实成本?系统引导与控制权o 系统引导与恶意软件有何关系?5计算机系统引导过程主板BIOS系统进行硬件自检硬盘主引导程序(MBR)活动分区引导程序(DBR)操作系统引导(如NTLDR)操作系统内核启动驱动程序及服务系统自启动程序6系统引导与恶意软件的关联o 系统引导与恶意软件有何关系?系统引导与恶意软件有何关系?n 恶意软件在植入系统之后,如何再次获得控制权?恶意软件在植入系统之后,如何再次获得控制权?o 在在计算机系统引导阶段计算机系统
3、引导阶段获得控制权获得控制权nBootkit:BIOS木马、木马、MBR木马等,可用于长期驻留木马等,可用于长期驻留在系统;早期的在系统;早期的DOS引导区病毒等。引导区病毒等。nCIH病毒病毒o 在在操作系统启动阶段操作系统启动阶段获得控制权获得控制权n最常见的恶意软件启动方法,多见于独立的恶意软件程序。最常见的恶意软件启动方法,多见于独立的恶意软件程序。o 在在应用程序执行阶段应用程序执行阶段获得控制权获得控制权n最常见的文件感染型病毒启动方法。最常见的文件感染型病毒启动方法。7实模式实模式REALPROTECTED保护模式保护模式VIRTUAL虚拟虚拟8086CR0的的PE位位 置置1C
4、R0的的PE位位 置置0通通过过中中断断执行执行IRETD指令指令RESET信号信号RESET对对CPU复位复位Intel80X86处理器三种工作模式关系:处理器三种工作模式关系:实模式、保护模式和虚拟实模式、保护模式和虚拟86模式模式8FAT32文件系统结构引导扇区数据存储区(以簇为单位,每簇包含多个扇区,以簇号进行标示)FAT(File Allocation Table,文件分配表)FAT1+FAT2两个功能:1.记录数据存储区每一个簇的使用情况(是否被使用,或坏簇);2.形成每个文件的簇链表描述分区属性:1.分区大小;2.簇的大小3.FAT表个数与大小4.分区引导程序等功能:存储两类数据
5、目录项(目录和文件的属性信息,如文件名,大小,文件存储首簇号,时间等)-文件档案文件数据9文件的存储文件的存储操作示意图操作示意图引导扇区数据存储区FAT1.按照文件大小定位足够的空闲簇2.创建文件目录项(32+Bytes)3.在FAT中构建簇链表4.在对应分配的簇中写入数据10目录项的含义后缀名:INF文件名:AUTORUN文件属性首簇高16位首簇低16位文件更新日期及时间文件访问日期文件创建时间文件创建日期文件大小保留FAT32中,目录也被当作文件进行处理。如果是长文件名,则目录项向上继续扩展。11文件创建实例首簇高16位首簇低16位文件大小首簇号:000A08DE(657630)文件大小
6、:D488(54408字节,占14簇,每簇4096字节)12文件删除实例(AUTORUN.INF)-目录项的变化文件被删除后目录项的变化删除前2.首簇高位被清零13文件删除实例(AUTORUN.INF)-簇链表变化文件被删除后FAT表的变化:簇链表已被清空删除前删除后14文件删除实例(AUTORUN.INF)-文件内容无变化152.5.3被删除文件的恢复机理差异差异o 目录项:n文件名首字节被修改为E5n首簇高位被清零o FAT表簇链:n被全部清空o 文件内容:n无变化可否恢复?可否恢复?o 目录项n 文件名首位是否可还原?n 如何确定高位?o FAT表簇链如何修复?n 连续存储(默认)n 总
7、簇数(文件大小)162.5.3被删除文件的恢复机理o 还原文件名首字节n长文件名:直接逆向定位完整文件名。o 确定高位并还原n参考相邻目录项的首簇高位n从0往上试探,看首簇指向内容是否为预期文件头部o 修复FAT表簇链n通过文件大小计算所占簇数n按照连续存储假设,进行簇链修补,其中末簇FAT项用0FFFFFFF结尾。17PE文件格式查看工具文件格式查看工具1-PEViewo PEView:可按照:可按照PE文件格式文件格式对目标文件对目标文件的各字段的各字段进行详细解析。进行详细解析。18PE文件格式查看工具文件格式查看工具2-Stud_PEo Stud_PE:可按照:可按照PE文件格式文件格
8、式对目标文件对目标文件的各字段的各字段进行详细解析。进行详细解析。19PE程序调试工具程序调试工具-Ollydbgo Ollydbg:可跟踪目标程序的执行过程,:可跟踪目标程序的执行过程,属于用户态调试工具。属于用户态调试工具。2016进制文件编辑工具进制文件编辑工具-UltraEdito UltraEdit:可对目标文件进行:可对目标文件进行16进制查进制查看和修改。看和修改。213 PE文件格式总体结构文件格式总体结构1.DOS MZ header2.DOS stub3.PE header4.Section table5-1 Section 15-2 Section 2Section.5.
9、3 Section n223C处的值:处的值:000000B0指向指向PE文件头开始位置文件头开始位置231)字串)字串“PE00”o Signature 一一dword类型,值为类型,值为50h,45h,00h,00h(PE00)。)。n 本域为本域为PE标记,标记,可以此识别给定文件是否为有效可以此识别给定文件是否为有效PE文件文件。PE00242)映像文件头(映像文件头(0 x14)o 该结构域包含了关于该结构域包含了关于PE文件物理分布的信文件物理分布的信息,息,比如比如节数目节数目、后续、后续可选文件头大小可选文件头大小、机器类型机器类型等。等。3个节X86可选文件头大小253)可选
10、文件头)可选文件头o定义了定义了PE文件的很多关键信息文件的很多关键信息o内存镜像加载地址(内存镜像加载地址(ImageBase)o程序入口点(代码从哪里开始执行?程序入口点(代码从哪里开始执行?)o节在文件和内存中的对齐粒度节在文件和内存中的对齐粒度o本程序在内存中的镜像大小、文件头大小等本程序在内存中的镜像大小、文件头大小等26oImageBase:nPE文件在内存中的优先装载地址。文件在内存中的优先装载地址。oRVA地址:地址:nRelative Virtual Address,相对虚拟地址,它是相对内存中,相对虚拟地址,它是相对内存中ImageBase的偏移位置。的偏移位置。几个概念几
11、个概念-127几个概念几个概念-2o对齐粒度对齐粒度n比喻:桶的容量为比喻:桶的容量为100升,现有升,现有367升水,请问需要使用多少个桶?升水,请问需要使用多少个桶?o问题:代码节的代码实际长度为问题:代码节的代码实际长度为0 x46字节字节n文件中节对齐粒度为文件中节对齐粒度为0 x200,n内存中节对齐粒度为内存中节对齐粒度为0 x1000字节,字节,请问代码节在文件和内存中分别占用多少字节?请问代码节在文件和内存中分别占用多少字节?n为什么为什么PE文件中有很多文件中有很多“00”字节?字节?28可选文件头中的一些关键字段名字描述Address Of Entry Point *(位置
12、(位置D8H,4字节)字节)PE装载器准备运行的PE文件的第一条指令的RVA。(病毒感染中通用关键字段)(病毒感染中通用关键字段)Image Base(位置:(位置:E4H,4字节)字节)PE文件的优先装载地址。比如,如果该值是400000h,PE装载器将尝试把文件装到虚拟地址空间的400000h处。Section Alignment(位置:(位置:E8H,4字节)字节)内存中节对齐的粒度。File Alignment(位置:(位置:ECH,4字节)字节)文件中节对齐的粒度。29第一条指令在内存中的地址是多少?401000H=400000H+1000H30Directory16项8字节315.
13、1 IMPORT Directory Tableo 如何从如何从PE文件定位到引入目录表(文件定位到引入目录表(IDT)的起始位置?的起始位置?n PE可选文件头的可选文件头的DataDirectory。325.4 IAT(IMPORT Address Table)o 引入地址表:引入地址表:DWORD数组数组可通过可选文件头中的可通过可选文件头中的DataDirectory的第的第13项定位项定位n在文件中时,其内容与在文件中时,其内容与Import Name Table完全一样。完全一样。n在内存中时,每个双字中存放着对应引入函数的地址。在内存中时,每个双字中存放着对应引入函数的地址。33
14、为何需要导出序号表?o 导出函数名字和导出地址表中的地址导出函数名字和导出地址表中的地址不是一不是一一对应一对应关系。关系。o 为什么?为什么?n 一个函数实现可能有多个名字;一个函数实现可能有多个名字;n 某些函数没有名字,仅通过序号导出。某些函数没有名字,仅通过序号导出。34堆栈堆栈溢出的溢出的示意图示意图 可以直观的见到可以直观的见到,写入内存的数据大于我们分配的长写入内存的数据大于我们分配的长度度,导致临近的内存数据被覆盖导致临近的内存数据被覆盖,如果精心准备覆盖到程序如果精心准备覆盖到程序返回指针的数据返回指针的数据,程序的进程可能就会被攻击者所控制程序的进程可能就会被攻击者所控制.
15、35364.1.2.2 栈溢出的利用栈溢出的利用p 根据被覆盖的数据位置和所要实现的目的不同,根据被覆盖的数据位置和所要实现的目的不同,分为以下三种:分为以下三种:修改邻接变量修改邻接变量 修改函数返回地址修改函数返回地址 S.E.H.S.E.H.结构覆盖结构覆盖374.1.2.2 修改邻接变量修改邻接变量 由于函数的由于函数的局部变量局部变量是依次存储在栈帧是依次存储在栈帧上的,因此如果这些局部变量中有上的,因此如果这些局部变量中有数组数组之类的缓冲区之类的缓冲区,并且程序中存在,并且程序中存在数组越数组越界缺陷界缺陷,那么数组越界后就有可能,那么数组越界后就有可能破坏破坏栈中相邻变量的值,
16、甚至破坏栈帧中所栈中相邻变量的值,甚至破坏栈帧中所保存的保存的EBPEBP、返回地址等重要数据、返回地址等重要数据。384.1.2.2 修改邻接变量修改邻接变量p 观察如图观察如图4-44-4所示程序源代所示程序源代码,当代码执行到码,当代码执行到intint verify_passwordverify_password(char(char*password)password)时,栈帧状态时,栈帧状态如右图所示如右图所示。p 当输入口令超过当输入口令超过7 7个字符,个字符,越界字符越界字符ASCIIASCII码会修改掉码会修改掉authenticatedauthenticated的值,进而的
展开阅读全文