论文部分内容阅读
Web服务互联互通的特点是Web服务集成和应用的基础,它支持开放、动态的互操作模式,可以大大降低系统集成的开销和复杂性,因此获得了学术界的高度重视和产业界的大力支持。Web服务以XML(Extensible Markup Language)、SOAP(Simpie Object Access Protocol)、WSDL(Web Services Description Language)和UDDI(Universal Description Discovery and Integration)为核心;以WSDL语言定义消息的格式和内容;以SOAP协议进行消息通信,具有良好的封装性和集成性。由于Web服务通常包含了应用系统的关键业务,若其安全性出现问题就有可能带来巨大的损失和严重的后果,故很多学者纷纷转向对Web服务测试的研究来保证其安全性。
Web服务的脆弱性本质是指Web服务中存在的安全漏洞,利用它可以危害Web服务的安全策略,导致信息的出错或丢失。目前针对其测试的研究还不多见,主要集中在Web服务的功能和可靠性研究方面,还有针对Web服务进行数值扰动和数据通信扰动的测试方法研究。本文在此基础上研究了Web服务测试基础,提出了基于SOAP消息变异的脆弱性测试方法,并设计实现了一个Web服务脆弱性测试原型系统。主要工作阐述如下:
1.调研了Web服务测试的基础知识。随着Web服务的广泛使用,对其安全性测试的研究受到广泛的重视,介绍了Web服务的基本知识,包括Web服务的体系结构、堆栈、SOAP协议、WSDL协议和UDDI规范;然后调研了组件安全性测试技术和Web服务测试的主要方法。
2.根据SOAP消息参数的类型,提出了两种基于SOAP消息变异的Web服务脆弱性测试方法,分别是最坏差异输入变异方法(The Worst-input Mutation Approach)和杂乱数据变异方法(FHZZ Data-input Mutation Approach)。最后将这两种方法融合在一起开发实现了一个Web服务脆弱性测试工具WSVTT(Web Service Vulnerability Testing Tool)来测试Web服务的脆弱性。相应地,提出了两种测试用例生成算法,分别是最远邻测试用例生成算法TCFN(Test Cases generationbased on Farthest Neighbor)和杂乱数据输入变异算法FDMA(Fuzz Data-input Mutation Algorithm)。其中,TCFN算法主要针对参数类型为连续型的情况;FDMA算法主要针对参数类型为离散型的情况。然后,将算法产生的测试用例作用于SOAP请求消息,从客户端观察应答消息,来分析Web服务的脆弱性;最后通过WSVTT工具进行试验,表明提出的基于SOAP消息变异的方法可以更有效的发现Web服务的脆弱性。
3.设计实现了一个Web服务脆弱性测试原型系统WSVTS(Web Service Vulnerability Testing System),主要有四部分组成:SOAP消息生成器模块、SOAP消息变异模块、测试用例生成器模块和安全分析模块。其主要功能是首先扫描Web服务描述文件(WSDL文件),通过动态解析接口的WSDL文件自动生成SOAP消息,然后,调用相应的测试用例生成算法产生测试用例来对SOAP消息的参数进行变异,对Web服务进行脆弱性测试,并由安全分析模块对Web服务进行安全性分析,最后给出测试报告。