Skip to main content
QUICK REVIEW

[论文解读] Neural Fuzzing: A Neural Approach to Generate Test Data for File Format Fuzzing.

Morteza Zakeri‐Nasrabadi, Saeed Parsa|arXiv (Cornell University)|Dec 24, 2018
Software Testing and Debugging Techniques被引用 3
一句话总结

本文提出神经模糊测试(Neural Fuzzing),一种利用神经语言模型自动学习并生成文件格式模糊测试所需结构化测试数据的深度学习方法。通过区分元数据与原始数据,该方法在代码覆盖率方面优于 AFL 和 Learn&Fuzz,且简单模型的表现优于复杂的编码器-解码器架构。

ABSTRACT

This article is aimed at the design and implementation of a file format fuzzer. Files are significant inputs to the most of real-world applications. A substantial difficulty with generating input files as test data is to recon the underlying structure and format of the files. In order to distinguish pure data stored in a file from the meta-data describing the file format, a deep learning method based on a neural language model is proposed in this article. The resultant learned model could be applied as a hybrid test data generator, to generate and fuzz both the textual and none-textual sections of the input file. Moreover, the model could be applied to generate test data to fuzz both the meta-data and the ordinary data stored in the file. Our experiments with two known fuzzing tools, AFL and Learn\&Fuzz, demonstrate the relatively high code coverage of our proposed method. The experiments also indicate simple neural language models provide a more accurate learning model, than the complicated encoder-decoder models.

研究动机与目标

  • 为解决为文件格式模糊测试生成有效且结构准确的测试文件的挑战。
  • 自动学习文件格式的底层结构,无需手动逆向工程。
  • 生成元数据和原始数据两部分,以实现高效的模糊测试。
  • 提升 AFL 和 Learn&Fuzz 等模糊测试工具的代码覆盖率。
  • 评估简单神经模型是否在文件格式学习中优于复杂架构。

提出的方法

  • 在文件数据上训练神经语言模型,以学习文件格式的统计结构。
  • 在训练过程中,模型区分元数据(格式描述符)与原始数据(内容)。
  • 通过从学习到的元数据和数据部分分布中采样,生成新测试文件。
  • 将生成的文件用作模糊测试工具的输入,以评估代码覆盖率。
  • 该方法采用序列建模框架,将文件内容视为标记或字节的序列。
  • 使用 AFL 和 Learn&Fuzz 作为底层模糊测试引擎进行评估。

实验结果

研究问题

  • RQ1神经语言模型能否有效学习二进制和基于文本的文件的结构格式?
  • RQ2将元数据与原始数据分离是否能提升生成测试文件的质量与覆盖率?
  • RQ3模型复杂度(简单模型 vs. 编码器-解码器)如何影响测试数据生成的准确性和有效性?
  • RQ4所学习的模型能否实现比现有模糊测试工具更高的代码覆盖率?
  • RQ5该模型在不同文件格式和应用类型中是否具有鲁棒性?

主要发现

  • 所提出的神经语言模型在模糊测试中的代码覆盖率高于 AFL 和 Learn&Fuzz。
  • 简单神经语言模型在学习文件格式结构方面优于更复杂的编码器-解码器架构。
  • 该模型成功区分了元数据与原始数据,实现了对两者的针对性生成。
  • 该方法减少了在测试数据生成过程中对文件格式手动逆向工程的需求。
  • 该方法在多种文件格式中表现出有效性,提升了模糊测试效率。
  • 结果表明,端到端的序列建模足以实现高效的文件格式模糊测试。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。