论文部分内容阅读
SQL注入攻击和XSS跨站脚本攻击是Web应用系统面临的最严重的安全问题,轻则导致数据丢失、数据破坏或拒绝服务,重则主机被完全接管、系统瘫痪,因此对其检测问题研究具有重要的现实意义。模糊测试是一种基于缺陷注入的自动或半自动化的漏洞挖掘技术,它通过向目标(如文件格式、网络协议、API等)提供大量半有效的数据作为输入并监测程序是否出现异常,以此发现Web应用系统中潜在的安全漏洞。动态污点分析是一种数据流跟踪技术,通过标记和跟踪数据随在程序运行中的传播过程,找出目的数据结果和源数据之间的依赖关系。本文研究常见的Web应用系统漏洞检测方法,并分析基于黑盒测试的扫描器和基于白盒测试的代码审计工具特点,扫描器检测速度快却不能定位漏洞产生的具体代码,代码审计工具能定位产生漏洞代码却因要分析所有的源代码而耗费大量时间,进而提出一种基于模糊测试和动态污点分析技术的Web应用系统漏洞定位方法,设计系统原型并进行实验验证和测试。本文的主要工作如下:(1)分析SQL注入漏洞及XSS漏洞的产生原因、分类、危害、预防及检测方式。归纳分析SQL注入及XSS跨站脚本的攻击方式,设计攻击向量库。(2)提出一种基于模糊测试和动态污点分析技术的Web应用系统漏洞定位方法。该方法在模糊测试阶段快速得到存在SQL注入及XSS漏洞的注入点,动态污点分析阶段通过跟踪这些注入点的数据在程序中的传播过程,得到SQL注入及XSS漏洞在程序中从注入点到陷入点的全过程,完成对漏洞的定位。(3)研究动念污点分析的原理及过程,并将其用于SQL注入及XSS漏洞的定位。在源代码级别实现动态污点数据的标记、跟踪及检测,设计基于高级语言的污点传播规则。(4)针对提出的基于模糊测试和动态污点分析的漏洞定位方法,设计检测定位SQL注入漏洞和XSS跨站脚本漏洞的系统框架WebPOS,并实现漏洞定位系统原型。本文的创新点主要体现在以下几个方面:(1)提出了一种基于模糊测试和动态污点分析技术的Web应用系统的漏洞定位方法,实验证明有较低的误报率和较小的时间开销。(2)实现基于源代码级别的动态污点分析,设计了基于高级语言的污点传播规则并给出了实现算法,运行时开销小,速度快。(3)运用Java编程技术,设计并实现了用于检测定位SQL注入漏洞和XSS跨站脚本漏洞的系统原型WebPOS。