arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2406.04517cs.CR
收藏

FOX:将覆盖率引导模糊测试建模为在线随机控制

FOX: Coverage-guided Fuzzing as Online Stochastic Control

Dongdong She, Adam Storek, Yuchong Xie, Seoyoung Kweon, Prashast Srivastava, Suman Jana

AI总结:

本文提出FOX,将覆盖率引导模糊测试建模为端到端在线随机控制问题,通过细粒度分支距离信息优化调度器和变异器,在38个测试程序上相比AFL++平均覆盖率提升最高达26.45%,并发现20个独特错误。

摘要:

模糊测试是一种通过生成随机测试输入并在目标程序上执行来发现软件漏洞的有效技术。然而,由于难以发现深层隐藏的漏洞,对大型复杂程序进行模糊测试仍然具有挑战性。本文针对现有覆盖率引导模糊测试器的局限性,重点研究调度器和变异器组件。现有调度器存在信息稀疏以及无法处理细粒度反馈指标的问题。变异器对目标程序分支不敏感,导致计算浪费和覆盖率探索速度变慢。为了克服这些问题,我们提出了一种用于覆盖率引导模糊测试的端到端在线随机控制形式化方法。我们的方法包含一个新颖的调度器和定制变异器,能够适应分支逻辑,最大化在多个阶段中实现的总边覆盖率。调度器利用细粒度分支距离度量来识别前沿分支,即可能实现新覆盖率的分支。变异器利用分支距离信息执行高效且有针对性的种子变异,以最小的开销实现稳健的进展。我们提出了FOX,这是我们的控制理论方法的概念验证实现,并将其与业界标准的覆盖率引导模糊测试器进行比较。在FuzzBench数据集和复杂真实世界程序(共38个测试程序)上进行的6个CPU年的广泛评估表明,FOX优于现有的最先进模糊测试器,在真实世界独立程序中相比最先进的AFL++平均覆盖率提升高达26.45%,在FuzzBench程序中提升6.59%。此外,它在流行的真实世界应用中发现了20个独特的错误,其中8个是此前未知的,展示了真实世界的安全影响。

英文摘要:

Fuzzing is an effective technique for discovering software vulnerabilities by generating random test inputs and executing them against the target program. However, fuzzing large and complex programs remains challenging due to difficulties in uncovering deeply hidden vulnerabilities. This paper addresses the limitations of existing coverage-guided fuzzers, focusing on the scheduler and mutator components. Existing schedulers suffer from information sparsity and the inability to handle fine-grained feedback metrics. The mutators are agnostic of target program branches, leading to wasted computation and slower coverage exploration. To overcome these issues, we propose an end-to-end online stochastic control formulation for coverage-guided fuzzing. Our approach incorporates a novel scheduler and custom mutator that can adapt to branch logic, maximizing aggregate edge coverage achieved over multiple stages. The scheduler utilizes fine-grained branch distance measures to identify frontier branches, where new coverage is likely to be achieved. The mutator leverages branch distance information to perform efficient and targeted seed mutations, leading to robust progress with minimal overhead. We present FOX, a proof-of-concept implementation of our control-theoretic approach, and compare it to industry-standard coverage-guided fuzzers. 6 CPU-years of extensive evaluations on the FuzzBench dataset and complex real-world programs (a total of 38 test programs) demonstrate that FOX outperforms existing state-of-the-art fuzzers, achieving average coverage improvements up to 26.45% in real-world standalone programs and 6.59% in FuzzBench programs over the state-of-the-art AFL++. In addition, it uncovers 20 unique bugs in popular real-world applications including eight that are previously unknown, showcasing real-world security impact.

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

↑