● 摘要
在当今的主流市场中,很多企业的核心业务通过Web应用实现,Web应用的安全性严重影响企业和大众的利益。然而,由于Web应用开发的复杂性和灵活性,在开发Web应用的过程中很容易给攻击者留下可乘之机。用户输入校验功能是确保Web应用安全性的第一道屏障,能够有效阻止来自应用层的攻击,但是开发人员却很少编写出不存在缺陷的校验器对用户输入进行校验,而且经常由于在需求分析阶段没有明确提出用户输入校验功能,在开发阶段忘记对用户输入进行校验。因此,加强对Web应用输入校验功能的测试是提高Web应用安全性的必要手段。Web应用输入校验功能分布在Web应用的各个角落,手工测试需要大量人力,而且测试数据的产生完全依赖于测试人员的工程经验,测试的充分性无法保证。现有相关研究从不同方面加强了对Web应用输入校验功能的测试,但是仍然存在着一些没有解决的问题。第一,传统的白盒测试方法难以发现用户输入校验功能的缺失或缺陷。第二,传统的黑盒测试依赖于用户输入校验功能的说明文档,而在实际开发过程中往往不存在此类说明文档。第三,传统的黑盒或白盒测试方法都很少提供自动判定测试结果的方法。本文在研究了模型驱动的测试和Web应用安全性测试的理论与技术的基础上,实现了一个模型驱动的测试框架以支持Web应用输入校验测试的建模与执行,并提出了针对Web应用输入校验测试的测试数据生成和测试结果判定方法。为自动构建被测系统模型、提取输入点信息,模型驱动的测试框架分析HTML代码,从而识别输入点类型,并基于正则表达式生成测试数据以支持获取动态生成的页面。为生成Web应用用户输入校验测试的测试数据,本文提出了一种基于正则表达式变异生成Web应用输入校验测试数据的方法。为自动判断测试结果,本文提出最长共同标签子序列算法解决评估HTML页面之间结构相似度的问题,进而根据HTML页面结构相似度自动判定Web应用输入校验测试的结果。此外,本文提出通过分析同一类校验器不同版本实现之间的行为差异,生成Web应用输入校验测试数据的方法,并且基于对生成测试数据的分析自动检测存在缺陷的校验器,确认不同版本的校验器的输入域关系。实验结果表明,本文提出的逆向建模方法能够有效提取HTML页面中的输入点,识别输入点类型;与Web应用安全漏洞扫描器相比,基于正则表达式变异生成Web应用输入校验测试数据的方法能够更加有效的检测到与输入类型和值有关的Web应用输入校验的缺陷;最长共同标签子序列算法比传统对文本文件相似度进行评估的算法更加精确的反映HTML页面结构的相似度;基于多版本实现的用户输入校验测试数据生成方法提高了自动生成的测试数据的缺陷监测能力,能成功发现校验器缺陷并确定不同版本校验器的输入域关系。
相关内容
相关标签