Cupid : Automatic Fuzzer Selection for Collaborative Fuzzing

Emre Güler, Philipp Görz, Elia Geretto, Andrea Jemmett, Sebastian Österlund, H. Bos, Cristiano Giuffrida, Thorsten Holz
{"title":"Cupid : Automatic Fuzzer Selection for Collaborative Fuzzing","authors":"Emre Güler, Philipp Görz, Elia Geretto, Andrea Jemmett, Sebastian Österlund, H. Bos, Cristiano Giuffrida, Thorsten Holz","doi":"10.1145/3427228.3427266","DOIUrl":null,"url":null,"abstract":"Combining the strengths of individual fuzzing methods is an appealing idea to find software faults more efficiently, especially when the computing budget is limited. In prior work, EnFuzz introduced the idea of ensemble fuzzing and devised three heuristics to classify properties of fuzzers in terms of diversity. Based on these heuristics, the authors manually picked a combination of different fuzzers that collaborate. In this paper, we generalize this idea by collecting and applying empirical data from single, isolated fuzzer runs to automatically identify a set of fuzzers that complement each other when executed collaboratively. To this end, we present Cupid, a collaborative fuzzing framework allowing automated, data-driven selection of multiple complementary fuzzers for parallelized and distributed fuzzing. We evaluate the automatically selected target-independent combination of fuzzers by Cupid on Google’s fuzzer-test-suite, a collection of real-world binaries, as well as on the synthetic Lava-M dataset. We find that Cupid outperforms two expert-guided, target-specific and hand-picked combinations on Google’s fuzzer-test-suite in terms of branch coverage, and improves bug finding on Lava-M by 10%. Most importantly, we improve the latency for obtaining 95% and 99% of the coverage by 90% and 64%, respectively. Furthermore, Cupid reduces the amount of CPU hours needed to find a high-performing combination of fuzzers by multiple orders of magnitude compared to an exhaustive evaluation.","PeriodicalId":175869,"journal":{"name":"Annual Computer Security Applications Conference","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-12-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"14","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Annual Computer Security Applications Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3427228.3427266","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 14

Abstract

Combining the strengths of individual fuzzing methods is an appealing idea to find software faults more efficiently, especially when the computing budget is limited. In prior work, EnFuzz introduced the idea of ensemble fuzzing and devised three heuristics to classify properties of fuzzers in terms of diversity. Based on these heuristics, the authors manually picked a combination of different fuzzers that collaborate. In this paper, we generalize this idea by collecting and applying empirical data from single, isolated fuzzer runs to automatically identify a set of fuzzers that complement each other when executed collaboratively. To this end, we present Cupid, a collaborative fuzzing framework allowing automated, data-driven selection of multiple complementary fuzzers for parallelized and distributed fuzzing. We evaluate the automatically selected target-independent combination of fuzzers by Cupid on Google’s fuzzer-test-suite, a collection of real-world binaries, as well as on the synthetic Lava-M dataset. We find that Cupid outperforms two expert-guided, target-specific and hand-picked combinations on Google’s fuzzer-test-suite in terms of branch coverage, and improves bug finding on Lava-M by 10%. Most importantly, we improve the latency for obtaining 95% and 99% of the coverage by 90% and 64%, respectively. Furthermore, Cupid reduces the amount of CPU hours needed to find a high-performing combination of fuzzers by multiple orders of magnitude compared to an exhaustive evaluation.
丘比特:协作模糊测试的自动模糊选择
结合各个模糊测试方法的优势是一个更有效地发现软件故障的好方法,特别是在计算预算有限的情况下。在之前的工作中,EnFuzz引入了集成模糊的思想,并设计了三种启发式方法来根据多样性对模糊器的属性进行分类。基于这些启发,作者手动选择了不同的模糊器的组合进行协作。在本文中,我们通过收集和应用单个、孤立的fuzzer运行的经验数据来推广这一想法,以自动识别一组在协同执行时相互补充的fuzzers。为此,我们提出了丘比特,一个协作模糊测试框架,允许自动、数据驱动地选择多个互补的模糊测试器,用于并行和分布式模糊测试。我们在Google的fuzzer-test套件(一组真实世界的二进制文件)以及合成的Lava-M数据集上评估了Cupid自动选择的目标独立的fuzzers组合。我们发现,在Google的fuzzer测试套件中,丘比特在分支覆盖率方面优于两种专家指导、特定目标和精心挑选的组合,并将Lava-M的bug发现率提高了10%。最重要的是,我们将获得95%和99%覆盖率的延迟分别提高了90%和64%。此外,与穷举评估相比,丘比特减少了寻找高性能fuzzers组合所需的CPU小时数。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信