Skip to main content
QUICK REVIEW

[論文レビュー] Machine Learning Guided Cross-Contract Fuzzing

Yinxing Xue, Jiaming Ye|arXiv (Cornell University)|Nov 24, 2021
Advanced Malware Detection Techniques参考文献 35被引用数 7
ひとこと要約

本論文では、語のベクトルや低レベルのEVM命令といった学習済み特徴を活用して健全な実行パスをフィルタリングすることで、イーサリアムスマートコントラクトにおけるクロスコントラクト脆弱性を検出する機械学習ガイドドのファズィングフレームワークであるxFuzzを提案する。xFuzzは、他のファズィングツールと比較して18件の利用可能なクロスコントラクト脆弱性を検出(うち15件は以前に未知のもの)し、実行時間を他のツールの20%未満に削減するとともに、脆弱性検出率を2倍に向上させた。

ABSTRACT

Smart contract transactions are increasingly interleaved by cross-contract calls. While many tools have been developed to identify a common set of vulnerabilities to guard smart contracts, the cross-contract vulnerability is however overlooked by existing tools. Cross-contract vulnerabilities are exploitable bugs that manifest in the presence of more than two interacting contracts. Existing methods are however limited to analyze a maximum of two contracts at the same time. Detecting cross-contract vulnerabilities is highly non-trivial. With multiple interacting contracts, the search space is much larger than that of a single contract. To address this problem, we present xFuzz, a machine learning guided smart contract fuzzing framework. The machine learning models are trained with novel features (e.g., word vectors and instructions) and are used to filter likely benign program paths. Comparing with existing static tools, machine learning model is proven to be more robust, avoiding directly adopting manually-defined rules in specific tools. We compare xFuzz with three state-of-the-art tools on 7,391 contracts. xFuzz detects 18 exploitable cross-contract vulnerabilities, of which 15 vulnerabilities are exposed for the first time. Furthermore, our approach is shown to be efficient in detecting non-cross-contract vulnerabilities as well-using less than 20% time as that of other fuzzing tools, xFuzz detects twice as many vulnerabilities.

研究の動機と目的

  • 2つ以上の相互作用するコントラクトを含むクロスコントラクト脆弱性を検出できない既存ツールのギャップを埋めること。
  • 静的解析やルールベースのファズィングの限界を乗り越え、複数コントラクト間の複雑な相互作用パターンを機械学習でモデル化すること。
  • コードの意味的特徴と制御フローから学習した特徴を用いて、おそらく健全な実行パスをフィルタリングすることでファズィングにおける探索空間を縮小すること。
  • 既存の最先端ファズィングおよび静的解析ツールと比較して、クロスコントラクト脆弱性検出における効率性と有効性の両方を向上させること。

提案手法

  • 本フレームワークは、コントラクトコードから導出される語のベクトルと低レベルのEVM命令を含む、新規な特徴に基づいて訓練された機械学習モデルを用いる。
  • これらのモデルを用いて、プログラムパスが健全である確率を予測し、ファズィング中に探索空間を短縮することで、リスクの高いパスに集中する。
  • 複数の相互作用するコントラクトにわたる記号実行を実施し、複雑なクロスコントラクト相互作用を探索するテスト入力を生成する。
  • MLモデルをファズィングパイプライン内にフィルタとして統合し、リスクスコアの高いパスを優先して詳細分析を行う。
  • 従来のツールで用いられる手作業で定義されたヒューリスティクスに依存しない、堅牢で汎用性の高いアプローチを設計した。
  • 検出カバレッジと効率性を測定するために、7,391件の実世界スマートコントラクトを用いてフレームワークを評価した。

実験結果

リサーチクエスチョン

  • RQ1意味的・構文的特徴に基づいて訓練された機械学習モデルは、スマートコントラクトにおけるクロスコントラクト脆弱性検出のための探索空間を効果的に縮小できるか?
  • RQ2従来の静的解析およびルールベースファズィングと比較して、機械学習ガイドドファズィングの性能は、クロスコントラクト脆弱性検出においてどう異なるか?
  • RQ3手作業で定義されたルールに依存せずに、多様なスマートコントラクト相互作用にわたって学習モデルがどの程度一般化できるか?
  • RQ4MLフィルタリングの統合により、クロスコントラクトシナリオにおける速度と検出された脆弱性数の両方の向上が達成できるか?

主な発見

  • xFuzzは7,391件のスマートコントラクトにおいて18件の利用可能なクロスコントラクト脆弱性を検出。そのうち15件は以前に未知のものであった。
  • 他のファズィングツールと比較して実行時間を20%未満に削減しながら、脆弱性検出数を2倍にした。
  • 機械学習モデルは、手作業で定義されたヒューリスティクスに依存するルールベースアプローチと比較して優れた耐性を示した。
  • xFuzzはクロスコントラクト脆弱性にとどまらず、非クロスコントラクト脆弱性をより高い効率で同定できた。これは、主にクロスコントラクト問題に焦点を当てた本研究の一般性を裏付けるものである。
  • 語のベクトルとEVM命令列をモデルの特徴として用いることで、健全な実行パスと悪意ある実行パスを区別する能力が著しく向上した。

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

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

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

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