Fuzzing is one of the most popular and widely used techniques to find vulnerabilities in any application. Fuzzers are fast enough, but they still spend a good portion of time to restart a crashed application and then fuzz it from the beginning. Fuzzing an application from a point deeper in the execution is also important. To do this, a user needs to take a snapshot of the program while fuzzing it on top of an emulator, virtual machine, or by utilizing a special kernel module to enable checkpointing. Even with this ability, it can be difficult to attach a fuzzer after restoring a checkpoint. As a result, most fuzzers leverage a form of fork-server design. We propose a novel testing architecture that allows users to attach a fuzzer after the program has started running. We do this by natively checkpointing the target application at a point of interest, and attaching the fuzzer after restoring the checkpoint. A fork-server may even be engaged at the point of restoration. This not only improves the throughput of the fuzzing campaign by minimizing startup time, but opens up a new way to fuzz applications. With this architecture, a user can take a series of checkpoints at points of interest, and run parallel tests to reduce the overall state-complexity of an individual test. Checkpoints allow us to begin fuzzing from a deeper point in the execution path, omitting prior execution from the required coverage path. This and other checkpointing techniques are described in the paper to help improve fuzzing.


翻译:模糊是用来查找任何应用程序中的脆弱之处的最受欢迎和最广泛使用的技术之一。 模糊器足够快, 但是仍然花很多时间重新开始崩溃的应用程序, 然后从一开始就模糊它。 从执行过程的更深处模糊一个应用程序也很重要 。 要做到这一点, 用户需要在模拟器、 虚拟机器或使用特殊的内核模块来模糊程序, 在任何应用程序中找到脆弱之处。 即使有了这种能力, 也很难在恢复检查站后附加一个模糊器。 结果, 大多数模糊器仍然花很多时间重新开始崩溃的应用程序, 然后从一开始就模糊它。 我们提议了一个新的测试结构, 允许用户在程序启动后再插入一个模糊器。 我们这样做的方法是, 在恢复检查站后按本地设置目标应用程序, 并在恢复程序后将模糊器绑起来。 即使是在恢复点, 也有可能使用一个叉子服务器。 这不仅仅是通过最小化启动时间来改进模糊器的过滤器, 而是在开始新的路径中打开一个叉子服务器的设计。 在开始一个新的路径中打开一个用户测试点, 开始一个平行的测试, 并且可以使用一个平行的系统 。 将一个测试一个运行的系统 。 。 将一个运行的序列 将一个连接的测试 将一个连接 。

0
下载
关闭预览

相关内容

【2021新书】高阶网络,150页pdf,Higher-Order Networks
专知会员服务
87+阅读 · 2021年11月26日
专知会员服务
31+阅读 · 2021年7月15日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
开发者应当了解的18套机器学习平台
深度学习世界
5+阅读 · 2018年8月14日
推荐|Andrew Ng计算机视觉教程总结
全球人工智能
3+阅读 · 2017年11月23日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Arxiv
0+阅读 · 2022年2月22日
Arxiv
0+阅读 · 2022年2月18日
Neural Architecture Search without Training
Arxiv
10+阅读 · 2021年6月11日
Arxiv
4+阅读 · 2019年11月21日
Clustered Object Detection in Aerial Images
Arxiv
5+阅读 · 2019年8月27日
VIP会员
相关资讯
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
开发者应当了解的18套机器学习平台
深度学习世界
5+阅读 · 2018年8月14日
推荐|Andrew Ng计算机视觉教程总结
全球人工智能
3+阅读 · 2017年11月23日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员