基于中间汇编的缓冲区溢出检测模型
- 格式:pdf
- 大小:296.91 KB
- 文档页数:4


第三讲缓冲区溢出n1 缓冲区溢出问题简介n2 几种典型的缓冲区溢出n3 防范措施缓冲区溢出1 缓冲区溢出问题简介缓冲区溢出是一种常见的漏洞.据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上.这种错误的状态发生在写入内存的数据超过了分配给缓冲区的大小的时候,就像一个杯子只能盛一定量的水,如果放到杯子中的水太多,多余的水就会一出到别的地方。
由于缓冲区溢出,相邻的内存地址空间被覆盖,造成软件出错或崩溃。
如果没有采取限制措施,可以使用精心设计的输入数据使缓冲区溢出,从而导致安全问题。
缓冲区溢出缓冲区溢出问题的历史很长一段时间以来,缓冲区溢出都是一个众所周知的安全问题, C程序的缓冲区溢出问题早在70年代初就被认为是C语言数据完整性模型的一个可能的后果。
这是因为在初始化、拷贝或移动数据时,C语言并不自动地支持内在的数组边界检查。
虽然这提高了语言的执行效率,但其带来的影响及后果却是深远和严重的。
•1988年Robert T. Morris的finger蠕虫程序.这种缓冲区溢出的问题使得Internet几乎限于停滞,许多系统管理员都将他们的网络断开,来处理所遇到的问题. •1989年Spafford提交了一份关于运行在VAX机上的BSD版UNIX的fingerd的缓冲区溢出程序的技术细节的分析报告,引起了部分安全人士对这个研究领域的重视•1996年出现了真正有教育意义的第一篇文章, Aleph One在Underground发表的论文详细描述了Linux系统中栈的结构和如何利用基于栈的缓冲区溢出。
缓冲区溢出Aleph One的贡献还在于给出了如何写开一个shell的Exploit的方法,并给这段代码赋予shellcode的名称,而这个称呼沿用至今,我们现在对这样的方法耳熟能详--编译一段使用系统调用的简单的C程序,通过调试器抽取汇编代码,并根据需要修改这段汇编代码。
•1997年Smith综合以前的文章,提供了如何在各种Unix变种中写缓冲区溢出Exploit更详细的指导原则。
基于静态分析的栈缓冲溢出漏洞自动发掘模型研究的开题报告1. 研究背景随着互联网和计算机技术的不断发展,软件系统的规模和复杂度不断增加,其中安全问题成为软件系统极为严重的问题之一。
而栈缓冲溢出漏洞作为软件安全威胁的一种常见形式,在各种软件系统中也屡屡被利用。
因此,对于栈缓冲溢出漏洞的发现和修复,成为了软件安全工程师必不可少的任务之一。
2. 研究目的本课题旨在通过对于基于静态分析的栈缓冲溢出漏洞自动发掘模型的研究,提高漏洞发掘的效率和精度。
具体来说,我们将通过构建发掘模型,并通过实验验证其性能和有效性。
3. 研究内容本研究计划主要包括以下几个方面:(1)分析已有的栈缓冲区溢出漏洞自动发掘技术,探讨其优点和不足(2)研究基于静态分析的栈缓冲区溢出漏洞自动发掘模型,在模型的构建中我们将考虑程序的静态特征、语法分析、语义分析等因素。
(3)通过实战对模型的性能和有效性进行评估,与已有技术进行比较和验证。
4. 研究意义和贡献(1)通过提高栈缓冲区溢出漏洞自动发掘模型的效率和精度,可以帮助软件安全工程师更快速地发现和修复程序中的安全漏洞。
(2)本研究可以提供一种新的思路,通过基于静态分析的方式解决缓冲区溢出漏洞自动发现的问题。
(3)本研究的研究成果可以应用于软件安全领域,提高软件安全保障的水平。
5. 研究方法及思路(1)对现有的栈缓冲区溢出漏洞自动发现技术进行调查和研究,了解其技术特点和不足;(2)通过分析程序的静态特征、语法分析和语义分析等因素,构建基于静态分析的栈缓冲区溢出漏洞自动发掘模型;(3)通过实验对模型进行优化和验证,评估其准确性和有效性。
6. 研究计划(1)文献调研和技术分析:10周(2)模型构建和验证:20周(3)实验评估和结果分析:10周(4)论文撰写和答辩:10周。