Directed fuzzing is a useful testing technique that aims to efficiently reach target code sites in a program. The core of directed fuzzing is the guiding mechanism that directs the fuzzing to the specified target. A general guiding mechanism adopted in existing directed fuzzers is to calculate the control-flow distance between the current progress and the target, and use that as feedback to guide the directed fuzzing. A fundamental problem with the existing guiding mechanism is that the distance calculation is \emph{feasibility-unaware}. In this work, we propose feasibility-aware directed fuzzing named AFLGopher. Our new feasibility-aware distance calculation provides pragmatic feedback to guide directed fuzzing to reach targets efficiently. We propose new techniques to address the challenges of feasibility prediction. Our new classification method allows us to predict the feasibility of all branches based on limited traces, and our runtime feasibility-updating mechanism gradually and efficiently improves the prediction precision. We implemented AFLGopher and compared AFLGopher with state-of-the-art directed fuzzers including AFLGo, enhanced AFLGo, WindRanger, BEACON and SelectFuzz. AFLGopher is 3.76x, 2.57x, 3.30x, 2.52x and 2.86x faster than AFLGo, BEACON, WindRanger, SelectFuzz and enhanced AFLGo, respectively, in reaching targets. AFLGopher is 5.60x, 5.20x, 4.98x, 4.52x, and 5.07x faster than AFLGo, BEACON, WindRanger, SelectFuzz and enhanced AFLGo, respectively, in triggering known vulnerabilities.
翻译:定向模糊测试是一种有效的测试技术,旨在高效地到达程序中的目标代码位置。定向模糊测试的核心在于引导机制,该机制将模糊测试导向指定的目标。现有定向模糊测试工具普遍采用的引导机制是计算当前执行进度与目标之间的控制流距离,并将其作为反馈来指导定向模糊测试。现有引导机制的一个根本问题在于距离计算是“可行性无感知”的。在本工作中,我们提出了名为AFLGopher的可行性感知定向模糊测试方法。我们新的可行性感知距离计算提供了实用的反馈,以高效引导定向模糊测试到达目标。我们提出了新技术来解决可行性预测的挑战。新的分类方法使我们能够基于有限的执行轨迹预测所有分支的可行性,而运行时可行性更新机制则逐步高效地提升预测精度。我们实现了AFLGopher,并将其与最先进的定向模糊测试工具(包括AFLGo、增强版AFLGo、WindRanger、BEACON和SelectFuzz)进行了比较。在到达目标方面,AFLGopher分别比AFLGo、BEACON、WindRanger、SelectFuzz和增强版AFLGo快3.76倍、2.57倍、3.30倍、2.52倍和2.86倍。在触发已知漏洞方面,AFLGopher分别比AFLGo、BEACON、WindRanger、SelectFuzz和增强版AFLGo快5.60倍、5.20倍、4.98倍、4.52倍和5.07倍。