[论文解读] Mutation Analysis: Answering the Fuzzing Challenge
本文提出将变异分析作为传统模糊测试评估指标(如代码覆盖率和种子漏洞基准)的稳健、无偏见的替代方案。针对在模糊测试中应用变异分析所面临的挑战——如计算成本高、非确定性以及缺乏集成工具链——本文通过引入混合评估曲线、利用静态测试集减少冗余,以及估算等价变异体,将变异分析定位为模糊测试研究中可靠、全面的oracle质量度量标准。
Fuzzing is one of the fastest growing fields in software testing. The idea behind fuzzing is to check the behavior of software against a large number of randomly generated inputs, trying to cover all interesting parts of the input space, while observing the tested software for anomalous behaviour. One of the biggest challenges facing fuzzer users is how to validate software behavior, and how to improve the quality of oracles used. While mutation analysis is the premier technique for evaluating the quality of software test oracles, mutation score is rarely used as a metric for evaluating fuzzer quality. Unless mutation analysis researchers can solve multiple problems that make applying mutation analysis to fuzzing challenging, mutation analysis may be permanently sidelined in one of the most important areas of testing and security research. This paper attempts to understand the main challenges in applying mutation analysis for evaluating fuzzers, so that researchers can focus on solving these challenges.
研究动机与目标
- 解决模糊测试中oracle质量这一关键挑战,该问题仍是有效漏洞检测的主要瓶颈。
- 识别并分析阻碍变异分析在模糊测试评估中采用的关键技术与实际障碍。
- 提出一个框架,使变异分析能够作为评估模糊测试有效性时可靠、可扩展且无偏见的度量标准。
- 通过混合评估与重用静态测试集,降低模糊测试环境中变异分析的计算开销。
- 通过展示其克服现有评估实践局限的潜力,提升模糊测试研究社区对变异分析的认识与集成。
提出的方法
- 提出一种混合评估曲线,结合代码覆盖率与变异体杀死时间线,将每个变异体的杀死时间作为性能度量指标。
- 通过提取最终杀死变异体的输入集合并将其用作静态测试集,实现冗余减少,以实现最小化变异体计算。
- 应用物种丰富度估计(Böhme et al.)方法,利用最终的静态测试集估算等价变异体的范围。
- 建议对剩余变异体进行采样以评估其可杀死性,同时利用标准变异分析技术检测等价变异体。
- 建议使用检查覆盖度等代理度量以降低执行成本,同时保留变异分析的核心故障检测能力。
- 倡导开发原生支持模糊测试与变异分析的统一框架,以减少工具链与工作流障碍。
实验结果
研究问题
- RQ1变异分析能否作为评估模糊测试质量的更可靠、更少偏见的替代方案,以替代代码覆盖率和种子漏洞基准?
- RQ2在模糊测试活动中应用变异分析时,主要的计算与方法论挑战是什么?
- RQ3如何缓解在动态、非确定性模糊测试环境中变异分析的高昂计算成本?
- RQ4从模糊测试输入中提取的静态测试集在多大程度上可用于减少变异体冗余并提高效率?
- RQ5在模糊测试场景中,如何估算等价变异体?哪些统计方法对此是可行的?
主要发现
- 变异分析在本质上比代码覆盖率更稳健,且不易出现饱和,因此作为模糊测试中故障检测能力的代理指标更具优势。
- 所提出的混合评估曲线能够追踪随时间推移的变异体杀死情况,为模糊测试性能提供一种动态、时间感知的度量指标。
- 将模糊测试最终输入集合用作静态测试集,可有效减少冗余并实现最小化变异体计算。
- 物种丰富度估计为估算模糊测试场景中等价变异体数量提供了一种可行但未经验证的方法。
- 变异分析的计算成本仍是主要障碍,尤其在非确定性环境和需要统计置信度的长时间运行模糊测试中更为显著。
- 缺乏集成工具链以及对变异分析的认知度低,是模糊测试研究社区采纳该方法的主要障碍。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。