信息系统应用安全(张爱芳)第5章 软件安全.pptVIP

信息系统应用安全(张爱芳)第5章 软件安全.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主要内容 软件安全危机 软件缺陷与漏洞 缓冲区溢出漏洞分析 Web安全 5.1 软件漏洞与缺陷 软件安全(Software Security)——使软件在受到恶意攻击的情形下依然能够继续正确运行的工程化软件思想。 软件的安全隐患存在于软件设计、发行和使用的各个环节,既存在自身的安全缺陷和漏洞,也存在外部的恶意攻击危险。 5.1 软件漏洞与缺陷 软件缺陷与软件漏洞: 所有的漏洞都是可以利用的,但并不是所有的软件缺陷都是可以利用的。如果一个软件漏洞是不可利用的,就不是真正的漏洞,而仅是简单的软件缺陷。 有些软件缺陷有时能在一个平台或架构上被利用,而在其他的平台或架构上确无法被利用。例如,一个重要的Apach软件缺陷能在WIN32和BSD系统上被利用,而不能在Linux系统上被利用。 软件安全危机 以往人们印象中windows系统经常爆出漏洞,但从2007年开始,百度搜霸、暴风影音、realplayer等流行软件的漏洞开始成为计算机病毒广为利用的新对象,2008年新出现的网页木马中利用百度搜霸漏洞的占据总体比例的39%。 随着软件公司不断改善操作系统的安全性,目前第三方应用软件已成为恶意软件的主要攻击目标,2008年下半年发现的漏洞中有90%涉及到应用软件。 根据软件厂商统计的漏洞数据,80%以上的新安全缺陷都发生在网络应用中。 可见,对于非服务器应用软件攻击的增加由来已久。 安全漏洞出现的原因  小作坊式的软件开发 赶进度带来的弊端 被轻视的软件安全测试 淡薄的安全思想 不完善的安全维护  5.2 溢出漏洞 5.2.1 缓冲区溢出漏洞 缓冲区——用户为程序运行时在计算机中申请的一段连续内存,它保存了给定类型的数据。 缓冲区溢出——在向缓冲区写入数据时,由于没有做边界检查,导致写入缓冲区的数据超过预先分配的边界,从而使溢出数据覆盖在合法数据上而引起系统异常的一种现象。 缓冲区溢出包括堆栈溢出和堆溢出等。 缓冲区溢出漏洞 缓冲区溢出漏洞攻击占远程网络攻击的80%。 缓冲区溢出攻击成为恶意代码从被动式传播转为主动式传播的主要途径。 例如,“红色代码”利用IIS Server 上Indexing Service 的缓冲区溢出漏洞完成攻击、传播和破坏等恶意目的。“尼姆达蠕虫”利用IIS 4.0/5.0 Directory Traversal 的弱点,以及红色代码II 所留下的后门,完成其传播过程。 缓冲区溢出漏洞 缓冲区溢出包括堆栈溢出和堆溢出,格式化字符串等。 堆栈溢出:发生堆栈溢出时,返回地址将被覆盖,从而允许任意代码运行。最常见的可利用漏洞就是堆栈溢出。字符串函数(strcpy,strcat等)是在代码中寻找堆栈溢出的共同出发点。 堆溢出(堆腐烂缺陷):在堆栈上缓冲区溢出时,数据经常溢出到其它的缓冲区,而在堆上,数据则溢出到内存上,不管这些内存是否重要、可用或可利用。利用困难! 格式化字符串缺陷:通常在参数数量可变的函数中使用,如printf、fprintf和syslog等函数,用于数据输出时对数据进行格式控制。如果没有被明确定义,用户又可以给函数输入数据,就可能是一个缓冲区被处理而得到对程序的控制。 缓冲区溢出 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行,但不管什么样的操作系统、什么样的计算机架构,进程使用的内存都可以按照功能分为下面4个部分: (1) 代码段:存储着执行程序的二进制机器代码,计算机会到这个区域取指令并执行。 (2) 数据段:用于存储全局变量、静态变量等数据。 (3) 堆区:进程可以在通过malloc等函数动态地在堆区申请一定大小的内存,并在用完之后释放内存。 (4)堆栈区:用于动态地存储函数之间的调用关系,以保证被调用的函数在返回时恢复到母函数中继续执行。函数调用时的参数和局部变量都保存在堆栈中。由系统自动分配。 例如,在函数中声明一个局部变量 int b; 系统自动在栈中为b开辟空间。 堆栈溢出原理 在Windows下,栈是一块连续的内存区域。即栈顶的地址和栈的最大容量是系统预先规定好的,是一个编译时就确定的常数,如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 栈是向低地址扩展的数据结构,即堆栈是由高端地址向下增长的。即当一个信息被压栈时,ESP减少(ESP

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档