论文部分内容阅读
随着互联网的不断发展,Web应用程序已经越来越多地深入到商业、财政、教育、政府及娱乐中,不过它们却存在各种可被利用的安全漏洞。因此如何进行有效的安全测试以保证Web应用程序的安全性和可靠性至关重要。然而由于Web应用多采用分布式结构,各类实体间的耦合度小,Web应用技术及脚本语言的发展,Web应用程序的结构与行为特征越来越多样化,使得Web应用程序安全问题日益复杂。因此,对Web应用程序安全漏洞的测试要比对传统程序的测试更加困难,从而对软件测试领域提出了新的挑战并已成为软件工程领域的一个研究热点。渗透测试作为一种Web应用程序安全漏洞测试方法,正在普遍应用于Web应用程序安全测试工作中,它可以在一个Web应用程序发布前找到Web应用程序中的潜在漏洞,消除相应威胁。然而在实际测试中,Web应用程序渗透测试结果往往和测试人员经验、技巧直接相关,同一个Web应用程序不同渗透测试服务商或人员在测试过程中所测试出的漏洞和漏洞数量可能各不相同,从而导致测试结果存在不同程度的误报和漏报。并且由于传统的渗透测试只采用单一的动态检测方法效率过低。因此,为了避免渗透测试成果太依赖个人能力和经验以及为了提高渗透测试效率,我们需要一套更科学的渗透测试方法,来减少测试过程中的误报率和漏报率并提高测试效率。针对上述问题,本文首先研究和分析了Web应用程序安全问题及Web应用程序安全漏洞测试相关的技术方法,并以此提出了主要针对Java Web应用程序的结合污染传播模型和传统渗透测试的改进渗透测试方法,从原来的单一技术方法向复合技术方法转变。并且针对不断出现的Web安全问题,着重研究了危害Web应用程序的输入验证类安全漏洞,特别是SQL注入和跨站脚本(XSS)漏洞。本文的主要工作有以下几方面:1:对WEB应用输入验证类安全漏洞进行全面深入的研究和分析并阐述了实际编程中是如何防止该类型漏洞的。2:为了减少渗透测试工作中的漏报率和误报率及提高效率,研究并分析了Web应用程序安全漏洞相关测试技术提出了一种静态分析和动态检测相结合的渗透测试方法。该方法根据SQL注入原理和跨站脚本漏洞(XSS)的特征,分别设计并建立了针对Java Web应用程序的相应静态检测规则和动态渗透规则库。3:基于静态分析和动态检测的Web应用程序渗透测试平台的实现及验证。本文采用开源工具findbugs、Selenium实现了测试平台的测试执行层各个模块,并以实验模拟及实际网站为实例,验证了基于静态分析和动态检测的Web应用程序渗透测试平台能有效的发现Web应用中的SQL注入及跨站脚本(XSS)漏洞。