[发明专利]一种用于灰盒模糊测试的样本格式保护方法及装置有效
申请号: | 201810082824.6 | 申请日: | 2018-01-29 |
公开(公告)号: | CN108171064B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 朱俊虎;赵世斌;周天阳;林宏阳;李睿;彭建山;许航 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450001 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 模糊 测试 样本 格式 保护 方法 装置 | ||
本发明公开了一种用于灰盒模糊测试的样本格式保护方法及装置,包括:训练机器学习模型以使该模型可以识别测试语料的格式的正确性;对程序进行模糊测试时,从语料集中获取初始语料,对初始语料变异得到测试语料;应用测试语料对程序进行模糊测试,在模糊测试的过程中通过该模型确定测试语料的格式是否正确。当测试语料的格式正确且覆盖了已有测试语料没有覆盖的程序代码时,将该测试语料添加到语料集中,并重复这个过程。由此,将每轮模糊测试确定出的格式正确的语料添加到语料集中,最大程度的保证了语料集中语料的格式的正确性,提高了模糊测试效率。并且,通过位置集合对初始语料的变异进行指导,避免了无用的变异操作,进一步提高了测试效率。
技术领域
本发明涉及软件测试领域,尤其涉及一种用于灰盒模糊测试的样本格式保护方法及装置。
背景技术
灰盒模糊测试被认为是漏洞挖掘领域最先进的技术。灰盒模糊测试以提高代码覆盖率为目的,通过轻量级插桩的方式记录程序执行路径,使用遗传算法指导模糊测试中测试用例的生成,对初始语料进行有导向性地变异,使程序快速到达某些难以覆盖的代码路径。与其他的模糊测试方法相比,灰盒模糊测试具有更高的效率和更好的实用性。灰盒模糊测试的代表性工具AFL,已经通过模糊测试技术挖掘出数以百计的高价值漏洞。
但是,由于灰盒模糊测试不需要提供格式信息,使其测试成本较低,但是这也带来了弊病,随着模糊测试的进行,由于持续的样本变异操作,会产生更多的格式错误的样本,这些格式错误的样本也会导致正在测试的程序进入错误的程序流程,降低了模糊测试的测试效率。
发明内容
有鉴于此,本发明实施例公开了一种用于灰盒模糊测试的样本格式保护方法及装置,保证了语料集中的语料格式为正确的,并阻止了循环使用该错误的测试语料,从而导致模糊测试的测试效率低的问题。
本发明实施例公开了一种用于灰盒模糊测试的样本格式保护方法,包括:
从语料集中获取初始语料;
对所述初始语料进行变异,得到测试语料;
将所述测试语料输入到程序中,对所述程序进行模糊测试,并在模糊测试的过程中通过预设的机器学习模型确定所述测试语料的格式是否正确;所述预设的机器学习模型已通过训练语料的预设的特征数据进行了训练;
在所述测试语料为格式正确的情况下,查看所述测试语料是否覆盖了已有测试语料没有覆盖的程序代码;
若所述测试语料覆盖了已有测试语料没有覆盖的程序代码,将所述测试语料添加到所述初始语料中。
可选的,所述从语料集中获取测试语料,包括:
创建临时工作集合;
从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
从所述语料集中选取执行所述目标EDGE时代价最小的语料;
判断所述程序的EDGE中是否包含所述临时工作集合中的语料未覆盖到的EDGE;
若包含,返回执行从所述程序的EDGE中随机选取一个目标EDGE,所述目标EDGE为所述临时工作集中的测试语料未覆盖到的所述程序的EDGE;
若不包含,将所述临时工作集输出为初始语料。
可选的,所述在模糊测试的过程中通过预设的机器学习模型获取所述测试语料的格式是否正确的结果,包括:
在模糊测试的过程中,获取所述测试语料对应的特征数据;
将所述特征数据输入到预设的机器学习模型中,获取所述测试语料的格式是否正确的结果。
可选的,所述对所述初始语料进行变异,得到测试语料,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810082824.6/2.html,转载请声明来源钻瓜专利网。