Adaptive scheduling-based fine-grained greybox fuzzing for cloud-native applications

Jiageng Yang, Chuanyi Liu, Binxing Fang
{"title":"Adaptive scheduling-based fine-grained greybox fuzzing for cloud-native applications","authors":"Jiageng Yang, Chuanyi Liu, Binxing Fang","doi":"10.1186/s13677-024-00681-1","DOIUrl":null,"url":null,"abstract":"Coverage-guided fuzzing is one of the most popular approaches to detect bugs in programs. Existing work has shown that coverage metrics are a crucial factor in guiding fuzzing exploration of targets. A fine-grained coverage metric can help fuzzing to detect more bugs and trigger more execution states. Cloud-native applications that written by Golang play an important role in the modern computing paradigm. However, existing fuzzers for Golang still employ coarse-grained block coverage metrics, and there is no fuzzer specifically for cloud-native applications, which hinders the bug detection in cloud-native applications. Using fine-grained coverage metrics introduces more seeds and even leads to seed explosion, especially in large targets such as cloud-native applications. Therefore, we employ an accurate edge coverage metric in fuzzer for Golang, which achieves finer test granularity and more accurate coverage information than block coverage metrics. To mitigate the seed explosion problem caused by fine-grained coverage metrics and large target sizes, we propose smart seed selection and adaptive task scheduling algorithms based on a variant of the classical adversarial multi-armed bandit (AMAB) algorithm. Extensive evaluation of our prototype on 16 targets in real-world cloud-native infrastructures shows that our approach detects 233% more bugs than go-fuzz, achieving an average coverage improvement of 100.7%. Our approach effectively mitigates seed explosion by reducing the number of seeds generated by 41% and introduces only 14% performance overhead.","PeriodicalId":501257,"journal":{"name":"Journal of Cloud Computing","volume":"21 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Cloud Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1186/s13677-024-00681-1","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Coverage-guided fuzzing is one of the most popular approaches to detect bugs in programs. Existing work has shown that coverage metrics are a crucial factor in guiding fuzzing exploration of targets. A fine-grained coverage metric can help fuzzing to detect more bugs and trigger more execution states. Cloud-native applications that written by Golang play an important role in the modern computing paradigm. However, existing fuzzers for Golang still employ coarse-grained block coverage metrics, and there is no fuzzer specifically for cloud-native applications, which hinders the bug detection in cloud-native applications. Using fine-grained coverage metrics introduces more seeds and even leads to seed explosion, especially in large targets such as cloud-native applications. Therefore, we employ an accurate edge coverage metric in fuzzer for Golang, which achieves finer test granularity and more accurate coverage information than block coverage metrics. To mitigate the seed explosion problem caused by fine-grained coverage metrics and large target sizes, we propose smart seed selection and adaptive task scheduling algorithms based on a variant of the classical adversarial multi-armed bandit (AMAB) algorithm. Extensive evaluation of our prototype on 16 targets in real-world cloud-native infrastructures shows that our approach detects 233% more bugs than go-fuzz, achieving an average coverage improvement of 100.7%. Our approach effectively mitigates seed explosion by reducing the number of seeds generated by 41% and introduces only 14% performance overhead.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
为云原生应用提供基于自适应调度的细粒度灰盒模糊测试
覆盖率指导模糊法是检测程序错误最常用的方法之一。现有工作表明,覆盖率指标是指导模糊探索目标的关键因素。细粒度的覆盖率度量有助于模糊检测到更多的错误并触发更多的执行状态。由 Golang 编写的云原生应用程序在现代计算模式中发挥着重要作用。然而,现有的 Golang 模糊器仍然采用粗粒度块覆盖指标,而且没有专门针对云原生应用的模糊器,这阻碍了云原生应用的错误检测。使用细粒度覆盖率指标会引入更多种子,甚至导致种子爆炸,尤其是在云原生应用等大型目标中。因此,我们在 Golang 的模糊器中采用了精确的边缘覆盖指标,它比块覆盖指标实现了更细的测试粒度和更精确的覆盖信息。为了缓解细粒度覆盖指标和大目标规模造成的种子爆炸问题,我们提出了基于经典对抗多臂匪徒(AMAB)算法变体的智能种子选择和自适应任务调度算法。在真实世界云原生基础设施的 16 个目标上对我们的原型进行的广泛评估表明,我们的方法比 go-fuzz 多检测出 233% 的错误,平均覆盖率提高了 100.7%。我们的方法有效缓解了种子爆炸,将生成的种子数量减少了 41%,仅带来 14% 的性能开销。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
A cost-efficient content distribution optimization model for fog-based content delivery networks Toward security quantification of serverless computing SMedIR: secure medical image retrieval framework with ConvNeXt-based indexing and searchable encryption in the cloud A trusted IoT data sharing method based on secure multi-party computation Wind power prediction method based on cloud computing and data privacy protection
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1