Skip to main content
QUICK REVIEW

[論文レビュー] MUZZ: Thread-aware Grey-box Fuzzing for Effective Bug Hunting in Multithreaded Programs

Hongxu Chen, Shengjian Guo|arXiv (Cornell University)|Jul 31, 2020
Software Testing and Debugging Techniques被引用数 26
ひとこと要約

Muzzは、実行時フィードバックを用いてシード選択と実行戦略をガイドする、スレッドに配慮したグレイボックスファズァーである。3つの新規インストルメンテーション—カバレッジ指向、スレッドコンテキスト、スケジューリング干渉—を用いて、従来のファジングをマルチスレッドプログラム向けに強化する。Muzzは、並行性脆弱性の検出および並行性バグの発見においてAFLを上回り、12の実世界プログラムにおいて8つの新しい脆弱性と19の新しいバグを発見した。そのうち4つはCVE IDを取得した。

ABSTRACT

Grey-box fuzz testing has revealed thousands of vulnerabilities in real-world software owing to its lightweight instrumentation, fast coverage feedback, and dynamic adjusting strategies. However, directly applying grey-box fuzzing to input-dependent multithreaded programs can be extremely inefficient. In practice, multithreading-relevant bugs are usually buried in sophisticated program flows. Meanwhile, the existing grey-box fuzzing techniques do not stress thread-interleavings which affect execution states in multithreaded programs. Therefore, mainstream grey-box fuzzers cannot effectively test problematic segments in multithreaded programs despite they might obtain high code coverage statistics. To this end, we propose MUZZ, a new grey-box fuzzing technique that hunts for bugs in multithreaded programs. MUZZ owns three novel thread-aware instrumentations, namely coverage-oriented instrumentation, thread-context instrumentation, and schedule-intervention instrumentation. During fuzzing, these instrumentations engender runtime feedback to stress execution states caused by thread interleavings. By leveraging the feedback in the dynamic seed selection and execution strategies, MUZZ preserves more valuable seeds that expose bugs in a multithreading context. We evaluate MUZZ on 12 real-world software programs. Experiments show that MUZZ outperforms AFL in both multithreading-relevant seed generation and concurrency-vulnerability detection. Further, by replaying the target programs against the generated seeds, MUZZ also reveals more concurrency-bugs (e.g., data-races, thread-leaks) than AFL. In total, MUZZ detected 8 new concurrency-vulnerabilities and 19 new concurrency-bugs. At the time of writing, 4 CVE IDs have been assigned to the reported issues.

研究の動機と目的

  • スレッドのインタリーブを無視するため、主流のグレイボックスファズァーが入力依存のマルチスレッドプログラムのテストにおいて非効率であることを解決する。
  • 複雑なスレッドスケジューリングが引き起こす実行状態を十分にストレステストできないという、既存のファズァーの限界を克服する。これにより、並行性脆弱性やバグが見逃されることがある。
  • スレッドに配慮したインストルメンテーションからの実行時フィードバックを活用して、マルチスレッド関連のパスを特にターゲットにするシードを生成するファズァーを開発する。
  • 実世界のマルチスレッドソフトウェアにおける、マルチスレッド関連のシード生成と並行性脆弱性・バグの検出を両方向上する。
  • 既存の動的並行性バグ検出ツール(例:TSan)と統合し、生成されたシードを再実行して、以前に検出されなかった並行性の問題を明らかにする。

提案手法

  • スレッドインタリーブの影響を受ける実行状態を区別しながらコードカバレッジを追跡する、カバレッジ指向のインストルメンテーションを導入する。
  • 実行中にスレッドの状態を監視・記録するスレッドコンテキストインストルメンテーションを実装し、インタリーブ固有の振る舞いを特定可能にする。
  • ファジング中にスレッドスケジューリングを能動的に多様化するスケジューリング干渉インストルメンテーションを適用し、まれなまたは複雑なインタリーブを発火させる可能性を高める。
  • 3つのインストルメンテーションからのフィードバックを活用して、動的シード選択をガイドし、マルチスレッド関連のパスを探索するシードを優先する。
  • スレッドに配慮したフィードバックに基づいて実行戦略を最適化し、並行性に敏感なコード領域の探索を強化する。
  • 既存の動的並行性バグ検出ツール(例:TSan)と統合し、生成されたシードを再実行してデータレース、デッドロック、その他の並行性バグを検出する。

実験結果

リサーチクエスチョン

  • RQ1従来のアプローチと比較して、スレッドに配慮したインストルメンテーションは、マルチスレッドプログラムにおけるグレイボックスファジングの効果を向上させることができるか?
  • RQ2スレッドインタリーブに敏感なインストルメンテーションからのフィードバックは、ファジングにおけるシード選択と実行戦略をどの程度向上させることができるか?
  • RQ3Muzzは、実世界のマルチスレッドソフトウェアにおいて、AFL や他の最先端ファズァーと比較してより多くの並行性脆弱性やバグを検出できるか?
  • RQ4TSan などの動的解析ツールと組み合わせた場合、Muzzは以前に検出されなかった並行性脆弱性やバグをどの程度効果的に発見できるか?
  • RQ5スケジューリング干渉インストルメンテーションは、ファジング中に探索されるスレッドインタリーブの多様性を顕著に増加させ、マルチスレッド関連のパスのカバレッジをより良くするか?

主な発見

  • Muzzは、スレッドインタリーブによって引き起こされる複雑な実行状態をターゲットにする点で、AFL よりも優れたマルチスレッド関連のシードを生成し、その有効性が顕著に向上している。
  • Muzzは、実世界のマルチスレッドプログラムにおいて8つの新しい並行性脆弱性を検出しており、そのうち4つがCVE IDを取得した。
  • 生成されたシードをTSanで再実行することで、MuzzはAFLが検出できなかった19の新しい並行性バグ(データレースやスレッドリークを含む)を明らかにした。
  • カバレッジ指向、スレッドコンテキスト、スケジューリング干渉インストルメンテーションの統合により、フィードバックの質が顕著に向上し、より効果的なファジング探索が可能になった。
  • 12の実世界プログラムを対象とした実験により、Muzzがマルチスレッド関連のパスでより高いコードカバレッジを達成し、AFL や MOpt よりも多くの並行性問題を検出することが確認された。
  • Muzzにおけるフィードバック駆動のシード選択と実行戦略は、複雑なスレッドインタリーブ条件下でバグを露呈するシードを効果的に保持・優先することができた。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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