Skip to main content
QUICK REVIEW

[論文レビュー] EnFuzz: Ensemble Fuzzing with Seed Synchronization among Diverse Fuzzers

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

EnFuzzは、グローバルに非同期的でローカルに同期的な(GALS)シード同期メカニズムを用いて、多様なマッピングベースおよび生成ベースのファズァーを統合するアンサンブルファジングフレームワークを提案する。ベースファズァー間で、新しいカバレッジやクラッシュを引き起こす「興味深いシード」を同期することで、EnFuzzは、個々のツールと比較して、未発見のバグの検出率が71.4%から114%向上し、実世界のアプリケーションで24時間以内に60件の新しいCVEを発見した。

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.

研究の動機と目的

  • 複数の多様なファズァーを1つのアンサンブルシステムに統合することで、ファジングの効果を向上させること。
  • ヒューリスティックバイアスの影響を受けるため、深いまたはまれなコードパスを処理できない個々のファズァーの限界を克服すること。
  • 異種のファズァー間でタイムリーに興味深い入力を共有できるシード同期メカニズムを設計すること。
  • 実世界でよくファジングが行われたソフトウェアに対してアンサンブルアプローチを評価し、個々のツールを上回る脆弱性発見の優位性を示すこと。

提案手法

  • シードのマッピング/選択戦略、カバレッジの粒度(例:エッジ対ブロック)、入力生成戦略(マッピング対生成)の3つの多様性ヒューリスティクスに基づいて、ベースファズァーを選定する。
  • 各ファズァーが独立して動作するが、興味深いシードをグローバルプールに共有する、グローバルに非同期的でローカルに同期的な(GALS)シード同期メカニズムを実装する。
  • グローバルシードプールとグローバルカバレッジマップを維持し、新しいパスやクラッシュを検出するとともに、重複を除外し、脆弱性のトリアージを実施する。
  • 監視モニタを用いて、新しいクラッシュまたは高カバレッジのシードを収集・全ベースファズァーに配布し、ファズァー間の協力を強化する。
  • クラッシュおよびカバレッジレポートを統合された出力に統合し、最終的な脆弱性分析を実施する。
  • リアルタイムのカバレッジフィードバックに基づいて、ベースファズァーを動的に選択し、ターゲットアプリケーションの特性に適応する。

実験結果

リサーチクエスチョン

  • RQ1シード同期を用いて多様なファズァーを統合することで、実世界のソフトウェアにおける未発見の脆弱性の検出が著しく向上するか?
  • RQ2GALSベースのシード同期メカニズムは、異なるマッピングおよびカバレッジ戦略を有する異種ファズァー間の協力をどのように強化するか?
  • RQ3AFL、AFLFast、FairFuzz、LibFuzzer、QSYMといった個々のファズァーと比較して、EnFuzzはどれほど優れたユニークなバグやCVEの発見を実現するか?
  • RQ4すでに複数のツールでテスト済みのwell-fuzzedプロジェクトにおいて、アンサンブルアプローチは性能を維持または向上させるか?
  • RQ5マッピング戦略、カバレッジ粒度、入力生成の観点から、ファズァーの多様性がアンサンブル全体の有効性に与える影響はどの程度か?

主な発見

  • EnFuzzは、実世界のアプリケーションにおいて24時間以内に60件のユニークで未発見のバグを検出しており、個々のツールを著しく上回った。
  • AFLと比較して、EnFuzzは71.4%多くのユニークなバグを発見した。AFLFast、FairFuzz、LibFuzzer、QSYMと比較して、それぞれ114%、93.5%、76.4%、87.5%多く発見した。
  • よくファジングが行われたlibpngライブラリでは、EnFuzzが3件の新たな脆弱性を発見した。そのうち2件はCVE(CVE-2018-14047およびCVE-2018-14550)に割り当てられ、個々のファズァーでは検出されなかった。
  • アンサンブルアプローチにより、libwavおよびlibpngでは個々のツールが発見できなかった追加で13件の実バグが検出され、そのうち7件がCVEに割り当てられた。
  • libpngにおける時間経過に伴うパフォーマンス評価では、EnFuzzはすべてのベースファズァー、特にAFLFastやFairFuzzといった最適化版でさえも一貫して上回った。これらの最適化版は、元のAFLに比べて性能が劣っていた。
  • GALS同期メカニズムにより、ファズァー間の効果的な協力が可能になり、EnFuzzは、6回の関数呼び出しと11回の比較を必要とする複雑なバグをトリガーできたが、個々のツールでは到達できなかった。

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

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

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

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