paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Group-based corpus scheduling for parallel fuzzing

面向并行模糊测试的基于分组的语料调度
FSE Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2022匹配度 1/10 · 该论文研究并行模糊测试中的语料调度与任务划分,属于动态测试/模糊测试方向,与用户关注的静态分析、LLM/Agent 交叉、浮点程序分析及贝叶斯程序分析均无直接关系。虽然具有工业落地和工具实现价值,但不匹配当前研究画像的核心问题。引用 6 inbox
Taotao Gu, Xiang Li, Shuaibing Lu, Jianwen Tian, Yuanping Nie, Xiaohui Kuang, Zhechao Lin, Chenyifan Liu, Jie Liang, Yu Jiang
crossref: 2026-09-12

AI 速览

一句话:提出基于分组的语料调度策略并实现 glibFuzzer,提升并行模糊测试的任务划分与语料分配效率。

并行模糊测试依赖硬件资源保证吞吐与效率,但任务划分和语料分配常被忽视。本文提出基于分组的语料调度策略:先将全局语料划分为不同子集,再为其分配能量分数与差异分数;能量分数主要由种子大小和覆盖信息长度决定,差异分数描述不同种子子集所覆盖代码的差异程度。每轮关键局部语料构建时,主节点结合两种分数选择高质量种子,以提升测试效率并避免任务冲突。作者实现了并行模糊器 glibFuzzer,该策略已被 LLVM 社区接收。在真实程序与 FuzzBench 上的评估表明,经过 4×24 CPU 小时,glibFuzzer 在 18 个真实程序上比 libFuzzer 多覆盖 22.02% 分支、执行测试用例数多 19.42 倍,并相较 AFL、PAFL、UniFuzz 平均分支覆盖率分别提升 73.02%、55.02%、55.86%,还发现了 100 多个独特漏洞。

问题
并行模糊测试中任务划分与语料分配过程常被忽视,导致测试效率受限和任务冲突。
方法
将全局语料分组,计算基于种子大小与覆盖信息长度的能量分数及描述代码覆盖差异的差异分数,主节点据此选择高质量种子构建关键局部语料。
评估
在真实程序和 FuzzBench 上与 libFuzzer、AFL、PAFL、UniFuzz 对比,报告分支覆盖率、执行用例数及发现的独特漏洞数。
原文摘要(Abstract)

Parallel fuzzing relies on hardware resources to guarantee test throughput and efficiency. In industrial practice, it is well known that parallel fuzzing faces the challenge of task division, but most works neglect the important process of corpus allocation. In this paper, we proposed a group-based corpus scheduling strategy to address these two issues, which has been accepted by the LLVM community. And we implement a parallel fuzzer based on this strategy called glibFuzzer. glibFuzzer first groups the global corpus into different subsets and then assigns different energy scores and different scores to them. The energy scores were mainly determined by the seed size and the length of coverage information, and the difference score can describe the degree of difference in the code covered by different subsets of seeds. In each round of key local corpus construction, the master node selects high-quality seeds by combining the two scores to improve test efficiency and avoid task conflict. To prove the effectiveness of the strategy, we conducted an extensive evaluation on the real-world programs and FuzzBench. After 4×24 CPU-hours, glibFuzzer covered 22.02% more branches and executed 19.42 times more test cases than libFuzzer in 18 real-world programs. glibFuzzer showed an average branch coverage increase of 73.02%, 55.02%, 55.86% over AFL, PAFL, UniFuzz, respectively. More importantly, glibFuzzer found over 100 unique vulnerabilities.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6981,
  title = {Group-based corpus scheduling for parallel fuzzing},
  author = {Taotao Gu and Xiang Li and Shuaibing Lu and Jianwen Tian and Yuanping Nie and Xiaohui Kuang and Zhechao Lin and Chenyifan Liu and Jie Liang and Yu Jiang},
  booktitle = {FSE},
  year = {2022},
  doi = {10.1145/3540250.3560885}
}