论文部分内容阅读
随着信息化的不断发展,军工应用软件的使用范围越来越广,软件复杂度的不断提高,软件安全重要性显得尤为突出。当前军工企业的应用软件主要面临保密安全性和可靠安全性两大安全性隐患,通过对国内国防军事工业单位的软件普查和调研数据分析,显示有57%的当前各类应用软件采用C/C++作为编写语言,且在运行中已经暴露出稳定性、完整性、安全性方面存在问题,即表明在设计、开发和使用中存在着诸多软件安全漏洞。本文特针对该行业应用软件领域中的普遍存在的缓冲区溢出漏洞攻击、内存泄漏的检测技术进行了研究,首先分析了相关课题的研究背景,并针对当前该领域国内外的研究现状和发展趋势进行了分析,在此基础上阐述了本课题的研究内容。由于近几年基于静态分析的检测方案逐渐成为软件测试的重要研究手段,本文将检测技术的重点放在了静态方法上的研究,并跟踪了国内外对于静态分析软件的相关研究。首先对源代码漏洞分析系统进行了建模,紧接着从缓冲区溢出攻击和内存泄漏的原理入手,对两类与内存相关联的漏洞的检测技术进行了深入而系统的研究。同时分析了检测这些问题的重点和难点,基于这些研究,本项目提出了一种代码原型检测工具,通过生成待检测源码的控制流程图,进行代码结构抽象表述,再利用指针作用域限定和递归求解等方法对漏洞实施检测,在线性时间内完成检测,同时避免了以往检测而造成的路径爆炸等问题。最后本文分类测试了包含以上两种漏洞的源代码,测试结果表明该系统能够准确检测代码中存在的安全漏洞问题,提高了检测系统的工作效率,降低了误报率和漏报率。达到了系统设计的预期目的,并作了模型的实例分析并给出了结论。