[论文解读] MEUZZ: Smart Seed Scheduling for Hybrid Fuzzing
Meuzz 是一种基于机器学习的混合模糊测试工具,利用轻量级静态分析与动态分析特征,预测输入种子的效用并优先处理用于符号执行的输入。相比 QSYM,其代码覆盖率提升 27.1%,并发现了 47 个此前未知的漏洞。模型在不同程序间展现出强大的可重用性与迁移能力。
Seed scheduling is a prominent factor in determining the yields of hybrid fuzzing. Existing hybrid fuzzers schedule seeds based on fixed heuristics that aim to predict input utilities. However, such heuristics are not generalizable as there exists no one-size-fits-all rule applicable to different programs. They may work well on the programs from which they were derived, but not others. To overcome this problem, we design a Machine learning-Enhanced hybrid fUZZing system (MEUZZ), which employs supervised machine learning for adaptive and generalizable seed scheduling. MEUZZ determines which new seeds are expected to produce better fuzzing yields based on the knowledge learned from past seed scheduling decisions made on the same or similar programs. MEUZZ's learning is based on a series of features extracted via code reachability and dynamic analysis, which incurs negligible runtime overhead (in microseconds). Moreover, MEUZZ automatically infers the data labels by evaluating the fuzzing performance of each selected seed. As a result, MEUZZ is generally applicable to, and performs well on, various kinds of programs. Our evaluation shows MEUZZ significantly outperforms the state-of-the-art grey-box and hybrid fuzzers, achieving 27.1% more code coverage than QSYM. The learned models are reusable and transferable, which boosts fuzzing performance by 7.1% on average and improves 68% of the 56 cross-program fuzzing campaigns. MEUZZ discovered 47 deeply hidden and previously unknown bugs--with 21 confirmed and fixed by the developers--when fuzzing 8 well-tested programs with the same configurations as used in previous work.
研究动机与目标
- 解决混合模糊测试中固定启发式种子调度策略在多样化程序上表现不佳的问题。
- 开发一种基于数据驱动的自适应种子调度策略,利用机器学习实现跨不同程序的泛化能力。
- 在最小化运行时开销的前提下,提取有意义的特征以预测种子效用。
- 评估所学模型在不同模糊测试配置和程序间的可重用性与迁移能力。
- 相比当前最先进的模糊测试工具,提升代码覆盖率与漏洞发现率。
提出的方法
- Meuzz 通过代码可达性分析与动态执行性能分析提取轻量级特征,每项特征的开销仅约 5 μs。
- 利用输入后代树自动推断数据标签,通过测量每个种子的模糊测试表现与路径覆盖情况。
- 训练监督式机器学习模型,基于这些特征与标签预测种子效用,实现自适应优先级排序。
- 系统包含在线评估模块,可持续评估并提升预测质量。
- Meuzz 利用模型迁移能力,使单个训练好的模型可无需微调即在不同程序间复用。
- 该框架设计为与程序无关、适合在线运行且以效用为中心,可无缝集成至实时模糊测试流水线。
实验结果
研究问题
- RQ1基于种子特征与性能数据训练的机器学习模型,是否能超越固定启发式种子调度在混合模糊测试中的表现?
- RQ2Meuzz 在提升代码覆盖率与漏洞发现能力方面,相较于当前最先进的灰盒与混合模糊测试工具表现如何?
- RQ3所学的种子效用模型在多大程度上可跨不同程序与配置实现可重用与迁移?
- RQ4轻量级静态与动态特征能否在极低运行时开销下准确预测种子效用?
- RQ5Meuzz 的自适应调度是否能在真实模糊测试活动中带来更高的产出?
主要发现
- Meuzz 相较于当前最先进的混合模糊测试工具 QSYM,代码覆盖率提升 27.1%。
- Meuzz 在 8 个经过充分测试的程序中发现了 47 个此前未知的漏洞,其中 21 个已由开发者确认并修复。
- 所学模型平均使模糊测试性能提升 7.1%,并在 56 次跨程序模糊测试实验中的 68% 中实现性能增强。
- 特征提取的平均开销仅为每种子 5 μs,确保了极低的运行时开销。
- 系统模型具有高度可迁移性,可在无需重新训练的情况下有效复用于不同程序。
- Meuzz 在代码覆盖率与唯一漏洞发现率方面均优于所有评估的模糊测试工具,展现出卓越的可扩展性与适应能力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。