xFUZZ:一种支持运行时自适应的细粒度模糊测试策略组合框架

“   在模糊测试(Fuzzing)领域,“策略”决定了效率的上限。无论是输入生成方式、变异算子,还是调度与反馈机制,都会直接影响漏洞发现能力。然而,现有模糊测试工具大多采用静态、固定的策略配置,难以适应程序行为的动态变化。

为了解决这一问题,研究者提出了xFUZZ,一种支持细粒度、运行时自适应的模糊测试策略组合框架,允许模糊测试系统在执行过程中根据反馈动态调整和组合多种策略,从而显著提升漏洞挖掘效率。 ”

  • 📄 论文标题:xFUZZ: A Flexible Framework for Fine-Grained, Runtime-Adaptive Fuzzing Strategy Composition

  • 📅 发表时间: Proceedings of the ACM on Software Engineering, ISSTA, 2025

  • 🏫 作者单位:中关村实验室、清华大学等

  • 💡开源代码: 

    https://anonymous.4open.science/r/xfuzz_submit-6BE0

01—方法介绍

xFUZZ的核心思想可以概括为一句话:将模糊测试策略“模块化”,并在运行时动态组合与调度。整体框架主要包括以下三个阶段:

① 策略解耦与模块化

将输入生成、变异、调度、反馈分析等策略拆解为可独立组合的组件。

② 运行时反馈感知

持续收集覆盖率、路径特征与执行反馈,为策略调整提供依据。

③ 自适应策略组合

根据运行状态动态启用、切换或融合不同策略,实现细粒度调控。

图片

图 2. xFUZZ整体框架

小结:xFUZZ 不再把 Fuzzer 看作“单一算法”,而是一个可持续进化的策略系统。

02—关键机制

  1. 细粒度策略组合,支持在不同阶段、不同程序状态下采用不同fuzzing 策略。
  2. 运行时自适应调整,不依赖离线训练或人工配置,完全基于在线反馈。
  3. 高度可扩展框架,新策略可按模块直接接入,降低开发成本。

    模块

    设计思路

    作用

    策略组件化

    将不同 fuzzing 策略抽象为独立模块

    提升系统灵活性与可扩展性

    运行时反馈分析

    实时监控覆盖率、路径与执行特征

    为策略调整提供决策依据

    自适应调度机制

    根据反馈动态选择或组合策略

    避免策略失效或资源浪费

    统一执行框架

    对外提供一致的 fuzzing 接口

    降低集成与部署成本

    小结:该设计突破了传统 Fuzzer “策略写死”的限制,使模糊测试具备在线优化能力。

    03—实验结果

    作者已将Splice作为变异调度器的扩展集成到xFUZZ中,使其可自由组合使用任何变异调度器。但由于其可能影响EcoFuzz插件的算法数据完整性,Splice无法与EcoFuzz组合使用。xFUZZ共提供14种(4×2×2-2)组合方案。除上述插件外,变异器调度器还支持30个变异器插件,实现位翻转、字典、算术等变异操作。主要实验结果如下。


    表1显示了xFUZZ的分支覆盖率能力。实验计算了六个模糊测试器在12个目标程序上的平均代码覆盖率。

    表1.  Fuzzbench平台上6款模糊测试工具对12个目标程序的分支覆盖率结果,基于10轮测试(每轮24小时)

    图片

    图片

     


    表2显示了协同模糊测试的代码覆盖率比较结果。由于两种模糊测试工具在覆盖率测量机制上的差异,实验采用经AFL++的PCGUARD工具注入的二进制文件进行统一覆盖率测量。实验持续24小时,并使用Unifuzz数据集的相同初始种子重复进行了五次测试。

    表1. Unifuzz平台中xFUZZ与Autofz对12个目标程序的分支覆盖率结果(基于5轮运行,每轮24小时)

    图片

    小结:通过将核心模糊测试组件模块化,并整合基于汤普森采样的动态策略选择算法,xFUZZ能够实时调整配置以优化漏洞发现与代码覆盖率。实验结果表明,xFUZZ超越了当前最先进的模糊测试工具,发现的独特漏洞数量提升10.07%,代码覆盖率最高可达11.48%

    📌 总结

    xFUZZ从系统设计层面重新思考了模糊测试策略的组织方式,将“策略自适应”作为一等公民纳入框架之中。相比依赖经验调参的传统方法,该框架更符合真实软件系统的动态特性。这一工作表明,未来Fuzzing的竞争焦点,可能不在于单个算法,而在于策略协同与自适应能力

    📣 欢迎留言讨论

    • 你认为自适应策略是否会成为下一代 Fuzzer 的标配?

    • xFUZZ 这种“策略即组件”的设计,是否有机会统一不同 Fuzzing 流派?

    📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值