Skip to main content
QUICK REVIEW

[論文レビュー] EnFuzz: From Ensemble Learning to Ensemble Fuzzing.

Yuanliang Chen, Yu Jiang|arXiv (Cornell University)|Jun 30, 2018
Software Testing and Debugging Techniques被引用数 10
ひとこと要約

EnFuzzは、AFL、AFLFast、AFLGo、FairFuzzといった最新の高性能ファズファイアを組み合わせるアンサンブルファジングフレームワークを提案する。シード同期と結果統合を用いることで、パスカバレッジ、ブランンチカバレッジ、クラッシュ発見の向上を実現した。グーグルの実世界テストスイートを対象とした24時間の評価において、EnFuzzはすべての個別ファズファイアを上回り、最良の個別ファズファイア(AFLFast)に比べ117%も多くのユニークなクラッシュを発見した。また、多様なアプリケーションにおいて、カバレッジとクラッシュ検出の両面で顕著な向上を達成した。

ABSTRACT

Fuzzing is widely used for software vulnerability detection. There are various kinds of fuzzers with different fuzzing strategies, and most of them perform well on their targets. However, in industry practice and empirical study, the performance and generalization ability of those well-designed fuzzing strategies are challenged by the complexity and diversity of real-world applications. In this paper, inspired by the idea of ensemble learning, we first propose an ensemble fuzzing approach EnFuzz, that integrates multiple fuzzing strategies to obtain better performance and generalization ability than that of any constituent fuzzer alone. First, we define the diversity of the base fuzzers and choose those most recent and well-designed fuzzers as base fuzzers. Then, EnFuzz ensembles those base fuzzers with seed synchronization and result integration mechanisms. For evaluation, we implement EnFuzz , a prototype basing on four strong open-source fuzzers (AFL, AFLFast, AFLGo, FairFuzz), and test them on Google's fuzzing test suite, which consists of widely used real-world applications. The 24-hour experiment indicates that, with the same resources usage, these four base fuzzers perform variously on different applications, while EnFuzz shows better generalization ability and always outperforms others in terms of path coverage, branch coverage and crash discovery. Even compared with the best cases of AFL, AFLFast, AFLGo and FairFuzz, EnFuzz discovers 26.8%, 117%, 38.8% and 39.5% more unique crashes, executes 9.16%, 39.2%, 19.9% and 20.0% more paths and covers 5.96%, 12.0%, 21.4% and 11.1% more branches respectively.

研究の動機と目的

  • 実世界の複雑なソフトウェアシステムにおいて、個別ファジング戦略の一般化能力の限界を解消すること。
  • アンサンブル学習の原則を活用して、多様なアプリケーションにおけるスタンドアロンファズファイアの性能変動を克服すること。
  • 複数の高性能ファズファイアを統合する統一されたファジングフレームワークを設計し、より優れた全体的な脆弱性検出を達成すること。
  • 同一リソース制約下で、個別ファズファイアと比較してパスカバレッジ、ブランンチカバレッジ、クラッシュ発見率の向上を実現すること。

提案手法

  • AFL、AFLFast、AFLGo、FairFuzzの4つの最近の高性能オープンソースファズファイアを、その設計と性能に基づきベースファズファイアとして選定する。
  • ファジング戦略の多様性を定義および測定し、ベースファズファイア間の補完的行動を保証する。
  • シード同期を実装し、ベースファズファイア間で入力シードを共有することで、ファズファイア間の学習と探索を可能にする。
  • 結果統合を適用し、すべてのベースファズファイアから発見されたパス、ブランンチ、クラッシュを統合および優先順位付けする。
  • 同期された入力と共有出力追跡を備えた統一実行パイプラインを用いて、ベースファズファイアの並列動作を調整する。
  • 同一リソース使用条件下で評価し、個別ファズファイアとの公平な比較を保証する。

実験結果

リサーチクエスチョン

  • RQ1アンサンブル手法を用いて複数の多様で高性能なファジング戦略を統合することで、実世界のアプリケーションにおける一般化能力の向上が達成できるか?
  • RQ2EnFuzzのアンサンブルアプローチは、個別ファズファイアと比較してパスおよびブランンチカバレッジの面でどのように差をつけるか?
  • RQ3EnFuzzは、最良の性能を示した個別ファズファイアと比較して、クラッシュ発見の面でどの程度向上を達成するか?
  • RQ4シード同期と結果統合は、アンサンブルの探索効率と脆弱性検出能力を向上させるか?

主な発見

  • EnFuzzは、本研究で最も優れた性能を示した個別ファズファイア(AFL)に比べ、26.8%も多くのユニークなクラッシュを発見した。
  • EnFuzzは、AFLFastに比べ117%も多くのユニークなクラッシュを発見し、クラッシュ検出の面で顕著に優れた性能を示した。
  • EnFuzzは、AFLGoに比べ19.9%高いパスカバレッジを達成し、FairFuzzに比べ20.0%高いパスカバレッジを達成した。
  • EnFuzzは、AFLGoに比べ21.4%多くのブランンチをカバーし、FairFuzzに比べ11.1%多くのブランンチをカバーし、優れたコードカバレッジを実現した。
  • EnFuzzは、グーグルの実世界テストスイートにおいて、パスカバレッジ、ブランンチカバレッジ、クラッシュ発見のすべての指標で、すべての個別ベースファズファイアを一貫して上回った。
  • アンサンブルアプローチは強力な一般化能力を示し、個別ファズファイアが効果にばらつきを示す多様なアプリケーションにおいても、優れた性能を維持した。

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

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

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

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