论文标题

mtfuzz:与多任务神经网络模糊

MTFuzz: Fuzzing with a Multi-Task Neural Network

论文作者

She, Dongdong, Krishna, Rahul, Yan, Lu, Jana, Suman, Ray, Baishakhi

论文摘要

Fuzzing是一种用于检测软件错误和漏洞的广泛使用的技术。大多数流行的模糊器使用进化搜索生成新的输入,以最大程度地提高代码覆盖范围。本质上,这些模糊从一组种子输入开始,将它们变异以生成新的输入,并使用进化适应性函数来识别有希望的输入以进一步突变。尽管它们成功了,但进化模糊剂往往会陷入长长的非生产突变序列。近年来,基于机器的突变策略报告了有希望的结果。但是,现有的基于ML的模糊受到培训数据的质量和多样性的限制。由于目标程序的输入空间是高维且稀疏的,因此收集许多不同的样品表现出成功且失败的突变以训练模型的样本非常昂贵。在本文中,我们通过使用多任务神经网络来解决这些问题,该神经网络可以基于多种相关任务的多样化培训样本(即预测不同类型的覆盖范围)学习输入空间的紧凑嵌入。紧凑的嵌入可以通过将大多数突变聚焦在梯度高的部分来指导突变过程中。 \工具发现$ 11 $以前看不见的错误,平均达到$ 2 \ times $ $ $ $ $ $ $,而不是10个现实世界中的5个最先进的杂物。

Fuzzing is a widely used technique for detecting software bugs and vulnerabilities. Most popular fuzzers generate new inputs using an evolutionary search to maximize code coverage. Essentially, these fuzzers start with a set of seed inputs, mutate them to generate new inputs, and identify the promising inputs using an evolutionary fitness function for further mutation. Despite their success, evolutionary fuzzers tend to get stuck in long sequences of unproductive mutations. In recent years, machine learning (ML) based mutation strategies have reported promising results. However, the existing ML-based fuzzers are limited by the lack of quality and diversity of the training data. As the input space of the target programs is high dimensional and sparse, it is prohibitively expensive to collect many diverse samples demonstrating successful and unsuccessful mutations to train the model. In this paper, we address these issues by using a Multi-Task Neural Network that can learn a compact embedding of the input space based on diverse training samples for multiple related tasks (i.e., predicting for different types of coverage). The compact embedding can guide the mutation process by focusing most of the mutations on the parts of the embedding where the gradient is high. \tool uncovers $11$ previously unseen bugs and achieves an average of $2\times$ more edge coverage compared with 5 state-of-the-art fuzzer on 10 real-world programs.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源