[发明专利]基于组合变异的SQL注入测试用例生成方法有效
申请号: | 202010029005.2 | 申请日: | 2020-01-12 |
公开(公告)号: | CN111258892B | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 赵靖;董天冉;王延斌;李志娟 | 申请(专利权)人: | 大连理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 温福雪;侯明远 |
地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 组合 变异 sql 注入 测试 生成 方法 | ||
本发明属于软件安全测试的研究技术领域,公开了一种基于组合变异的SQL注入测试用例生成方法,用于提高SQL语句注入成功的条数以及检测SQL漏洞的效率。使用组合测试和变异测试相结合的方法生成测试用例集,此方法可以在节省测试空间的前提下保证绕过过滤规则的测试用例数量。并将这样的测试用例集应用到检测系统中,从而验证哪些SQL漏洞可成功攻击Web页面,与现有方法相比只有基于变异测试的SQL注入漏洞检测方法减少了空间爆炸的概率,更节省测试用例的时间花费和检测代价。
技术领域
本发明属于软件安全测试的研究技术领域,主要涉及一种基于组合变异的SQL注入测试用例生成方法。
背景技术
随着网络时代科技水平的不断发展,大数据、云计算等技术应运而生,B/S模式的应用系统在不同领域得到广泛应用,由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患,而SQL注入就是其中一种。SQL注入是一种在基于Web的输入字段中注入SQL字符或命令的方法,以便操纵Web后端SQL语句的查询执行,这类攻击属于Web服务器的主要攻击目标。
为应对这种SQL注入问题随之出现许多防御方法,诸如静态分析、动态检测、动静态结合、机器学习等方法。基于变异的模糊测试方法就是动态检测SQL漏洞的一种方法。此方法可以变异原有效测试用例成功绕过防火墙的过滤规则,但这种方法随着变异操作符(变异测试变异测试用例时使用到的变异脚本)种类的增加,变异后的测试用例数量将指数级增长,严重则会带来组合爆炸问题,若控制变异操作符的数量会降低元素组合覆盖率。组合测试可解决这一问题,它旨在保证一定覆盖率的同时,使用尽可能少的测试用例发掘尽可能多的故障。所以本申请采用组合与变异相结合的方式在保证变异操作符组合覆盖率的同时,也节约了测试用例空间的大小。
发明内容
本申请提供一种基于组合变异的SQL注入检测方法,从而在保证攻击成功的前提下,尽量减少测试空间的大小。
本发明的技术方案:
基于组合变异的SQL注入测试用例生成方法,步骤如下:
步骤一:检测SQLi漏洞的原始有效测试用例的payload可通过多重变异方法进一步扩展,生成新的具有攻击效果的测试用例;由于使用变异规则近似的变异方法对payload进行变异生成的测试用例在检测SQLi漏洞时检测效果一致而造成大量不必要的资源消耗,应当避免。因此,本发明将不同变异方法的结合抽象成组合问题,减少变异后的测试用例数量。组合方法具体如下:
步骤1.1:SQLMap自动化检测工具的tamper模块包含目前已有的46种变异操作符,本方法提出将这些变异操作符按照变异规则的相似性分为5个大类,记成有序集合P={p1,p2,p3,...,p5};并将每个大类中的单个变异操作符映射为数值,形式化表示为D(Pi)={0,1,2,...,n};其中,0表示不使用该类变异操作符,1至n表示归入类pi的变异操作符对应的数值;
步骤1.2:根据上述划分的变异操作符类构建数值型测试用例模型,该测试用例模型是一个以payload为第一个元素的6元组组成的有序集合,即{(v0,v1,v2,v3,v4,v5)|v0∈D(P0),v1∈D(P1),v2∈D(P2),v3∈D(P3),v4∈D(P4),v5∈D(P5)}
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010029005.2/2.html,转载请声明来源钻瓜专利网。