Dynamic data flow analysis has been widely used to guide greybox fuzzing. However, traditional dynamic data flow analysis tends to go astray in the massive path tracking and requires to process a large volume of data, resulting in low efficiency in reaching the target location. In this paper, we propose a directed greybox fuzzer based on dynamic constraint filtering and focusing (CONFF). First, all path constraints are tracked, and those with high priority are filtered as the next solution targets. Next, focusing on a single path constraint to be satisfied, we obtain its data condition and probe the mapping relationship between it and the input bytes through multi-byte mapping and single-byte mapping. Finally, various mutation strategies are utilized to solve the path constraint currently focused on, and the target location of the program is gradually approached through path selection. The CONFF fuzzer can reach a specific location faster in the target program, thus efficiently triggering the crash. We designed and implemented a prototype of the CONFF fuzzer and evaluated it with the LAVA-1 dataset and some real-world vulnerabilities. The results show that the CONFF fuzzer can reproduce crashes on the LAVA-1 dataset and most of the real-world vulnerabilities. For most vulnerabilities, the CONFF fuzzer reproduced the crashes with significantly reduced time compared to state-of-the-art fuzzers. On average, the CONFF fuzzer was 23.7x faster than the state-of-the-art code coverage-based fuzzer Angora and 27.3x faster than the classical directed greybox fuzzer AFLGo.
翻译:动态数据流分析已被广泛用于指导灰盒模糊测试。然而,传统的动态数据流分析在大规模路径跟踪方面容易出错,需要处理大量数据,导致在达到目标位置方面效率低下。在本文中,我们提出了一种基于动态约束过滤和集中(CONFF)的指向性灰盒模糊器。首先,跟踪所有路径约束,筛选具有高优先级的约束作为下一个解决方案目标。接下来,集中于一个需要满足的路径约束,我们通过多字节映射和单字节映射获得其数据条件,并探测其与输入字节之间的映射关系。最后,采用各种变异策略来解决当前集中的路径约束,通过路径选择逐渐接近程序的目标位置。CONFF模糊测试器可以更快地到达目标程序的特定位置,从而有效地触发崩溃。我们设计并实现了CONFF模糊测试器的原型,并使用LAVA-1数据集和一些实际漏洞进行评估。结果表明,CONFF模糊测试器可以在LAVA-1数据集和大多数实际漏洞上重现崩溃。对于大多数漏洞,CONFF模糊测试器与基于代码覆盖的模糊测试器Angora相比,重现崩溃的时间显著缩短。平均而言,CONFF模糊测试器比最先进的代码覆盖测试器Angora快23.7倍,比经典的有向灰盒模糊测试器AFLGo快27.3倍。