Skip to main content
QUICK REVIEW

[論文レビュー] Greybox fuzzing as a contextual bandits problem

Ketan Patil, Aditya Kanade|arXiv (Cornell University)|Jun 11, 2018
Software Testing and Debugging Techniques参考文献 15被引用数 12
ひとこと要約

本論文は、AFLのグレイボックファズィングにおけるヒューリスティックベースのエネルギー割り当てを置き換える文脈的バンディットフレームワークを提案する。ポリシー勾配法を用いて学習されたポリシーにより、テストケースの固定長部分文字列に基づき動的にファズィングイテレーションを割り当てる。この手法は、大多数のバイナリにおいてベースラインAFLを上回るカバレッジを達成し、知能的なファズィングエネルギー割り当てに強化学習を適用する可能性を示している。

ABSTRACT

Greybox fuzzing is one of the most useful and effective techniques for the bug detection in large scale application programs. It uses minimal amount of instrumentation. American Fuzzy Lop (AFL) is a popular coverage based evolutionary greybox fuzzing tool. AFL performs extremely well in fuzz testing large applications and finding critical vulnerabilities, but AFL involves a lot of heuristics while deciding the favored test case(s), skipping test cases during fuzzing, assigning fuzzing iterations to test case(s). In this work, we aim at replacing the heuristics the AFL uses while assigning the fuzzing iterations to a test case during the random fuzzing. We formalize this problem as a `contextual bandit problem' and we propose an algorithm to solve this problem. We have implemented our approach on top of the AFL. We modify the AFL's heuristics with our learned model through the policy gradient method. Our learning algorithm selects the multiplier of the number of fuzzing iterations to be assigned to a test case during random fuzzing, given a fixed length substring of the test case to be fuzzed. We fuzz the substring with this new energy value and continuously updates the policy based upon the interesting test cases it produces on fuzzing.

研究の動機と目的

  • AFLにおけるヒューリスティックベースのエネルギー割り当ての限界に対処すること。これは、テストケースの内容を無視することで、しばしば過剰または不十分なファズィングを引き起こす。
  • グレイボックファズィングにおけるエネルギー割り当て問題を、最適な意思決定のための文脈的バンディット問題として形式化すること。
  • 局所的なテストケース部分文字列に基づいてエネルギー乗数を選択する、学習可能なポリシーを設計・統合すること。
  • 実世界のバイナリ上でこのアプローチを評価し、標準的なAFL設定と比較してカバレッジパフォーマンスを検証すること。
  • ファズィングにおける複数のAFLヒューリスティクスを学習モデルに置き換えることで、ファズィング効率の向上を図る可能性を検討すること。

提案手法

  • エネルギー割り当て問題を、テストケースの固定長部分文字列を文脈とする文脈的バンディット問題として形式化する。
  • 与えられたテストケース部分文字列に対してエネルギー乗数(ファズィングイテレーション)を予測するニューラルネットワークポリシーを用いる。
  • ファズィング中に発見された新しいブランチに基づくフィードバックを用いて、ポリシーをポリシー勾配法で訓練する。
  • 学習済みモデルをAFLのファズィングループに統合し、そのヒューリスティックベースのエネルギー割り当て機構を置き換える。
  • 割り当てられたエネルギーでテストケースをファズィングした後に発見された新しいブランチカバレッジに基づく報酬信号を用いる。
  • TensorFlowを用いてシステムを実装し、複数のスケールの大きなバイナリ、特にバイナリ間実験を含めて評価する。

実験結果

リサーチクエスチョン

  • RQ1文脈的バンディットフレームワークは、グレイボックファズィングにおけるAFLのヒューリスティックベースのエネルギー割り当てを効果的に置き換えることができるか?
  • RQ2テストケースの局所的部分文字列からの学習は、固定されたヒューリスティックエネルギー割り当てよりも優れたカバレッジをもたらすか?
  • RQ3時間経過に伴うブランチカバレッジの観点から、学習済みポリシーは標準的なAFL設定と比較してどのように性能を示すか?
  • RQ4モデルは、特にbinutilsのような同じソフトウェアスイートに属するバイナリ間で一般化できるか?
  • RQ5強化学習は、ファズィングにおける手作業で設計されたヒューリスティクスへの依存度をどの程度低減できるか?

主な発見

  • 提案された文脈的バンディットアプローチは、評価された大多数のバイナリで、決定論的なフェーズをとる標準AFLを上回るブランチカバレッジを達成した。
  • 特に関連するバイナリで訓練された場合、モデルはベースラインAFLと同等またはそれ以上のカバレッジを時間経過とともに達成した。
  • バイナリ間実験では、モデルがbinutilsバイナリ間で妥当に一般化できており、類似したソフトウェア間での移行性が示唆された。
  • システムはAFLに正常に統合され、TensorFlowを活用することで、将来のRLベースのファズィング拡張のための拡張性を備えた。
  • 多くのターゲットで標準AFLを上回るカバレッジを達成したが、決定論的フェーズなしのAFLよりもわずかに性能が劣った。これはハイパーパrameterチューニングの余地があることを示唆している。
  • 結果から、AFLのヒューリスティクスを学習可能なポリシーに置き換えることは実現可能であり、ファズィング効率の向上に寄与する可能性があると示唆された。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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