说明:收录25万 73个行业的国家标准 支持批量下载
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111546029.6 (22)申请日 2021.12.16 (71)申请人 杭州电子科技大 学 地址 310018 浙江省杭州市下沙高教园区2 号大街 (72)发明人 曾英佩 吴铤 申延昭 郑秋华  (74)专利代理 机构 杭州君度专利代理事务所 (特殊普通 合伙) 33240 代理人 杨舟涛 (51)Int.Cl. G06F 11/36(2006.01) G06N 5/04(2006.01) G06N 20/00(2019.01) (54)发明名称 一种模糊测试种子 变异强度优化方法 (57)摘要 本发明公开了一种模糊测试种子变异强度 优化方法。 本发明先选择一个最优的变异强度; 接着对种子执行所选择变异强度次数的变异; 最 后将变异种子后得到的内容作为输入提供给程 序做一次模糊测试; 测试完成后这些内容将废 弃, 重新在该种子基础上生成下一个输入; 这里 变异强度指的是生成新输入时对种子的叠加变 异次数。 本申请提出将多种变异强度的选择建模 为强化学习中多臂赌博机的手臂的选择, 从而利 用现有的多臂赌博机算法来选取任意时刻 的最 优的变异强度, 实现更高的模糊测试效率。 权利要求书1页 说明书4页 附图1页 CN 114185802 A 2022.03.15 CN 114185802 A 1.一种模糊测试种子变异强度优化方法, 其特 征在于, 该 方法具体如下: 步骤一, 选择一个最优的变异强度; 步骤二, 对种子执 行所选择变异强度次数的变异; 步骤三: 将变异种子后得到的内容作为输入提供给程序做一次模糊测试; 测试完成后 这些内容将 废弃, 重新在该种子基础上生成下一个输入; 所述的选择一个最优的变异强度, 具体方法为: 步骤①: 判断是否之前已经为该种子选择了最优变异强度, 并且所选择的变异强度还 有效, 如果有效则直接返回该变异强度; 步骤②: 判断是否是之前已经选择过最优变异强度且已经失效的情况, 如果是, 则需要 将这期间的收益进行计算后, 更新到多臂赌 博机对应的数据结构中; 步骤③: 如果之前尚未选择过变异强度或者已经失效, 均需要选择种子对应的多臂赌 博机并运行其多臂赌 博机算法来选择最优变异强度。 2.根据权利要求1所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所的收益 则是在生成给定数量输入或者执行给定时间的模糊测试后, 根据新发现的代码覆盖、 唯一 崩溃数目、 唯一漏洞数目进行计算; 其中的代码覆盖是边覆盖、 行覆盖或路径 覆盖。 3.根据权利要求1所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的变 异强度为 为2r, 1≤r≤7, 且r为整数, 且不是在这些离 散值中随机、 均匀地进行选择。 4.根据权利要求1所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的的 多臂赌博机是假设收益会变化、 但仍具有随机性的非静态多臂赌博机, 假设收益会变化、 且 不具有随机性的对抗式多臂赌博机, 经典的假设收益不变而仅具备随机性的多臂赌博机中 的一种。 5.根据权利要求1所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的将 变异种子后得到的内容作为输入提供给程序 做一次模糊测试后, 模糊测试效率的计算依据 新发现的代码覆盖、 崩溃数目、 漏洞数目进行。 6.根据权利要求4所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的非 静态多臂赌 博机为Discounted  UCB或者Sl iding‑Window UCB算法。 7.根据权利要求4所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的对 抗式多臂赌 博机可以选择Exp3系列算法。 8.根据权利要求4所述的一种 模糊测试种子变异强度优化方法, 其特征在于: 所述的经 典的假设收益 不变而仅具 备随机性的多臂赌 博机为UCB系列算法。权 利 要 求 书 1/1 页 2 CN 114185802 A 2一种模糊测试种子变异强度优化方 法 技术领域 [0001]本申请涉及软件安全领域, 尤其涉及一种对软件进行 更高效模糊测试的方法。 背景技术 [0002]模糊测试是目前流行的软件漏洞发现方法, 其可以大致分为三类: 黑盒模糊测试、 灰盒模糊测试、 和白盒模糊测试。 其中, 黑盒测试基本不对被测程序进行了解, 而是随机地 产生输入进行测试。 灰盒测试会对被测试程序进行插桩来获取一些运行时信息, 如AFL (American  Fuzzy Lop)会通过对插桩了解代码覆盖, 并通过当前输入的执行反馈调整下一 步输入。 白盒测试会获取程序 代码的更多相关信息来针对性地产生输入, 如通过符号执行、 污点追踪来指导产生输入。 这三类方法亦各有所长: 黑盒模糊测试虽然单次测试执行速度 快, 但是输入的质量一般不高; 白盒模糊测试的输入质量很好, 但是其执行速度较慢; 灰盒 模糊测试介于黑盒和白盒之间, 其输入质量较好, 也有较好的执 行速度。 [0003]这三类模糊测试方法 中, 以AFL为代表的灰盒模糊测试, 因为其在发现软件漏洞上 的极高效率, 成为了目前十 分流行的模糊测试技术, 在工业界和学术界都产生了较大影响。 本申请主要关注的即是灰盒模糊测试, 同时所提出方法也能应用在结合了灰盒和白盒模糊 测试混合(Hybrid)模糊测试系统中(如Dri ller、 QSYM)。 [0004]AFL类的灰盒模糊测试的测试过程大概如下。 它将所有种子 维护在一个队列中, 从 头到尾遍历该队列选取种子进行模糊测试。 每选取一个种子后, 将对它进行变异来获得新 输入, 并将新输入提供给被测试程序看是否会造成崩溃(Crash)。 如果找到一个崩溃则意味 着发现一个软件Bug。 如果没有崩溃但是发现了新的代码覆盖(Co de Coverage), 如新的边 覆盖(Edge  Coverage)或称新路径(Path), 则会将该输入保存为新种子。 因为AFL这类模糊 测试方法以代码覆盖制导, 所以也常被称为覆盖制导模糊测试(Coverage ‑guided  Fuzzing,CGF)或基于覆盖的模糊测试。 [0005]从上段介绍中可以看出, 如何对种子进行变异是很关键 的一个问题。 目前对种子 的变异包括确定性(Deterministic)阶段和非确定性(Non ‑determini stic)阶段。 确定性阶 段是可以选择跳过的, 它主要是用一系列确定的变异操作来改动种子作为新输入(如逐个 反转比特), 过程会比较耗时。 而非确定性阶段目前分为两个子阶段, 一是大破坏(Havoc)阶 段, 一个是绞接(Splice)阶段。 其中大破坏阶段会生成多个新输入, 每个新输入都是通过对 该种子进行2r次叠加变异来生成的(r是在1至7 中随机选择的整数, 包括1和7)。 我们 称叠加 变异次数为变异强度(Mutation  Intensity)。 而绞接阶段则是先将该种子与一个随机选择 的其它种子在中间随机位置进行拼接生成一个新种子后, 再 执行大破坏阶段。 [0006]目前AFL类灰盒模糊测试系统(包括libFuzzer)中, 每次生成输入选择的变异强度 都是在一个离散强度列表中随机、 均匀地选择的(如前面提到的2r, r为1至7), 这使得选择 的变异强度并不一定是其最优的变异强度。 实际上, (1)不同的变异强度下, 发现新路径的 效率可能并不一样, (2)不同类的种子, 其变异强度与发现新路径效率的对应关系也可能不 一样, (3)在不同时刻, 变异强度与发现新路径的效率可能不一样, 即变异强度的对应模糊说 明 书 1/4 页 3 CN 114185802 A 3

.PDF文档 专利 一种模糊测试种子变异强度优化方法

文档预览
中文文档 7 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共7页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种模糊测试种子变异强度优化方法 第 1 页 专利 一种模糊测试种子变异强度优化方法 第 2 页 专利 一种模糊测试种子变异强度优化方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 23:15:28上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。