arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2401.11642cs.SEcs.CRcs.OS
收藏

SyzRetrospector:一项针对 Syzbot 的大规模回顾性研究

SyzRetrospector: A Large-Scale Retrospective Study of Syzbot

Joseph Bursey, Ardalan Amiri Sani, Zhiyun Qian

AI总结:

本文提出 SyzRetrospector 工具,通过大规模回顾性分析 559 个 Linux 内核缺陷,揭示 Syzbot 在能够发现缺陷前平均隐藏 331.17 天,并分析延迟原因与改进方向。

摘要:

在过去 6 年中,Syzbot 夜以继日地对 Linux 内核进行模糊测试,报告了超过 5570 个缺陷,其中 4604 个已被修补[11]。尽管这一成果令人印象深刻,但我们发现发现一个缺陷的平均时间超过 405 天。此外,我们发现当前常用的指标(如发现时间和发现的缺陷数量)在评估 Syzbot 时并不准确,因为缺陷往往在其生命周期的大部分时间里对模糊测试器处于隐藏状态。在本文中,我们旨在更好地理解和量化 Syzbot 在发现缺陷方面的性能与改进。我们的工具 SyzRetrospector 采用了一种不同的方法来评估 Syzbot:找出 Syzbot 最早能够发现某个缺陷的时间点,以及该缺陷为何会在那时被揭示出来。我们大规模地使用 SyzRetrospector 分析了 559 个缺陷,发现缺陷在 Syzbot 甚至能够发现它们之前平均隐藏了 331.17 天。我们进一步展示了关于揭示因素行为的研究发现,包括某些缺陷为何比其他缺陷更难被揭示、过去 6 年中延迟的变化趋势,以及缺陷位置与延迟之间的关系。我们还为改善 Syzbot 的延迟问题提供了关键启示。

英文摘要:

Over the past 6 years, Syzbot has fuzzed the Linux kernel day and night to report over 5570 bugs, of which 4604 have been patched [11]. While this is impressive, we have found the average time to find a bug is over 405 days. Moreover, we have found that current metrics commonly used, such as time-to-find and number of bugs found, are inaccurate in evaluating Syzbot since bugs often spend the majority of their lives hidden from the fuzzer. In this paper, we set out to better understand and quantify Syzbot's performance and improvement in finding bugs. Our tool, SyzRetrospector, takes a different approach to evaluating Syzbot by finding the earliest that Syzbot was capable of finding a bug, and why that bug was revealed. We use SyzRetrospector on a large scale to analyze 559 bugs and find that bugs are hidden for an average of 331.17 days before Syzbot is even able to find them. We further present findings on the behaviors of revealing factors, how some bugs are harder to reveal than others, the trends in delays over the past 6 years, and how bug location relates to delays. We also provide key takeaways for improving Syzbot's delays.

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

↑