一、背景

二. INTRODUCTION

A. Mutation-based Fuzzing

B. Coverage-based Fuzzing

为 了 解 决 上 述 基 于 突 变 的 模 糊 测 试 的 局 限 性 , 研 究 人 员 提 出 利用覆盖率信息作为反馈来指导模糊测试过程,以提高模糊测试的性能。


这一部分介绍了基于覆盖率的模糊测试的发展方向。一种方向是将变异模糊测试与约束求解技术相结合,以解决路径约束问题。另一种方向是利用机器学习技术发现种子测试用例中有价值的字节位置。然而,现有的模糊测试工具缺乏充分利用试验内部和试验间的历史信息来指导有效的模糊测试。因此,本文提出了一种利用历史信息指导模糊测试的方法。

三.DESIGN OF EMS

EMS框架和提出的概率字节方向模型(PBOM)的设计。PBOM旨在提高EMS的性能。


A. Why Intra- and Inter-Trial History Matters

B. Framework of EMS

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试-LMLPHP

EMS构建了内部和外部PBOM来学习和利用内部和外部测试历史。

EMS通过上图中的Inter-PBOM Initialization构建外部PBOM,通过PBOM Operator来变异测试用例,通过Operator Analysis和Data Collection来收集内部测试历史,并定期调用Intra-PBOM Update来更新内部PBOM。

C. Probabilistic Byte Orientation Model (概率字节方向模型PBOM)

这一部分描述了PBOM的数据结构和概率算法。为了防止fuzzer的执行速度下降,我们使用两个哈希映射构建了inter-PBOM和intra-PBOM。

(下图中第一排蓝色的)输入索引节点的定义:利用输入字节值的唯一哈希作为哈希映射的索引。

每一个蓝色的输入索引节点竖着看)作者为每个唯一输入索引节点构建一个链表:用于存储相应的输出变异策略T链表中每个变异节点存储了:一个唯一的变异操作符(包含输出字节值和变异类型)以及变异操作符(out,type)在该输入下的频率F和选择概率P。为了添加新的变异节点,EMS定位相应输入的索引节点,并将新的变异节点添加到该输入的链表的末尾。

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试-LMLPHP为了构建inter-PBOM,EMS首先使用常规fuzzer(如AFL和MOPT)收集inter-trial历史。然后,EMS构建了如图4所示的数据结构,并更新了每个节点在输入的链表中的选择概率P。根据每个(out,type,F,P)∈T的频率F,以下公式计算了概率分布P,其中p是计算P的(out,type)的权重。

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试-LMLPHP
​​​​​​​

根 据 公 式 1,inter-PBOM赋 予 频 率 f较 少 的 (out, type)较 高的 选 择 概 率 P, 然 后 构 建 MO的 选 择 概 率 分 布 P,该 选 择 概率 分 布 更 频 繁 地 选 择 较 少 的 (out, type)来 覆 盖 、 删 除 或插入种子测试用例 。

四.IMPLEMENTATION OF EMS

介绍了一种基于MO PT构建的测试用例生成工具EMS,它在确定性和混沌阶段中实现了PBOM算子以利用高效的变异策略。EMS使用InterPBOM初始化来构建Inter-PBOM并更新每个唯一输入的选择概率分布(利用上图中的公式1)。EMS在确定性阶段和混沌阶段中分别调用PBOM算子,以便在不同的方式中使用学习到的变异策略。EMS还记录使用的变异策略,并在触发新的唯一路径或崩溃时将其存储在训练集中以更新Intra-PBOM。

五.EVALUATION

EMS设计中,模糊测试历史主要用于提取有效的变异策略来变异种子测试用例。同时,变异位置也可以由模糊测试历史来指导。作者利用历史信息来概率性地选择记录的位置,以产生有趣的测试用例。根据过去的模糊测试结果,可以分析变异位置对某些特定分支行为的影响,从而得出更细粒度的变异位置信息。

六.CONCLUSION

本文发现了内部和跨试验模糊历史都包含了关键变异策略的丰富知识,这些变异策略隐含着部分路径约束解决方案,可以用于加速发现具有相似部分路径约束的新路径或崩溃。基于这一洞见,提出了轻量级高效的PBOM模型,用于捕捉从内部和跨试验历史中触发独特路径和崩溃的变异策略。提出了一种新的基于历史的变异框架EMS,其中PBOM是变异操作符之一,根据输入的字节值和变异类型以概率方式提供所需的变异字节值和变异类型。在9个真实世界程序上评估EMS与AFL、QSYM、MO PT、MO PT-dict、EcoFuzz和AFL++的性能。结果表明,EMS在大多数程序上发现了更多的独特漏洞,并具有更高的行覆盖率。EMS在标准化基准FuzzBench上也实现了优越的覆盖性能,并在发现不同类型的漏洞时具有不同的初始种子集。此外,进行了进一步的分析,证明了EMS的有效性和低开销。EMS在不同的跨PBOMs上的性能表现,展示了跨同一供应商的不同程序对跨试验模糊历史的贡献。总体而言,EMS可以作为改进基于变异的模糊器的覆盖率和漏洞发现的新方向。

02-19 06:21