追溯一下昨天看到的AFLGo。
Directed Greybox Fuzzing
现有的灰盒Fuzzing无法做到有效的导向性Fuzzing。有很多希望通过导向Fuzzing定位到的目标代码,如一些代码改动或补丁、关键的系统调用、复现漏洞时堆栈中的函数调用等。
本文提出了Directed Greybox Fuzzing,在定义一个目标位置的集合后,Fuzzer将程序执行位置到目标位置的Distance(距离)作为种子重要程度的权重,以此生成更加接近目标位置的输入。AFLGo的系统架构如下图所示。
具体细节见原文。论文代码已开源。