论文部分内容阅读
随着软件规模的日益增大,软件变得越来越复杂。各种软件安全缺陷引起了严重的安全问题,甚至造成资源的重大损失。为了降低这种风险和损失,软件开发人员在实施软件工程的过程中采取了各种手段。静态代码分析技术作为其中一种重要的手段,已经被广泛地用于查找各种软件安全缺陷。但现有的静态代码分析工具,尤其是开源工具,在分析的规模和准确性上还存在较大的问题。本文设计和实现的静态代码分析系统(ABAZER)在增大分析规模和提高准确性上都采取了有效的方法。
本文对ABAZER系统的设计和实现进行了详细的描述。 ABAZER提供了一种缺陷定义语言(BDL),使得用户能够自定义时序逻辑类型的安全缺陷。为了使缺陷定义更为准确,BDL语言提供一种值变量从而支持一定程度的值分析。ABAZER采用控制流分析等程序分析技术,并且引入等值和别名分析以提高准确性,还通过源代码优化和设置多种不同级别的缓存,以提高检测速度和分析规模。本文将ABAZER系统实际应用于大型操作系统的源代码,实验结果表明,ABAZER具有较高的实用性和有效性。
缓冲区溢出是一种最为常见的软件安全缺陷类型,本文研究了针对缓冲区溢出攻击的一种防御机制——地址空间随机化。本文描述了地址空间随机化在FreeBSD6.0中的设计和实现,并对其防护效果进行了理论评估和实际测试。