论文部分内容阅读
由于软件的灵活性、复杂性不断提高,软件安全漏洞问题日益加剧。一旦被利用进而实施系统攻击,可能带来不可估量的损失。软件漏洞检测是保障软件安全性的有效手段之一。因此,本文研究软件漏洞的检测技术,并着重探索整数漏洞的检测方法: (1)研究了软件安全漏洞的检测技术。比较了漏洞的动态检测和静态检测方法,分析了源代码和二进制代码检测方法的差异。研究了词法分析、规则检查和类型推导等静态分析方法,以及定理证明、符号执行和模型检测等程序验证方法。 (2)总结、比较了整数漏洞检测的主流方法。系统地阐述了整数漏洞的定义和分类,总结了整数漏洞流行的原因和危害,分析了整数漏洞的本质特征,并提炼出常见的整数漏洞利用模式。 (3)探讨了基于漏洞利用模式的整数漏洞检测方法。整数漏洞是由整型数据定义、检测和使用的不一致引起的。根据这个特征,结合已知的漏洞利用模式,设计整数漏洞模型来刻画相关场景,通过跟踪数据流提取约束,检测整数漏洞。 (4)基于前面的建模方法和检测技术,设计、实现了一个检测整数漏洞的原型系统。实验验证了系统的有效性,不仅可以发现和定位整数漏洞,而且还发现了一些尚未公布的漏洞。