论文部分内容阅读
Internet网络的产生是一面双刃剑,一方面它使得人们可以更加自由地进行信息、知识甚至计算能力等资源的共享,另一方面,这也使得计算机系统安全问题日趋严重。基于网络的攻击行为正在成为对系统安全造成威胁的主要因素,而其中针对缓冲区溢出漏洞的攻击就占了50%以上。
针对缓冲区溢出,目前已经有众多的研究工作用来检测或预防缓冲区溢出,但是目前各种检测工具都还存在一定的缺陷,不能完全满足用户的要求:不但需要提供缓冲区溢出的上下文环境,也能够有较高的准确率和较好的运行性能。本文重点就是设计一个更加有效的解决方案,满足用户的需求。
本文首先介绍了各种相关的静态检测工具并根据算法特性对它们进行了分类(面向约束语言分析的工具,面向变量分析的工具和,面向路径分析的工具),紧接着通过研究分析指出各类工具存在的固有缺陷。随后,文中提出了一种新的面向语法单位分析的算法。这种算法包括了两大特性:基于程序流的分析和面向语法单位的检测。基于程序流分析的特性不但能够提供缓冲区溢出的上下文环境和较高的正确率,同时由于代码完全覆盖的缘故也能降低漏报率;而面向语法单位的检测,由于有限的语法单位类型,它能够极大的提高工具的运行性能。基于此方案,论文阐述了原型系统的设计和实现,并引入了一个由核心引擎负责调度语法单位的框架,并对各种语法类型的处理算法进行了描述。最后,本文还分别对3个流行的开源服务器软件进行了实验测试,并从准确率和运行性能两方面和其它工具做了详细的比较,最终验证了这个方案。
另外,通过对测试结果的详细分析,本文还针对原型系统提出了两种改进方案:IO程序流的跟踪和静动态检测的结合,并对课题做了进一步的展望。