论文部分内容阅读
缓冲区溢出是一种常见而危险的漏洞,在各类系统软件和应用软件中普遍存在,对软件安全、网络安全以及数据安全造成了极大的威胁。造成缓冲区溢出漏洞的根本原因在于一些编程语言(如C语言)没有边界检查机制,如果输入的数据超过了缓冲区的大小,就会发生溢出。缓冲区溢出静态检测是通过对源代码的分析,在程序执行之前判断出漏洞的位置,防患于未然。论文主要针对静态检测中的词法检测工具,设计了一个基于综合评估和结果优化的改进方案,并依照此方案设计并实现了一个词法检测工具Opt_Scanner。论文首先介绍了缓冲区溢出的原理及类型,并从静态、动态以及研究机构三个方面介绍了缓冲区溢出检测的研究现状。接下来,介绍了静态检测工具在软件安全中发挥的作用,重点分析了词法分析工具的原理、功能模块以及不同词法检测工具的性能。在论文的第三章,针对词法分析工具误报和漏报的情况,设计了一个词法检测的优化方案,其中包括综合评价系统和结果优化系统两大模块。综合评价系统主要是将ITS4、Rats和Flawfinder三个具有代表性的词法检测工具结合起来,综合考虑它们在误报率和漏报率方面的贡献,最终形成综合评分;结果优化系统主要是利用危险函数的参数特征,针对参数制定安全规则,以降低误报率。在该优化方案的基础上,设计并实现了词法检测工具Opt_Scanner,并分别用人工构造的脆弱性程序以及包含漏洞的真实程序片段对其进行测试。在人工构造的脆弱性程序测试中,Opt_Scanner的漏报率和误报率分别为零,达到了最优效果;在真实程序片段测试中,Opt_Scanner的性能较三个原始工具也有了一定的提高。