网络安全课程设计课案.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络安全课程设计课案

《网络安全》期末考试(课程设计总结)设计名称基于缓冲区溢出的漏洞研究姓名廖鑫指导教师师晶晶班级2014级计本班成绩2016年 12 月摘要: 缓冲区溢出攻击是网络攻击事件中最常用的一种攻击方式,成为系统和网络安全中函待解决的重要问题在分析缓冲区溢出攻击原理的基础上,说明了攻击的成因,然后描述了目前常见的攻击类型,最后给出了应如何做出防范措施,以及处理该漏洞的解决方案。关键词:缓冲区溢出攻击;系统安全;边界检查目录第一章 引言1第二章 攻击原理及危害2第三章 造成攻击的技术原因33.1缺少必要的边界检查 33.2操作系统设计策略上的隐患 3第四章 攻击类型34.1基于堆栈的缓冲区溢出攻击 34.2基于堆的缓冲区溢出攻击 44.3基于LB库的缓冲区溢出攻击 9第五章 防范措施105.1安全编码 105.2非可执行的缓冲区 105.3数组边界检查 105.4加强对返回地址的保护115.5了解系统常见进程 115.6及时打补丁或升级 115.7从系统级和编译器两个方而来加强对内存空间的管理 11第六章结论12参考文献12第一章引言自从缓冲区溢出漏洞被发现以来,缓冲区溢出攻击一直是网络攻击事件中用得最多的一种攻击方式,成为系统和网络安全中履待解决的重要问题。早在1988年,美国康奈尔大学计算机科学系研究生莫里斯就利用UNIX Fingered不限输入长度等漏洞感染了互联网中的数万台机器;2003年8月席卷全球的“冲击波(Woim. MSBlast) 和2004年5月出现的“震荡波(Woim Sasser) [1]分别利用了Windows系统RPC DCOM和LSA SS服务的缓冲区溢出漏洞进行攻击。2016年9 月份中国国家信息安全漏洞库[2]发布的漏洞类型分布如图1所示,缓冲区溢出类漏洞数量大幅度上升,达到 122 个,是上月数量(62 个)的近 2 倍,占10月 漏洞总量的 17.38%,排名第一。从中国国家信息安全漏洞库公布的统计数据中可以看出,无论是在绝对数量上还是相对比例上缓冲区溢出攻击的问题正在扩大。如图1-1:图1-1 中国国家信息安全漏洞库2016年发布的漏洞类型、数量、比例由于缓冲区溢出攻击危害的严重性,使它至今仍是人们研究的重要课题,文章在总结当前已有研究成果的基础上提出了解决该问题的方案。第二章攻击原理及危害要对缓冲区溢出攻击的原理有个清楚认识,就必须先对可执行文件执行时的内存结构[2]有个总体了解。一般程序从逻辑上可分为两大部分:代码区和数据区。数据区从逻辑上可划分为静态数据、堆栈和堆三部分,它们之间的区别依赖于各部分对应内存分配的时间和方式以及数据存储的位置。总体来说,Windowss平台下程序的内存结构如图2-1所示,Linux或UNIX平台下程序的内存结构如图2-2所示。高端内存未初始化静态数据已初始化静态数据代码段堆堆栈低端内存图2-1 Windows下程序在内存中的结构高端内存堆栈堆未初始化静态数据已初始化静态数据代码段低端内存图2-2 UNIX下程序在内存中的结构通常所说的缓冲区溢出指的就是“堆栈和堆”这两部分空间中产生了溢出。正如微软给缓冲区溢出所下定义中所说的,缓冲区溢出是因为人们向程序中提交的数据超出了数据接收区所能容纳的最大长度,从而使提交的数据超过相应的边界而进入了其他区域。如果是人为蓄意提交超长数据且对系统正常运行造成了不良影响,那么我们就说发生了缓冲区溢出攻击。缓冲区溢出攻击通常会带来以下后果:1、过长的宇符串覆盖了相邻的存储单元而造成程序异常,严重的会造成死机、系统或进程重启等;2、可让攻击者执行恶意代码或特定指令,甚至获得超级权限等,从而引发其他的攻击。第三章造成攻击的技术原因3. 1缺少必要的边界检查这方面最明显的例子是C和C++语言。由于一开始设计的时候C和C++就没有为数组和宇符指针的引用提供任何的边界检查机制,从而导致了它们的不安全性。而它们是日常开发中使用最广的语言,甚至连Windows /UNIX这两个广泛使用的操作系统的很多模块也是用它们开发的,所以造成现在缓冲区溢出漏洞频频暴露。并且用它们开发的大部分软件在今后很长一段时间里仍会被使用,这也就给缓冲区溢出攻击的存在提供了有利环境。3. 2操作系统设计策略上的隐患这方而主要是指堆栈和堆数据区的可执行性属性。UNIX和MS Windows系统为实现更好的性能和功能,往往在数据段中动态地放入可执行的代码[4],以保持程序的兼容性,使堆栈和堆具有可执行的属性。但从两者用途本质——存储数据来看,赋予堆栈和堆可执行的属性是不必要的。而且堆栈和堆作为程序与用户交互的窗口,赋予其可执行的权力对系统安全构成了威肋。第四章攻击类型任何类型的缓冲区溢出攻击要达到预定的攻击口的通常要完成两个任务:在程序的地址空间里安排适当的代

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档