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

本文提出了一种轻量级的PBOM模型和历史驱动变异框架EMS,利用模糊测试历史中的变异策略,有效触发独特路径和崩溃。实验结果显示,EMS在多个程序上显著提高了漏洞发现和覆盖率,成为改进传统变异模糊测试的新方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

        本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略集成约束求解技术来探索触发独特路径和崩溃的测试用例,但它们缺乏对模糊测试历史的细粒度重用,即它们在不同的模糊测试试验之间很大程度上未能正确利用模糊测试历史。

        本文提出了一种轻量级且高效的 概 率 字 节 定 向 模 型(PBOM-Probabilistic Byte Orientation Model),以捕获来自试验历史的字节级变异策略,并因此有效地触发独特路径和崩溃。

        本文还提出了一种新的历史驱动变异框架EMS,用于加速基于覆盖率的模糊测试中的路径和漏洞发现。它将PBOM作为变异算子之一(包括 intra-PBOM和inter-PBOM),根据输入字节值概率性地提供所需的变异字节值在论文中,EMS 在执行过程中根据选定的长度 L 读取输入字节值。这里的选择长度 L 指的是从所有可能的测试用例位置中随机选择一个位置,并读取该位置开始的连续 L 个字节作为输入。EMS接着在哈希映射中查找匹配索引节点,以便在索引节点中匹配到输入字节值 in 和长度 L。接着,EMS根据选择概率 P,在索引节点的链表中选择一种输出策略 (out, type, F, P),并根据选定的位置和输出策略进行变异。​​​​​​​】EMS将PBOM作为附加变异操作符,根据输入字节值和长度概率性地提供所需变异字节值和类型。

PBOM是为了实现下面的目的:

从 内 部 和 内 部 历 史 中 捕 获 触 发 独 特 路 径 和 崩 溃 的 突 变 策 略 。 换 句 话 说 , 给 定 来 自 种 子 测 试 用 例 的 输 入 字 节 值 , 学 习 到 的 突 变 策 略 模 型 应 该 能 够 输 出 相 应 的 突 变 值 和 导 致 测 试 用 例 触 发 今天唯 一 路 径 或 崩 溃 的 突 变 类 型 。

实验结果表明,EMS在9个真实世界程序上比AFL、QSYM、MO PT、MO PT-dict、EcoFuzz和AFL++等最先进的模糊测试工具发现了多达4.91倍的独特漏洞,并在大多数程序上发现了更多的覆盖。

本文的创新动机在于:利用模糊测试历史来加速发现新的路径和崩溃。

二. INTRODUCTION

A. Mutation-based Fuzzing

变异测试的流程包括:1)准备初始种子集并构建队列;2)从队列中选择种子测试用例并随机变异;3)使用变异后的测试用例测试目标程序,并将触发新执行路径或异常行为的有趣测试用例添加到种子队列中;4)回到步骤2)继续模糊测试。

大多数变异测试工具使用简单的逻辑来变异测试用例,如AFL使用三个阶段的变异操作:

  • 确定性阶段:AFL利 用 位 或 字 节 级 突 变 操 作 符 , 例 如 位 翻 转 、 字 节 翻 转 和 字 节 插 入 , 来 改 变 种 子 测 试 用 例 的 每 个 位 或 字 节
  • 混沌阶段:AFL多
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值