论文部分内容阅读
随着Web应用程序应用越发广泛,Web应用程序中安全漏洞数量不断增加,影响范围也逐渐变广,应用程序安全也渐渐成为关注的焦点。在各种Web应用程序的编程语言中,由于PHP具有功能强大、代码执行效率高等原因,PHP被广泛的用来开发Web系统。但是许多PHP开发人员安全开发知识不足,导致PHP语言开发的Web系统是黑客的重点攻击对象。因此,针对PHP应用程序进行Web漏洞挖掘研究,是确定PHP应用程序可信性的重要手段,具有重要的理论意义和实践价值。本文首先对PHP应用程序常见的漏洞进行分类,并且并对每类漏洞的产生原因以及漏洞代码在源码中的表现情况进行解析。接着研究了几种PHP应用程序的漏洞挖掘技术,介绍了漏洞挖掘技术的分析原理以及技术实现,主要有使用符号值模拟程序执行的符号执行技术,使用污点值作为输入并对其进行跟踪从而发现漏洞的污点分析技术等。并以PHP应用程序的SQL注入漏洞以及XSS注入漏洞为例,总结出对应的漏洞特征模式。然后对基于PHP的Web漏洞挖掘技术展开研究:1.提出基于漏洞特征信息的函数摘要方法,该方法通过对函数生成包含漏洞特征的函数摘要信息,可降低动态符号执行过程中对函数的重复展开与分析带来的时间效率低问题。2.提出了基于路径特征的程序切片方法,结合路径中包含的漏洞特征信息,对路径进行剪枝和合并,用以解决动态符号执行过程当中路径爆炸问题。3.结合污点分析和动态符号执行方法,动态符号执行具有生成路径约束,并对路径约束取反,从而指导生成测试用例的能力,可解决污点分析的测试用例无法选择路径而导致的路径覆盖率低问题。基于以上方法,本文实现了一个PHP应用程序的Web漏洞挖掘原型系统“PHPVS”。并针对该系统进行有效性实验以及时间效率实验,实验表明了本系统漏洞挖掘方法的有效性,并且时间效率有所提升。