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.
翻译:灰色信箱 fluzzing 是现代软件系统中检测安全弱点和其他错误的有效测试方法。 灰色信箱 furzzing 也可以与防毒剂相结合使用。 灰色信箱 furzzizer (ASAN) 等防毒剂可以进一步增强某些类别错误的检测, 如缓冲溢出和使用自免错误。 但是, 防毒剂还可以引入额外的性能管理管理器。 这可以降低灰色信箱模式furzzzzing的性能 -- -- 与ASAN一起测量为2.36X级, 部分否定使用防毒剂的好处。 最近的研究还可以将额外的间接费用与程序启动/ 降压费用相结合, 诸如 Expet- mosefzzer (ASAN) 等, 以进一步增强防毒剂检测某些类别的错误。 但是, 消毒剂还能够降低灰色信箱模式的性能 -- -- 以2. 36X 来测量与ASAN 相混淆的性能 -- -- 部分否定使用防毒剂的效益。 最新的研究将所有读/ 14 操作都用于检查程序启动程序启动/ 启动/ 程序, 运行一个用于执行 mess- demodemodeal dismodealdal 。