Robustness is a key concern for Rust library development because Rust promises no risks of undefined behaviors if developers use safe APIs only. Fuzzing is a practical approach for examining the robustness of programs. However, existing fuzzing tools are not directly applicable to library APIs due to the absence of fuzz targets. It mainly relies on human efforts to design fuzz targets case by case which is labor-intensive. To address this problem, this paper proposes a novel automated fuzz target generation approach for fuzzing Rust libraries via API dependency graph traversal. We identify several essential requirements for library fuzzing, including validity and effectiveness of fuzz targets, high API coverage, and efficiency. To meet these requirements, we first employ breadth-first search with pruning to find API sequences under a length threshold, then we backward search longer sequences for uncovered APIs, and finally we optimize the sequence set as a set covering problem. We implement our fuzz target generator and conduct fuzzing experiments with AFL++ on several real-world popular Rust projects. Our tool finally generates 7 to 118 fuzz targets for each library with API coverage up to 0.92. We exercise each target with a threshold of 24 hours and find 30 previously-unknown bugs from seven libraries.


翻译:强力是鲁斯特图书馆发展的关键关切, 因为鲁斯特( Rust) 不承诺如果开发者只使用安全的 API, 就会有未定义的行为风险。 模糊是检查程序是否稳健的实用方法。 但是, 由于没有模糊的目标, 现有的模糊工具并不直接适用于图书馆 API 。 它主要依靠人的努力来设计模糊目标, 具体个案是劳动密集型的。 为了解决这个问题, 本文建议了一个新的自动化的自动模糊目标生成方法, 通过 API 依赖性图 Traperal 来模糊鲁斯特 图书馆。 我们确定了图书馆模糊的几项基本要求, 包括模糊目标的有效性和有效性、 高 API 覆盖率和效率。 为了满足这些要求, 我们首先使用宽度的第一次搜索, 在长度阈值下找到 API 序列, 然后我们向后向后搜索被破获的 API 的更长时间序列, 最后我们优化了设置的序列, 以覆盖问题来覆盖问题。 我们实施了我们的模糊目标, 与 AFL++ 在若干真实世界流行的 Rest 项目中进行模糊的实验。 我们的工具最终生成了 7至118 30 目标, 每个图书馆都以 0. 2 。

0
下载
关闭预览

相关内容

Rust 是一种注重高效、安全、并行的系统程序语言。
专知会员服务
44+阅读 · 2020年10月31日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
开源书:PyTorch深度学习起步
专知会员服务
50+阅读 · 2019年10月11日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
将门创投
3+阅读 · 2019年4月19日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
老铁,邀请你来免费学习人工智能!!!
量化投资与机器学习
4+阅读 · 2017年11月14日
Arxiv
0+阅读 · 2021年12月20日
Arxiv
0+阅读 · 2021年12月20日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
VIP会员
相关VIP内容
专知会员服务
44+阅读 · 2020年10月31日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
开源书:PyTorch深度学习起步
专知会员服务
50+阅读 · 2019年10月11日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
将门创投
3+阅读 · 2019年4月19日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
老铁,邀请你来免费学习人工智能!!!
量化投资与机器学习
4+阅读 · 2017年11月14日
Top
微信扫码咨询专知VIP会员