We use cookies to improve your experience with our site.

ovAFLow:使用基于模糊测试的污点推理检测内存漏洞

ovAFLow: Detecting Memory Corruption Bugs with Fuzzing-Based Taint Inference

  • 摘要: 1、研究背景(context):
    灰盒模糊测试是检测软件漏洞的有效技术,例如内存漏洞。以前的模糊测试器在检测内存漏洞时要么使用重量级分析,要么它们的检测技术不是为内存漏洞检测定制的。
    2、目的(Objective):
    我们的工作旨在使用轻量级的技术有效地挖掘程序中的内存漏洞。模糊测试的本质就是为了挖掘漏洞,我们的研究主要是增强了模糊测试工具的内存漏洞挖掘能力。
    3、方法(Method):
    ovAFLow首先使用静态分析确认了程序中可能造成内存漏洞的位置,包括内存操作函数参数以及内存循环变量。并使用了基于模糊测试的污点推断技术,建立了输入字节与这些位置的对应关系,使用高效的变异策略,有效地触发了程序中的内存漏洞。
    4、结果(Result & Findings):
    ovAFLow能比其他工具找到更多的独特崩溃,更多的内存漏洞,性能开销大概是10%。同时还比其他工具达到了12%-30%更多的覆盖率。ovAFLow发现了12个新的内存漏洞,并获得了2个CVE编号。
    5、结论(Conclusions):
    本文的研究证明了模糊测试应该保持较高的速度才能有较好的效果,因此,在优化模糊测试时不应该采取重量级的辅助技术,应该使用轻量级的技术。此外,模糊测试的本质就是为了漏洞挖掘,我们应该更多的关注漏洞挖掘能力。本研究还发现了程序中容易造成内存漏洞的位置并进行了总结,包括内存操作函数参数以及内存循环变量,这些漏洞位置应该受到更多的关注。

     

    Abstract: Grey-box fuzzing is an effective technology to detect software vulnerabilities, such as memory corruption. Previous fuzzers in detecting memory corruption bugs either use heavy-weight analysis, or use techniques which are not customized for memory corruption detection. In this paper, we propose a novel memory bug guided fuzzer, ovAFLow. To begin with, we broaden the memory corruption targets where we frequently identify bugs. Next, ovAFLow utilizes light-weight and effective methods to build connections between the fuzzing inputs and these corruption targets. Based on the connection results, ovAFLow uses customized techniques to direct the fuzzing process closer to memory corruption. We evaluate ovAFLow against state-of-the-art fuzzers, including AFL (american fuzzy lop), AFLFast, FairFuzz, QSYM, Angora, TIFF, and TortoiseFuzz. The evaluation results show better vulnerability detection ability of ovAFLow, and the performance overhead is acceptable. Moreover, we identify 12 new memory corruption bugs and two CVEs (common vulnerability exposures) with the help of ovAFLow.

     

/

返回文章
返回