[发明专利]一种模糊测试种子变异强度优化方法在审
| 申请号: | 202111546029.6 | 申请日: | 2021-12-16 |
| 公开(公告)号: | CN114185802A | 公开(公告)日: | 2022-03-15 |
| 发明(设计)人: | 曾英佩;吴铤;申延昭;郑秋华 | 申请(专利权)人: | 杭州电子科技大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N5/04;G06N20/00 |
| 代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杨舟涛 |
| 地址: | 310018 浙*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 模糊 测试 种子 变异 强度 优化 方法 | ||
本发明公开了一种模糊测试种子变异强度优化方法。本发明先选择一个最优的变异强度;接着对种子执行所选择变异强度次数的变异;最后将变异种子后得到的内容作为输入提供给程序做一次模糊测试;测试完成后这些内容将废弃,重新在该种子基础上生成下一个输入;这里变异强度指的是生成新输入时对种子的叠加变异次数。本申请提出将多种变异强度的选择建模为强化学习中多臂赌博机的手臂的选择,从而利用现有的多臂赌博机算法来选取任意时刻的最优的变异强度,实现更高的模糊测试效率。
技术领域
本申请涉及软件安全领域,尤其涉及一种对软件进行更高效模糊测试的方法。
背景技术
模糊测试是目前流行的软件漏洞发现方法,其可以大致分为三类:黑盒模糊测试、灰盒模糊测试、和白盒模糊测试。其中,黑盒测试基本不对被测程序进行了解,而是随机地产生输入进行测试。灰盒测试会对被测试程序进行插桩来获取一些运行时信息,如AFL(American Fuzzy Lop)会通过对插桩了解代码覆盖,并通过当前输入的执行反馈调整下一步输入。白盒测试会获取程序代码的更多相关信息来针对性地产生输入,如通过符号执行、污点追踪来指导产生输入。这三类方法亦各有所长:黑盒模糊测试虽然单次测试执行速度快,但是输入的质量一般不高;白盒模糊测试的输入质量很好,但是其执行速度较慢;灰盒模糊测试介于黑盒和白盒之间,其输入质量较好,也有较好的执行速度。
这三类模糊测试方法中,以AFL为代表的灰盒模糊测试,因为其在发现软件漏洞上的极高效率,成为了目前十分流行的模糊测试技术,在工业界和学术界都产生了较大影响。本申请主要关注的即是灰盒模糊测试,同时所提出方法也能应用在结合了灰盒和白盒模糊测试混合(Hybrid)模糊测试系统中(如Driller、QSYM)。
AFL类的灰盒模糊测试的测试过程大概如下。它将所有种子维护在一个队列中,从头到尾遍历该队列选取种子进行模糊测试。每选取一个种子后,将对它进行变异来获得新输入,并将新输入提供给被测试程序看是否会造成崩溃(Crash)。如果找到一个崩溃则意味着发现一个软件Bug。如果没有崩溃但是发现了新的代码覆盖(Code Coverage),如新的边覆盖(Edge Coverage)或称新路径(Path),则会将该输入保存为新种子。因为AFL这类模糊测试方法以代码覆盖制导,所以也常被称为覆盖制导模糊测试(Coverage-guidedFuzzing,CGF)或基于覆盖的模糊测试。
从上段介绍中可以看出,如何对种子进行变异是很关键的一个问题。目前对种子的变异包括确定性(Deterministic)阶段和非确定性(Non-deterministic)阶段。确定性阶段是可以选择跳过的,它主要是用一系列确定的变异操作来改动种子作为新输入(如逐个反转比特),过程会比较耗时。而非确定性阶段目前分为两个子阶段,一是大破坏(Havoc)阶段,一个是绞接(Splice)阶段。其中大破坏阶段会生成多个新输入,每个新输入都是通过对该种子进行2r次叠加变异来生成的(r是在1至7中随机选择的整数,包括1和7)。我们称叠加变异次数为变异强度(Mutation Intensity)。而绞接阶段则是先将该种子与一个随机选择的其它种子在中间随机位置进行拼接生成一个新种子后,再执行大破坏阶段。
目前AFL类灰盒模糊测试系统(包括libFuzzer)中,每次生成输入选择的变异强度都是在一个离散强度列表中随机、均匀地选择的(如前面提到的2r,r为1至7),这使得选择的变异强度并不一定是其最优的变异强度。实际上,(1)不同的变异强度下,发现新路径的效率可能并不一样,(2)不同类的种子,其变异强度与发现新路径效率的对应关系也可能不一样,(3)在不同时刻,变异强度与发现新路径的效率可能不一样,即变异强度的对应模糊测试效率可能会随着时间变化。本申请首次提出变异强度优化问题,并提出相应的优化方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111546029.6/2.html,转载请声明来源钻瓜专利网。





