论文部分内容阅读
基于web的应用软件在互联网业务各领域中日益广泛和重要,而各种安全漏洞却给当前迅速发展的web应用带了极大的安全威胁。所以通过安全漏洞测试来确定web应用是否存在安全漏洞,是保障web应用安全性的必要措施。因此为了应对安全漏洞给web应用所造成的严重安全威胁,对web应用的安全漏洞测试进行研究具有极大的紧迫性和现实意义。渗透测试是一种以模拟攻击、反应分析的方式确定软件安全漏洞存在性的方法,在测试web应用安全漏洞方面具有诸多优点,因此对其研究日益受到关注。但目前对web应用SQL注入渗透测试的相关研究中,尚未给出适当理论方法来指导生成多种类、多形态的SQL注入渗透测试用例(攻击输入)以准确测试web应用防御机制充分性、发现更全面的SQL注入安全漏洞的问题。这使得对web应用SQL注入渗透测试盲目性较强、易造成漏报而降低测试准确度。本文致力于研究如何从优化SQL注入安全漏洞渗透测试用例的角度,提高渗透测试准确度的问题。为此提出了模型驱动的SQL注入渗透测试方法。所提方法的核心思想是通过建立新的SQL注入攻击模型,指导建立SQL注入用例形式化模型并提出对用例模型的实例化方法,最终生成全面反映SQL注入攻击手段和攻击输入样式的优化SQL注入渗透测试用例,以触发更充分的SQL注入安全漏洞,避免漏报等问题,提高对web应用SQL注入安全漏洞渗透测试准确度。围绕着上述的研究问题和研究思路,本文所进行的主要工作和创新点包括:1)提出了新的基于安全目的模型的SQL注入攻击模型以及攻击模型驱动的SQL注入渗透测试框架。本研究基于安全目的模型建模方法建立全新的SQL注入攻击模型。相比目前相关研究中提出的SQL注入攻击模型,本研究所建立新的SQL注入攻击模型可更全面表述SQL注入攻击输入、安全漏洞特征和攻击位置等方面的规律。同时提出攻击模型驱动的SQL注入渗透测试框架,框架中基于本研究所建立的SQL注入攻击模型来指导优化的SQL注入用例生成。此方面的研究是对目前SQL注入攻击建模进行优化并以其指导SQL注入用例生成的创新性工作。2)针对所提出渗透测试框架中用例形式化表达问题,提出了对SQL注入安全漏洞渗透测试用例的形式化建模方法。在所提出的SQL注入攻击模型指导下,对SQL注入渗透测试用例建模,主要包括两方面工作:以形式化符号表述SQL注入攻击输入规律;以形式化语言描述web应用SQL注入安全漏洞的行为特征。建立了以形式化方法描述SQL注入攻击和安全漏洞判定规则的方案,实现对SQL注入渗透测试用例输入与预期输出的模型化描述,克服当前相关研究中对用例无规律、无限性随机枚举描述方式的不足。此方面的研究是将SQL注入用例描述由无序枚举转变为有规律模型化描述的创新性工作。3)针对所提出测试框架中基于模型生成实际用例的问题,提出了对所建立的SQL注入渗透测试用例模型的实例化方法。本研究提出了一系列新的SQL注入渗透测试用例覆盖准则,作为用例模型实例化的指导和渗透测试用例充分性衡量准则。通过所提出的模型实例化方法和覆盖度准则,将本研究中所建立的测试用例模型转化为可执行的优化的测试用例,以提高目前SQL注入渗透测试准确度,并解决目前相关研究中研究不足:对SQL注入渗透测试用例的选择及用例充分性的问题。此方面的研究是建立SQL注入用例模型实例化方法和用例输入充分性评价准则的创新性工作。4)针对所生成SQL注入用例集合测试效果评价问题,提出了基于多级防御web应用的SQL注入渗透测试用例测试效果验证方法。通过在web应用前端输入页面与后台数据库交互通道中设立不同防御强度的SQL注入攻击防御措施,实现在web应用中预设探测难度不同的SQL注入安全漏洞,以此作为SQL注入用例测试效果的验证平台。只有充分有规律的SQL注入渗透测试用例才能全面地测试出预设的SQL注入安全漏洞,获得较好的测试效果。在所提出的测试效果验证web应用平台上,对本研究所提出的用例与随机枚举测试用例和其他SQL注入模型生成的用例进行了实测效果的对比分析。本方法生成的用例降低了SQL注入渗透测试的漏报,表明了本方法生成优化用例的可行性和有效性。