Dowsing for Overflows: A Guided Fuzzer to Find Buffer Boundary Violations (SEC 2013)
本文提出了Dowser,一个结合了污点分析(Taint Tracking)、程序分析(Program Analysis)和符号执行(Symbolic Execution)的导向(Guided)Fuzzer,其能够定位到程序逻辑深处的缓冲区溢出漏洞。
对于缓冲区溢出,我们需要考虑的只有那些访存指令,并进一步对他们的行为进行分析。具体地说,先使用污点分析判断哪些输入数据会影响到数组的下标;接下来对相应的数据符号化,并进行符号执行;最后将符号执行得到的输入结果作为Fuzzing输入来挖掘更深层次的漏洞。
Dowser系统总览如下图所示。
论文代码未开源。