datAFLow: Towards a Data-Flow-Guided Fuzzer (NDSS 2022)
本文认为控制流(Control-flow)的覆盖率反馈是粗粒度的,而数据流(Data-flow)能够反映出更多的程序行为。然而,基于数据流的Fuzzer往往需要很多静态分析的操作,会带来很多运行时的开销。
本文提出了datAFLow,一种轻量级数据流性能分析(Data-flow Profiling)的灰盒Fuzzer。控制流边(Control-flow Edges)展示的是程序中各个操作之间的执行顺序,而数据流边(Data-flow Edges)展示的是产生数据和使用数据等操作之间的依赖关系。因此,基于数据流的Fuzzer能挖掘到更加不一样的漏洞。
一个典型的灰盒Fuzzer的架构图如下。
datAFLow的架构图如下所示。