arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2602.22729cs.SEcs.CR
收藏

RandSet: 随机化语料库缩减用于模糊测试种子调度

RandSet: Randomized Corpus Reduction for Fuzzing Seed Scheduling

Hong Kong University of Science and Technology(香港科技大学);Fudan University(复旦大学)

Yuchong Xie, Kaikai Zhang, Yu Liu, Rundong Yang, Ping Chen, Shuai Wang, Dongdong She

AI总结:

RandSet通过随机化语料库缩减技术,在减少语料库大小的同时实现多样化的种子选择,显著提升模糊测试效率并降低运行开销。

摘要:

在模糊测试种子调度中,种子爆炸是一个根本性问题,其中模糊器维护一个庞大的语料库,却无法选择有前途的种子。现有工作聚焦于种子优先级,但仍因语料库大小保持庞大而遭受种子爆炸。我们从新的视角出发:语料库缩减,即计算一个种子语料库子集。然而,语料库缩减可能导致种子多样性差和较大的运行时间开销。先前技术如cull_queue、AFL-Cmin和MinSet在多样性或运行时间开销方面表现不佳,使其不适合高频种子调度。我们提出RandSet,一种新颖的随机化语料库缩减技术,能够减少语料库大小并同时产生多样化的种子选择,同时具有最小的运行时间开销。我们的关键见解是将随机性引入语料库缩减,以享受随机算法的两个优点:随机输出(多样化的种子选择)和低运行时间成本。具体来说,我们将语料库缩减公式化为一个集合覆盖问题,并计算一个随机子集覆盖整个语料库的所有特征。然后,我们从这个小的随机子集调度种子,而不是整个语料库,从而有效缓解种子爆炸。我们实现了RandSet在三个流行的模糊器上:AFL++、LibAFL和Centipede,并在独立程序、FuzzBench和Magma上进行了评估。结果表明,RandSet在其他缩减技术上实现了显著更多样化的种子选择,平均子集比率为独立程序和FuzzBench分别为4.03%和5.99%。RandSet在独立程序上实现了16.58%的覆盖率提升,在FuzzBench上达到3.57%,在Magma上触发了比最先进技术多7个真实故障,同时仅引入1.17%-3.93%的开销。

英文摘要:

Seed explosion is a fundamental problem in fuzzing seed scheduling, where a fuzzer maintains a huge corpus and fails to choose promising seeds. Existing works focus on seed prioritization but still suffer from seed explosion since corpus size remains huge. We tackle this from a new perspective: corpus reduction, i.e., computing a seed corpus subset. However, corpus reduction could lead to poor seed diversity and large runtime overhead. Prior techniques like cull_queue, AFL-Cmin, and MinSet suffer from poor diversity or prohibitive overhead, making them unsuitable for high-frequency seed scheduling. We propose RandSet, a novel randomized corpus reduction technique that reduces corpus size and yields diverse seed selection simultaneously with minimal overhead. Our key insight is introducing randomness into corpus reduction to enjoy two benefits of a randomized algorithm: randomized output (diverse seed selection) and low runtime cost. Specifically, we formulate corpus reduction as a set cover problem and compute a randomized subset covering all features of the entire corpus. We then schedule seeds from this small, randomized subset rather than the entire corpus, effectively mitigating seed explosion. We implement RandSet on three popular fuzzers: AFL++, LibAFL, and Centipede, and evaluate it on standalone programs, FuzzBench, and Magma. Results show RandSet achieves significantly more diverse seed selection than other reduction techniques, with average subset ratios of 4.03% and 5.99% on standalone and FuzzBench programs. RandSet achieves a 16.58% coverage gain on standalone programs and up to 3.57% on FuzzBench in AFL++, triggers up to 7 more ground-truth bugs than the state-of-the-art on Magma, while introducing only 1.17%-3.93% overhead.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑