[論文レビュー] Targeted Greybox Fuzzing with Static Lookahead Analysis
本稿では、最近変更されたまたは脆弱なコードなどの特定のプログラム領域を向けるようにファジングを誘導するオンライン静的前方解析を用いた、新規の標的指向グレイボックスファジング手法を提示する。実時間で到達可能なプログラムパスを分析し、標的領域に到達できなくなる分岐点(スプリットポイント)を同定することで、特殊なパワースケジュールを用いて入力を動的に優先順位付けする。これにより、イーサリアムスマートコントラクトにおける困難な83%のターゲットに到達するまでの中央値の速度向上が最大14倍に達した。
Automatic test generation typically aims to generate inputs that explore new paths in the program under test in order to find bugs. Existing work has, therefore, focused on guiding the exploration toward program parts that are more likely to contain bugs by using an offline static analysis. In this paper, we introduce a novel technique for targeted greybox fuzzing using an online static analysis that guides the fuzzer toward a set of target locations, for instance, located in recently modified parts of the program. This is achieved by first semantically analyzing each program path that is explored by an input in the fuzzer's test suite. The results of this analysis are then used to control the fuzzer's specialized power schedule, which determines how often to fuzz inputs from the test suite. We implemented our technique by extending a state-of-the-art, industrial fuzzer for Ethereum smart contracts and evaluate its effectiveness on 27 real-world benchmarks. Using an online analysis is particularly suitable for the domain of smart contracts since it does not require any code instrumentation---instrumentation to contracts changes their semantics. Our experiments show that targeted fuzzing significantly outperforms standard greybox fuzzing for reaching 83% of the challenging target locations (up to 14x of median speed-up).
研究の動機と目的
- プログラム内の特定の、到達が難しいターゲット領域に到達するグレイボックスファジングの効果を高めること。
- スマートコントラクトのテストにおいて、精度とスケーラビリティの点で限界があるオフライン静的解析の課題を解決すること。
- 実行可能パスに沿った軽量でパスに依存する静的解析を用いて、ファジングを動的かつリアルタイムで誘導すること。
- コードのインストルメンテーションを必要とせず、生産用途に適したファジヤーにオンライン静的解析をシームレスに統合すること。
- オンライン前方解析が、標準的なグレイボックスファジングに比べて、標的指向の脆弱性発見において顕著に優れていることを実証すること。
提案手法
- ファジヤーは各新しい入力に対してオンライン静的前方解析を実行し、探索するパスを分析して、すべての接尾パスが標的領域に到達できないと証明できるパスの接頭部分を同定する。
- 前方パスに対してはパスに依存するアプローチを、すべての接尾パスに対してはパスに依存しない分析を用い、精度とスケーラビリティを両立する。
- すべての標的領域に到達できなくなるパス上のスプリットポイントを同定し、その情報を用いて入力に前方解析識別子を割り当てる。
- 前方解析識別子とスプリットポイントを用いて、標的領域に到達する可能性の高い入力に多くの実行エネルギーを割り当てる特殊なパワースケジュールを導入する。
- ソースコードやインストルメンテーションを必要とせず、EVMバイトコード上で抽象解釈(定数伝搬ドメインを用いて)を直接実行することで、静的解析を実施する。
- この手法は、Ethereumスマートコントラクト向けの最先端の産業用ファジヤーであるHARVEYに統合されており、コア実行モデルに変更を加えずに実現された。
実験結果
リサーチクエスチョン
- RQ1オンライン静的解析を、軽量かつ正確に、特定のターゲット領域に到達するようにグレイボックスファジングを誘導するためにどのように活用できるか?
- RQ2到達可能性分析の精度を最大化するために、実行可能パスに沿ったスプリットポイントを効果的に選択する最適な戦略は何か?
- RQ3オンライン静的解析の結果をファジヤーのパワースケジュールに効果的に伝える方法は何か?これによりターゲティング効率がどのように向上するか?
- RQ4オンライン前方解析は、標準的手法と比較して、グレイボックスファジングの速度と効果にどの程度向上をもたらすか?
- RQ5ソースコードやインストルメンテーションなしで、低レベルのバイトコード(例:EVM)にオンライン静的解析を適用しても、精度とパフォーマンスを維持できるか?
主な発見
- オンライン前方解析を用いた標的指向グレイボックスファジングは、27件の実世界のイーサリアムスマートコントラクトベンチマークにおいて、困難なターゲット領域の83%に到達するまでの中央値の速度向上が最大14倍に達した。
- 特に構造が複雑な、または最近変更されたコード領域において、標準的なグレイボックスファジングに比べて、カバレッジとターゲット到達可能性の両面で顕著に優れた結果を示した。
- オンライン前方解析は、標的領域に到達できないパス接頭部を高い精度で同定でき、インストルメンテーションを必要とせずに効果的な入力優先順位付けを可能にした。
- ファジヤーのパワースケジュールに静的解析の結果を統合したことで、構造的複雑性の高いパスにおいても、ターゲット領域の発見速度が顕著に向上した。
- HARVEYという生産用途に適したファジヤーへの成功した導入を通じて、実際の産業環境でも高いスケーラビリティと実用性を示した。
- 動的パス探索と軽量なオンライン静的解析を組み合わせることで、従来の手法に比べて、より効果的かつ効率的な標的指向ファジングが実現可能であることが確認された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。