论文部分内容阅读
随着互联网的蓬勃发展和各种安全威胁的逐渐升级,WEB应用安全俨然成了互联网安全的最大威胁来源之一,而作为OWASP Top10中第二普遍的安全问题,XSS漏洞存在于近三分之二的WEB应用中,因此XSS漏洞检测在WEB安全研究中具有越来越重大的研究意义。传统XSS安全检测一般采用固定的攻击向量库依次对注入点进行攻击检测,这导致攻击向量的适应度不高,检测效率低下并且准确率不高,往往不能抵抗复杂的网络攻击。本文针对WEB应用安全中的XSS漏洞检测问题的研究主要分为攻击向量生成模块和检测分析模块两部分,提出了一种基于机器学习的XSS漏洞检测方法,设计实现了一种XSS漏洞检测工具,并经过对比实验验证了其在XSS漏洞检测方面的有效性。其基本思想就是在XSS攻击向量生成阶段采用机器学习的技术对其生成过程进行改进,实现自动化选择、优化攻击向量,采用自动交互的方法来对WEB应用系统进行有效测试,最后结合XPath路径定位技术来分析检测结果,确定检测点是否存在XSS漏洞。最终,经过对比实验结果表明,本文检测方法与AppScan检测效果相比,本文检测系统的误报率相对于AppScan来说稍大,但其漏报率要低于AppScan,且本文检测方法具有更高的检测效率。当然本文的设计方案仍有许多不足,还有许多可以进一步改进的地方,比如增加AWVS等检测工具的对比试验,增加目标站点的数量进行更大规模的实验。本文的研究工作主要分为以下几个方面:1、介绍了 WEB安全研究的背景和意义,并将焦点放在WEB安全中影响范围广泛的XSS漏洞检测问题上,介绍国内外关于XSS漏洞安全检测的研究现状。2、对本文涉及的相关理论基础进行介绍。主要包括XSS漏洞的原理、常见的三种分类方式,主要的利用方式以及可以采取的防御措施;攻击向量生成阶段使用的机器学习算法;漏洞检测分析阶段利用的爬虫技术。3、研究了基于机器学习技术的攻击向量生成过程,主要包括基本攻击向量的生成和绕过规则的选择。根据XSS攻击向量的组成结合上下文无关文法生成初始的攻击向量库。然后根据决策树分类的方法为不同类型的输出点匹配不同类型的攻击向量库。最后采用遗传算法将攻击向量匹配合适的绕过规则生成优化后的攻击向量库,并根据改进后的精英选择策略来将优秀攻击向量个体保留至后代种群中。4、研究了 XSS漏洞检测分析模块,依照手动检测XSS漏洞的步骤设计自动化检测的流程。研究了爬虫搜索技术中的最佳优先搜索策略和Bloom Filter去重算法。最后对爬虫页面解析技术进行了研究,选择采用二次匹配的方法来提高检测效率,首次采用正则匹配确定输出点的位置,第二次采用XPath定位技术来快速定位输出位置,有效提高了漏洞检测效率。5、对本文提出的XSS漏洞检测系统进行了设计与实现。介绍本文设计的XSS漏洞检测工具以及实验环境,使用本文的检测工具和已知的AppScan漏洞检测工具分别对目标实验环境进行检测,最后对比分析检测结果,验证本文检测工具的有效性。