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 よりも高いコードカバレッジをフォーマッティングで達成した。
  • 単純なニューラル言語モデルが、より複雑なエンコーダデコーダアーキテクチャを上回り、ファイルフォーマット構造の学習において優れた性能を示した。
  • モデルはメタデータと生データを効果的に区別でき、両方のコンponentsをターゲットにした生成が可能になった。
  • テストデータ生成の段階で、ファイルフォーマットの手動リバースエンジニアリングの必要性が削減された。
  • このアプローチは、多様なファイルフォーマットで有効であることが示され、フォーマッティングの効率が向上した。
  • 結果から、エンドツーエンドのシーケンスモデリングが、効果的なファイルフォーマットフォーマッティングに十分であることが示唆された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。