一、论文相关信息
二、现有研究的不足
现有的Greybox模糊器(GF)无法有效地定向到有问题的更改或补丁、关键系统调用或危险位置、或定向到我们希望重现的已报告漏洞的堆栈跟踪中的函数。
三、知识点
(1)introduction
定向模糊测试系统通常包含以下几个部分:补丁测试、崩溃重现、静态分析报告验证、信息流检测。
大多数定向(白盒)模糊测试系统均基于符号执行,符号执行及那个静态分析中的图可达性问题转换成一个可迭代的约束求解问题。但是基于符号执行的白盒fuzzer只是定向fuzzing的一个trivial handle,因为其需要花费大量的时间进行程序分析和约束求解。
符号执行的流程例子:
图1 一段示例代码
本文提出的定向灰盒模糊测试(Directed greybox fuzzing,DGF)将可达性问题看成优化问题,使用模拟退火算法进行优化。
路径测试工具(path testing tool):KATCH(符号执行引擎KLEE)、PRV、MATPIX、CIE、DiSE;
崩溃重现工具(crash reproduction tool):BugRedux
(2)motivation
图2 心脏滴血实例代码
心脏滴血漏洞原理:回复包的内容是请求包中的载荷复制而来,但具体复制多少数据不是由载荷的实际大小决定,而是由发送方声称的大小决定。因此,如果声称载荷的长度比实际载荷还要大,memcpy()函数处理会复制请求包中的数据,还会复制更多数据到回复包。
种子通过变异生成新的输入的个数,也被称为能量。