- 标题: FuzzGen: Automatic Fuzzer Generation
- 作者: Kyriakos Ispoglou, Daniel Austin, Vishwath Mohan, Mathias Payer,
- 关键字: 系统安全, Fuzzing, 动态分析
- 来源: USENIX Security 2020
- 链接: https://www.usenix.org/conference/usenixsecurity20/presentation/ispoglou
- 引用: Ispoglou Kyriakos, Austin Daniel, Mohan Vishwath, and Payer Mathias. “FuzzGen: Automatic Fuzzer Generation,” 2271–87, 2020. https://www.usenix.org/conference/usenixsecurity20/presentation/ispoglou.
摘要
模糊测试是一种发现软件中未知漏洞的测试技术。将模糊测试应用于库时,提供随机输入的核心思想保持不变,但是实现良好的代码覆盖率并非易事。库不能作为独立程序运行,而是通过另一个应用程序调用。在库中深层触发代码仍然具有挑战性,因为需要特定的API调用序列来建立必要的状态。到目前为止,图书馆是多种多样的,并且具有独特的界面,这些界面需要独特的模糊器,到目前为止,该分析器是由人类分析师编写的。为了解决这个问题,我们介绍了FuzzGen,这是一种用于在给定环境中自动合成复杂库的模糊器的工具。 FuzzGen利用整个系统分析来推断库的界面,并为该库专门合成模糊器。 FuzzGen不需要人工干预,可以应用于各种库。此外,生成的模糊器利用LibFuzzer来实现更好的代码覆盖率并暴露库深处的错误。在Debian和Android开放源代码项目(AOSP)上对FuzzGen进行了评估,选择了7个库来生成模糊器。到目前为止,我们发现了17个先前未修补的漏洞,其中包含6个分配的CVE。生成的模糊器平均可实现54:94%的代码覆盖率;与手动编写的模糊器相比,改进了6:94%,证明了FuzzGen的有效性和通用性。
介绍
现实问题
待解决的问题
主要思路
FuzzGen背后的主要思路。 为了合成Fuzzer,FuzzGen执行整个系统分析以提取所有有效的API交互。
主要贡献
之前研究的不足
方法设计
FuzzGen工作流。 FuzzGen以CFG(a)开头,并提取相应的A2DG(b)(有关其他模块的图,请参阅(c))。 然后将两个A2DG图合并(d)。 然后,合并的A2DG用于根据功能顺序(e)创建模糊器。 这些图由FuzzGen自动生成。
实现
实验评估
数据集
实验方法
实验效果
讨论
总结
作者介绍
收获
本文优势
可扩展结合的点
论文评价
评分: ⭐⭐⭐⭐⭐
评价: