论文部分内容阅读
WEB应用程序是通过互联网连接的应用软件,它创造了人们方便而丰富多彩的生活。然而WEB应用的安全问题也越来越显著,不安全的WEB活动会给本人乃至与之相关其他人的生活带来麻烦甚至灾难,SQL注入漏洞就是影响这种安全性能的主要漏洞之一。它主要是指攻击者通过用户输入对WEB系统的数据库发起的注入攻击,由于这类漏洞的可操作性强且变种很多,因此常常被不法者所利用。当前,一批行业内学者专家对于该领域展开了积极的研究工作,提出了一些检测和防范措施,本文在结合了现有SQL漏洞检测方法的基础上,对于动静结合的SQL注入漏洞检测方法进行了深入的探讨和研究。
本文采用先静态分析,后动态验证的方式检测SQL注入漏洞,利用二者的优势,规避不足。在静态分析阶段,首先对系统源码进行分析,生成AST树,对其进行深度优先遍历得到序列树。在此基础上提出了一种逆推污点分析的方法,逆向找寻程序中污染变量的数据依赖关系,收集变量结点的过滤操作信息,利用完备集匹配的方法初步检测漏洞。针对程序中的分支循环结构,本文设计了流敏感的VPT算法将分支结构等价为关键路径,用于解决分支的逆推问题。而后,将静态分析阶段得到的过滤疏漏以及渗入点变量等信息传递给动态验证阶段,据此生成测试用例参数数据,启动测试主控程序,模拟攻击输入请求,接收系统响应并分析响应结果。最终在结果分析模块得到SQL注入漏洞的检测结果以及相关分析信息。本文设计并实现了动静结合的WEB漏洞检测系统,用以验证上述检测方案。实验证明,该方法在静态分析阶段可以减少漏报,在动态验证阶段能够降低误报,是可行有效的。表明基于逆推污点分析的动静结合检测方法对SQL注入漏洞的检测和防御具有一定的理论意义和应用价值。