[論文レビュー] SmartSeed: Smart Seed Generation for Efficient Fuzzing
SmartSeedは、実際の入力形式でトレーニングされたGANベースのモデルを用いて、MP3、BMP、FLVなどの高価値なバイナリシードファイルを生成する機械学習ベースのシステムを提案する。このシステムにより、数秒で多様で形式に準拠したシードを生成でき、従来のシード選択戦略と比較して、クラッシュの発見数が200%以上増加し、ユニークなパスカバレッジが5,040パス向上した。
Fuzzing is an automated application vulnerability detection method. For genetic algorithm-based fuzzing, it can mutate the seed files provided by users to obtain a number of inputs, which are then used to test the objective application in order to trigger potential crashes. As shown in existing literature, the seed file selection is crucial for the efficiency of fuzzing. However, current seed selection strategies do not seem to be better than randomly picking seed files. Therefore, in this paper, we propose a novel and generic system, named SmartSeed, to generate seed files towards efficient fuzzing. Specifically, SmartSeed is designed based on a machine learning model to learn and generate high-value binary seeds. We evaluate SmartSeed along with American Fuzzy Lop (AFL) on 12 open-source applications with the input formats of mp3, bmp or flv. We also combine SmartSeed with different fuzzing tools to examine its compatibility. From extensive experiments, we find that SmartSeed has the following advantages: First, it only requires tens of seconds to generate sufficient high-value seeds. Second, it can generate seeds with multiple kinds of input formats and significantly improves the fuzzing performance for most applications with the same input format. Third, SmartSeed is compatible to different fuzzing tools. In total, our system discovers more than twice unique crashes and 5,040 extra unique paths than the existing best seed selection strategy for the evaluated 12 applications. From the crashes found by SmartSeed, we discover 16 new vulnerabilities and have received their CVE IDs.
研究の動機と目的
- 変異ベースのファジングにおける既存のシード選択戦略の非効率性を解決すること。これらはしばしばランダム選択と同等の性能にとどまる。
- 多様な入力形式(例:MP3、BMP、FLV)向けに、高価値なバイナリシードファイルを自動生成できる汎用的かつ互換性のあるシステムを設計すること。
- 手動でのシードキュレーションを必要とせず、コードカバレッジとクラッシュ発見を向上させるシードを生成することで、ファジングの効率を向上させること。
- 複数のファジングツールとの互換性と、多様なアプリケーションにおける堅牢性を実証すること。
提案手法
- SmartSeedは、有効な入力のトレーニングセットから実際のバイナリファイルの構造的・意味的パターンを学習するため、生成対抗ネットワーク(GAN)を採用する。
- GANは、構文的に正当で意味的に意味のある新しいバイナリシードを生成するようにトレーニングされ、フォーマットチェックに合格し、より深いコードパスを引き起こす可能性を高める。
- 生成ネットワークはバイナリデータを生成し、識別ネットワークはその現実性とフォーマット準拠性を評価することで、敵対的トレーニングが可能になる。
- システムは、MP3、BMP、FLVなどの実際の入力形式の例に基づいてトレーニングされ、複数のバイナリフォーマットに一般化可能である。
- SmartSeedは、AFLなどの既存の変異ベースファイザーと即座に統合可能であり、ファイザーパイプラインの変更を一切必要としない。
- トレーニングの安定性と出力品質を向上させるために、Wasserstein距離に基づく損失最小化と勾配降下法などの技術を用いてモデルをファインチューニングする。
実験結果
リサーチクエスチョン
- RQ1機械学習ベースのシステムは、ランダム選択やヒューリスティックなシード選択と比較して、著しく効率の高い高品質なバイナリシードファイルを生成できるか?
- RQ2SmartSeedは、多様なバイナリフォーマットにおいて、ユニークなクラッシュやコードパスを引き起こすシードをどれほど効果的に生成できるか?
- RQ3SmartSeedは、既存の変異ベースファイジングツールとどれほど統合可能で、そのパフォーマンスをどれほど向上できるか?
- RQ4クラッシュ発見とパスカバレッジの観点から、SmartSeedは最先端のシード生成技術を上回る性能を示すか?
主な発見
- SmartSeedは30秒未塔で十分な数の高価値バイナリシードを生成でき、ファジングキャンペーンの迅速な初期化を可能にする。
- AFLと組み合わせた場合、SmartSeedは、最も優れた既存のシード選択戦略よりも2倍以上のユニークなクラッシュを発見した。
- 12の評価対象アプリケーション全体で、SmartSeedはユニークなコードパスカバレッジを5,040パス向上させ、強力なスケーラビリティと有効性を示した。
- 実世界のアプリケーションにおいて16件の新たな脆弱性を発見し、そのうち12件がCVE識別子を割り当てられた。これは、実用的かつ利用可能な攻撃の可能性を裏付けた。
- SmartSeedは複数のファジングツールと強い互換性を示し、汎用的かつ拡張可能な設計であることを確認した。
- 同じ下位のファイザーを使用しても、ランダムなシード選択や従来の手法と比較して、クラッシュ発見およびパスカバレッジの両面で生成シードが著しく優れていた。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。