论文部分内容阅读
SQL注入漏洞是web安全应用程序漏洞的一种,严重威胁着web应用的安全。OWASP安全组织已经连续10年将SQL注入漏洞评为最危险的web安全漏洞之一。当前虽然已对SQL注入安全问题进行了深入的研究,但是在对SQL注入漏洞测试用例生成的研究上仍然存在不足。由于SQL注入漏洞类型多,测试用例集覆盖的漏洞类型少,能够触发SQL注入漏洞的有效测试用例比较少,导致测试用例集的漏洞覆盖率和漏洞检测能力比较低。针对当前SQL注入测试用例存在的问题,本文提出利用上下文无关文法表示测试用例生成的规则,同时为了提高测试用例集在安全验证机制下的漏洞检测率使用变异方法对其进一步优化。首先,本文分析了测试用例的特点并对其进行符号形式化定义,然后利用上下文无关文法生成测试用例集。其次,本文分析了SQL注入的防御机制,然后总结了绕过安全机制的变异方法的特点,最后利用变异方法对上下文无关文法生成的测试用例集进行优化并生成新的测试用例集。最后,本文首先采用上下文无关文法生成的测试用例集、人工收集的测试用例集以及sqlmap扫描工具自带的测试用例库这三种不同的测试用例集在无安全验证机制下进行实验,并将实验结果进行对比。实验结果表明使用上下文无关文法生成的测试用例集的漏洞覆盖率比较另外两种测试用例集要高。其次采用上下文无关文法生成的测试用例集和使用变异方法优化后的测试用例集在无安全验证与有安全验证的条件下进行实验。实验结果表明在安全机制下变异后的测试用例的漏洞检测能力要比变异前的漏洞检测能力强且稳定。最后对人工收集的测试用例集、上下文无关文法生成的测试用例集以及变异后的测试用例集进行了测试用例的有效度对比实验。实验结果表明上下文无关文法表示的测试用例生成规则和变异技术能够产生更多的触发漏洞的有效测试用例。