[論文レビュー] MEUZZ: Smart Seed Scheduling for Hybrid Fuzzing
Meuzz は、軽量な静的および動的特徴を用いてシードの有効性を予測し、コンコイック実行のための入力を優先順位付けする機械学習を統合したハイブリッドファージャーである。QSYM よりも 27.1% 高いコードカバレッジを達成し、47 件の以前未知のバグを発見した。モデルは異なるプログラム間で強く再利用可能かつ転送可能である。
Seed scheduling is a prominent factor in determining the yields of hybrid fuzzing. Existing hybrid fuzzers schedule seeds based on fixed heuristics that aim to predict input utilities. However, such heuristics are not generalizable as there exists no one-size-fits-all rule applicable to different programs. They may work well on the programs from which they were derived, but not others. To overcome this problem, we design a Machine learning-Enhanced hybrid fUZZing system (MEUZZ), which employs supervised machine learning for adaptive and generalizable seed scheduling. MEUZZ determines which new seeds are expected to produce better fuzzing yields based on the knowledge learned from past seed scheduling decisions made on the same or similar programs. MEUZZ's learning is based on a series of features extracted via code reachability and dynamic analysis, which incurs negligible runtime overhead (in microseconds). Moreover, MEUZZ automatically infers the data labels by evaluating the fuzzing performance of each selected seed. As a result, MEUZZ is generally applicable to, and performs well on, various kinds of programs. Our evaluation shows MEUZZ significantly outperforms the state-of-the-art grey-box and hybrid fuzzers, achieving 27.1% more code coverage than QSYM. The learned models are reusable and transferable, which boosts fuzzing performance by 7.1% on average and improves 68% of the 56 cross-program fuzzing campaigns. MEUZZ discovered 47 deeply hidden and previously unknown bugs--with 21 confirmed and fixed by the developers--when fuzzing 8 well-tested programs with the same configurations as used in previous work.
研究の動機と目的
- 多様なプログラムにわたって性能が低い固定ヒューリスティックベースのシードスケジューリングの限界を解消すること。
- 異なるプログラムに一般化可能なデータ駆動型の適応的シードスケジューリング戦略を、機械学習を用いて開発すること。
- シード有効性予測のための意味のある特徴を抽出しながら、実行時間のオーバーヘッドを最小限に抑えること。
- 学習済みモデルの再利用可能性と転送可能性を、異なるファージング設定およびプログラム間で評価すること。
- 最先端のファージャーと比較して、コードカバレッジとバグ発見率の両方を向上させること。
提案手法
- Meuzz は、コード到達可能性解析と動的実行プロファイリングを用いて、1 特徴あたり約 5 μs のわずかなオーバーヘッドで軽量な特徴を抽出する。
- 入力の子孫ツリーを用いて、各シードのファージング性能とパスカバレッジを測定することで、自動的にデータラベルを推定する。
- これらの特徴とラベルに基づいて、シードの有効性を予測する教師あり機械学習モデルを訓練し、適応的優先順位付けを可能にする。
- 継続的な予測品質の評価と向上を可能にするオンライン評価モジュールをシステムに統合する。
- Meuzz はモデルの転送可能性を活用しており、再トレーニングなしに1つの学習済みモデルを複数のプログラムで再利用可能である。
- フレームワークは、プログラムに依存しない、オンライン対応で、実時間でのファージングパイプライン統合に適した設計である。
実験結果
リサーチクエスチョン
- RQ1シード特徴とパフォーマンスデータに基づいて学習した機械学習モデルは、固定ヒューリスティックベースのシードスケジューリングを上回る性能を示せるか?
- RQ2Meuzz は、最先端のグレイボックスおよびハイブリッドファージャーと比較して、コードカバレッジとバグ発見の両面でどれほど効果的か?
- RQ3学習済みのシード有効性モデルは、異なるプログラムや設定間でどれほど再利用可能かつ転送可能か?
- RQ4軽量な静的および動的特徴は、最小限の実行時間オーバーヘッドでシード有効性を正確に予測できるか?
- RQ5Meuzz の適応的スケジューリングは、実世界のファージングキャンペーンでより高い収穫をもたらすか?
主な発見
- Meuzz は、現在の最先端ハイブリッドファージャー QSYM よりも 27.1% 高いコードカバレッジを達成した。
- Meuzz は 8 つのよくテストされたプログラムにおいて、合計 47 件の以前未知のバグを発見した。そのうち 21 件は開発者によって確認され、修正された。
- 学習済みモデルは、平均してファージング性能を 7.1% 向上させ、56 件のうち 68% のクロスプログラムファージングキャンペーンを改善した。
- 特徴抽出の平均オーバーヘッドは 1 シードあたり 5 μs にとどまり、実行時間への影響が最小限である。
- システムのモデルは非常に高い転送性を示し、再トレーニングなしに異なるプログラム間で効果的に再利用可能である。
- Meuzz は、コードカバレッジとユニークなバグ発見の両面で、評価されたすべてのファージャーを上回り、優れたスケーラビリティと適応性を示した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。