arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2103.00862cs.SEcs.CR
收藏

IntelliGen:用于FuzzTesting的自动驾驶员合成

IntelliGen: Automatic Driver Synthesis for FuzzTesting

Mingrui Zhang, Jianzhong Liu, Fuchen Ma, Huafeng Zhang, Yu Jiang

摘要:

Fuzzing是一种广泛应用于漏洞检测的技术。这个过程通常涉及编写有效的模糊驱动程序,如果手动完成,可能会非常劳动密集型。以前的自动化尝试在自动化程度或产出质量方面都有许多不足之处。在本文中,我们提出了智能,自动构建有效的模糊驱动程序的框架。首先,IntelliGen确定一组入口函数,并评估它们各自表现出漏洞的可能性。然后,IntelliGen通过分层参数替换和类型推断为入口函数生成模糊驱动程序。我们实现了智能并评估了其在现实世界中的程序从Android开源项目,谷歌的模糊测试套件和工业合作者选择的有效性。与最先进的模糊驱动合成器FUDGE和FuzzGen相比,IntelliGen平均覆盖了1.08 - 2.03倍的基本块和1.36 - 2.06倍的路径。IntelliGen的性能与手动编写的驱动程序相当,并发现了10个以上的错误。

英文摘要:

Fuzzing is a technique widely used in vulnerability detection. The process usually involves writing effective fuzz driver programs, which, when done manually, can be extremely labor intensive. Previous attempts at automation leave much to be desired, in either degree of automation or quality of output. In this paper, we propose IntelliGen, a framework that constructs valid fuzz drivers automatically. First, IntelliGen determines a set of entry functions and evaluates their respective chance of exhibiting a vulnerability. Then, IntelliGen generates fuzz drivers for the entry functions through hierarchical parameter replacement and type inference. We implemented IntelliGen and evaluated its effectiveness on real-world programs selected from the Android Open-Source Project, Google's fuzzer-test-suite and industrial collaborators. IntelliGen covered on average 1.08X-2.03X more basic blocks and 1.36X-2.06X more paths over state-of-the-art fuzz driver synthesizers FUDGE and FuzzGen. IntelliGen performed on par with manually written drivers and found 10 more bugs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑