一句话:GraphFuzz:将函数调用序列建模为数据流图、支持图变异的模糊测试器,可自动测试底层库 API。
本文提出 GraphFuzz,一种能够自动测试底层库 API 的模糊测试器。与现有模糊测试器不同,GraphFuzz 将程序执行过程中调用的函数序列建模为数据流图,从而可以在数据层面和执行轨迹层面同时执行基于图的变异,并感知输入结构、代码覆盖率与对象生命周期。为降低开发者集成成本,GraphFuzz 还提供了自动化规格生成器,可自动推导测试所需的 API 使用约束。作者介绍了 GraphFuzz 的设计与实现,说明其能够有效针对需要复杂调用序列和对象生命周期管理的库接口进行模糊测试。
We present the design and implementation of GraphFuzz, a new structure-, coverage- and object lifetime-aware fuzzer capable of automatically testing low-level Library APIs. Unlike other fuzzers, GraphFuzz models sequences of executed functions as a dataflow graph, thus enabling it to perform graph-based mutations both at the data and at the execution trace level. GraphFuzz comes with an automated specification generator to minimize the developer integration effort.
DOI 原文 ·
@inproceedings{paperbot6935,
title = {GraphFuzz},
author = {Harrison Green and Thanassis Avgerinos},
booktitle = {ICSE},
year = {2022},
doi = {10.1145/3510003.3510228}
}