Skip to main content
QUICK REVIEW

[論文レビュー] Not all bytes are equal: Neural byte sieve for fuzzing

Mohit Rajpal, William Blum|arXiv (Cornell University)|Nov 10, 2017
Software Testing and Debugging Techniques参考文献 13被引用数 81
ひとこと要約

本論文は、入力を変更すべき有用なバイト位置を予測する neural-guided fuzzing アプローチである Augmented-AFL を紹介します。これにより、複数のパーサにおけるコードカバレッジ、ユニークなコードパス、クラッシュが改善されます。 neural heatmaps を AFL に統合して変異を集中させます。

ABSTRACT

Fuzzing is a popular dynamic program analysis technique used to find vulnerabilities in complex software. Fuzzing involves presenting a target program with crafted malicious input designed to cause crashes, buffer overflows, memory errors, and exceptions. Crafting malicious inputs in an efficient manner is a difficult open problem and often the best approach to generating such inputs is through applying uniform random mutations to pre-existing valid inputs (seed files). We present a learning technique that uses neural networks to learn patterns in the input files from past fuzzing explorations to guide future fuzzing explorations. In particular, the neural models learn a function to predict good (and bad) locations in input files to perform fuzzing mutations based on the past mutations and corresponding code coverage information. We implement several neural models including LSTMs and sequence-to-sequence models that can encode variable length input files. We incorporate our models in the state-of-the-art AFL (American Fuzzy Lop) fuzzer and show significant improvements in terms of code coverage, unique code paths, and crashes for various input formats including ELF, PNG, PDF, and XML.

研究の動機と目的

  • 過去の探索とコードカバレッジに基づくファジング変異をガイドする学習ベースのアプローチを動機づける。
  • どの入力位置が新しいコードカバレッジを生む可能性が最も高いかを予測するニューラルモデルを開発する。
  • ニューラルヒートマップを AFL に組み込み、潜在能力の低い変異を拒否して取り組みを集中させる。
  • 複数の入力形式(ELF、PNG、PDF、XML)で評価し、利点と限界を検討する。

提案手法

  • 入力ファイルの位置を、変異時に入力の利得を生む確率へ写像するヒートマップ関数 f を定義する。
  • Seed入力とカバレッジデータから、 per-byte の有用性ヒートマップを予測するニューラルモデル(LSTM、双方向 LSTM、Seq2Seq バリアント、注意機構有/無)を訓練する。
  • 入力バイトをビット列として表現し、ビットレベルの構造を捉え、可変長の入力を扱う RNN ベースのアーキテクチャを用いる。
  • 変異前にニューラルモデルをクエリすることで AFL を拡張し、予測有用性が低い場所をターゲットとする変異を拒否する(カットオフを介して)。
  • Seed とその変異版との間のコードカバレッジの差を基準とする訓練目的を使用し、カバレッジビットマップ上での bitwise strictly-less スコアリング関数により近似する。

実験結果

リサーチクエスチョン

  • RQ1ニューラルモデルは新しいコードカバレッジとクラッシュを生む変異位置を予測できるか。
  • RQ2異なるニューラルアーキテクチャ(LSTM、Bidirectional LSTM、Seq2Seq、Seq2Seq+Attn)は、フォーマットを跨いで有用な変異位置を予測する性能にどう影響するか。
  • RQ3ニューラルヒートマップの統合は、ベースライン AFL と比較してコードカバレッジ、ユニークなコードパスの数、クラッシュへどのような影響を与えるか。
  • RQ4どのフォーマットがニューラルガイド付きファジングの恩恵を最も受けるか(ELF、PNG、PDF、XML)、観測される制限は何か。

主な発見

  • Augmented-AFL は ELF、PNG、XML パーサーに対して、ベースライン AFL と比較してコードカバレッジとユニークなコードパスを一般的に増加させる。
  • Augmented-AFL は ELF および XML パーサーでベースライン AFL よりもクラッシュを多く引き起こす。
  • 単純で軽量なニューラルモデルは、コードカバレッジの改善においてより複雑なアーキテクチャよりも性能を発揮することが多い。
  • 特定のフォーマット(例:PDF)は大規模な入力に対するモデルのクエリオーバーヘッドのため利得が限定的となり、モデル待機時間とファジングスループットのトレードオフを示す。
  • ターゲット全体で、ニューラルガイダンスは AFL に対して「未見の挙動」つきの入力ゲインを一貫して改善する。

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

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

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

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