论文部分内容阅读
网络应用已渗透到社会的各行各业,网民对网络安全的要求也日渐提高,网络安全逐渐成为了各界日益关注的焦点。网络应用的本质是软件,因此软件的安全问题是网络安全的核心。如何在软件发布前检测并排除软件中所存在的安全漏洞、提高软件的稳定性、降低软件的风险已经成为了一个新的研究课题。针对上述问题,本文就软件安全问题中两类典型的安全漏洞——污染数据和死锁的检测方法进行了深入的研究,并详细描述了污染数据类安全漏洞检测系统与死锁检测系统的设计与实现。本文具体的研究工作主要包括以下几个方面。首先对污染数据和死锁的检测方法进行深入调研,并总结了现有方法的优缺点。就污染数据检测方法而言,现有的检测方法因为不具有路径敏感的性质,因此存在较多的误报。就死锁的检测方法而言,当前的静态分析技术皆不能对死锁检测这一问题进行直接求解。其次,本文在现有的检测方法的基础上进行了改进,一方面,设计并实现了路径敏感且上下文敏感的污染数据检测系统,另一方面,提出了一种新的死锁检测框架,该框架将死锁检测这一复杂问题分解成为四个子问题,进而通过现有的静态分析技术——可达分析、别名分析、并发分析、以及Gatelock分析对这四个子问题独立求解。最后,以sourceforge网站上下载排名最前的七个开源软件作为污染数据检测系统的测试集,将本方法的检测结果与另一款静态分析软件Klocwork的检测结果进行了比较。通过比较结果可知,本文所提出的污染数据类安全漏洞的检测方法在误报率与漏报率这两项评估指标上都优于Klocwork。本文的研究成果对死锁检测问题提供了一个新的研究思路,具有一定的理论意义和应用价值,为污染数据类安全漏洞的检测,提供了有益的方法和手段。