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

用于检测内存错误的高效灰盒模糊技术

Efficient Greybox Fuzzing to Detect Memory Errors

Jinsheng Ba, Gregory J. Duck, Abhik Roychoudhury

摘要:

灰盒模糊测试是一种行之有效的测试方法,用于检测现代软件系统中的安全漏洞和其他错误。灰盒模糊还可以与诸如AddressSanitizer(ASAN)之类的杀毒程序结合使用,以进一步增强对某些类别的错误的检测,例如缓冲区溢出和释放后使用错误。然而,消毒剂也引入了额外的性能开销,这可能会降低灰盒模式模糊的性能-用ASAN模糊的2.36倍的数量级测量-首先部分否定了使用消毒剂的好处。最近的研究将额外的开销归因于程序启动/拆卸成本,这可能会主导fork模式模糊。在本文中,我们提出了一个新的内存错误消毒设计,专门针对叉模式模糊优化。其基本思想是使用随机标记来标记对象边界,而不是使用不相交的元数据(如传统的消毒设计所使用的)。然后,所有读/写操作都被检测以检查令牌,如果存在,则将检测到内存错误。由于我们的设计不使用不相交的元数据,它也是非常轻量级的,这意味着程序启动和拆卸成本最小化的fork模式模糊的好处。我们以ReZZan工具的形式实现了我们的设计,并根据配置的不同,显示出1.14- 1.27倍的改进模糊性能开销。

英文摘要:

Greybox fuzzing is a proven and effective testing method for the detection of security vulnerabilities and other bugs in modern software systems. Greybox fuzzing can also be used in combination with a sanitizer, such as AddressSanitizer (ASAN), to further enhance the detection of certain classes of bugs such as buffer overflow and use-after-free errors. However, sanitizers also introduce additional performance overheads, and this can degrade the performance of greybox mode fuzzing -- measured in the order of 2.36X for fuzzing with ASAN -- partially negating the benefit of using a sanitizer in the first place. Recent research attributes the extra overhead to program startup/teardown costs that can dominate fork-mode fuzzing. In this paper, we present a new memory error sanitizer design that is specifically optimized for fork-mode fuzzing. The basic idea is to mark object boundaries using randomized tokens rather than disjoint metadata (as used by traditional sanitizer designs). All read/write operations are then instrumented to check for the token, and if present, a memory error will be detected. Since our design does not use a disjoint metadata, it is also very lightweight, meaning that program startup and teardown costs are minimized for the benefit of fork-mode fuzzing. We implement our design in the form of the ReZZan tool, and show an improved fuzzing performance overhead of 1.14-1.27X, depending on the configuration.

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

↑