论文部分内容阅读
近年来,伴随着计算机技术的飞速发展,网络已经变成人们生活中必不可少的一部分。Internet作为一个重要的基础平台,孕育了许多功能强大的Web应用程序,它们涉及金融、社交、购物、搜索、教育等方方面面。为实现核心业务、满足用户需求,Web应用程序通常要接入内部计算机系统,并且在服务器和浏览器之间传递私密和高度敏感的信息,但这些信息并没有得到恰当的保护,频发的Web应用层安全事故证明,Web应用程序的安全性远远不够。此外,Web2.0、HTML5、AJAX等新技术的发展及应用,也给Web应用程序带来了新的安全威胁,如何保证Web应用程序安全成为当务之急。Web应用漏洞扫描技术是一种站在攻击者角度去检查Web应用程序安全性的技术手段,它能够主动发现Web应用中隐藏的漏洞,防患于未然,对漏洞扫描技术的研究具有极其重要的意义。本文针对传统Web应用漏洞扫描器对JavaScript支持不足,无法应对Web应用程序不断扩大的规模与日益复杂的网络环境,漏洞扫描过程盲目、缺乏针对性等问题,设计了一个基于爬虫和分布式技术的Web应用漏洞扫描工具。通过在爬虫中嵌入浏览器内核,支持JavaScript的解析,为漏洞扫描器提供更全面的扫描点;将传统爬虫和漏洞扫描工具扩展为分布式架构,扩展计算资源,提高扫描器的稳定性和对复杂网络环境的适应能力;提出了基于状态图的漏洞检测方法,优化了 Web应用漏洞扫描器的扫描逻辑,提高扫描效率。本文主要工作归纳如下:1、针对传统漏洞扫描器爬虫不支持JavaScript的问题,提出了在爬虫中内嵌WebKit解析JavaScript的方法,并利用页面分析和请求代理相结合的方法提取URL和动态输入点,为漏洞扫描器提供更加全面的网站信息。2、研究了分布式技术,针对Web站点数据量大、网络环境复杂等问题,将漏洞扫描工具扩展成分布式架构。提出了基于节点负载和通信状态的日志式任务调度方法,动态对任务进行划分和调度,保证任务节点间负载均衡,同时支持扫描异常处理。3、研究了常见Web应用漏洞的产生原因、攻击方法与防御策略,研究了漏洞扫描技术,总结了以往漏洞扫描器的不足,提出了基于状态图的漏洞扫描方法,并设计了针对SQL注入和XSS的具体检测方案,优化了扫描逻辑,在一定程度上提高了扫描效率。4、基于上述思想,设计了漏洞扫描器整体架构与模块划分,设计并实现了中心节点、任务节点中各个功能模块;搭建了测试环境,对本漏洞扫描工具的URL发现能力、漏洞扫描能力、负载均衡、异常处理等方面进行了测试和分析,验证本设计方案的可用性及优点。