论文部分内容阅读
随着互联网技术的飞速发展,Web应用越来越流行,Web应用在带给用户快捷方便的同时,也存在着各种安全隐患,对用户个人信息和财产安全带来潜在威胁。XSS(Cross-Site Scripting)跨站脚本是一种经常出现在Web应用中的安全漏洞,它可以对被攻击的Web应用造成资料盗窃、回话劫持、钓鱼欺骗、网页挂马等各种攻击。为保障Web应用的安全性,在Web应用部署上线前对其进行漏洞检测显得至关重要。Fuzzing(模糊测试)作为一种漏洞挖掘技术,通过不断向目标程序发送异常数据并监控程序的异常来挖掘目标程序中存在的漏洞,被广泛用于Web应用程序的测试中。然而现有的Fuzzing测试技术大多是基于“获取输入向量-生成测试用例-进行模糊测试-监控异常”的流程。该流程在对Web应用进行安全测试时存在着测试用例覆盖率低导致出现漏报、漏洞响应无法有效验证导致出现误报等问题。针对测试用例覆盖率低导致漏报率高的问题,本文提出一种基于遗传算法的XSS攻击样本生成优化算法,将生成的XSS攻击样本作为Fuzzing的测试用例,以此来提高测试用例的覆盖率,从而降低漏报率。本文首先深入研究了XSS攻击的基本原理、防御策略和变异规则;通过对大量的XSS攻击测试用例进行归类分析,提出了XSS漏洞特征模型和XSS攻击特征模型;本文定义了XSS防御率、XSS防御绕过率,在XSS攻击特征模型上进行了遗传算法编码设计,改进了基本遗传算法,加上了修复操作,使用改进后的遗传算法来优化XSS攻击样本,从而提高了测试用例质量,降低了漏报率。针对漏洞响应无法有效验证导致误报率高的问题,本文采用HttpClient和网络爬虫的技术手段来对漏洞响应进行实时监控,在对注入点进行模拟攻击时,每执行完一次注入测试,便对响应结果进行实时监控,采用网络爬虫的技术分析注入的XSS攻击向量是否对显示页面造成了攻击,以此来准确定位注入点、攻击向量、造成攻击页面,从而降低误报率。结合上述两者,本文设计了一套基于Fuzzing技术的存储型XSS漏洞检测与分析方法,该方法分为网络爬虫爬取注入点,遗传算法生成测试用例,模拟攻击,漏洞分析四大块。实验结果表明本文的漏洞挖掘算法和漏洞检测方法确实可行,在检测存储型XSS漏洞方面,检测速度快,漏报率低,效果明显。