Skip to main content
QUICK REVIEW

[論文レビュー] Towards Smart Hybrid Fuzzing for Smart Contracts.

Christof Ferreira Torres, Antonio Ken Iannillo|arXiv (Cornell University)|May 25, 2020
Advanced Malware Detection Techniques参考文献 36被引用数 7
ひとこと要約

CONFUZZIUS は、進化的ファジングと制約解決を組み合わせたハイブリッドファージャーであり、スマートコントラクトにおけるコードカバレッジの向上と、より深いバグの検出を実現する。データ依存解析を活用してステートフルなトランザクションシーケンスを生成することで、最先端のシンボリック実行ツールやファージャーを上回る結果を達成している。

ABSTRACT

Smart contracts are Turing-complete programs that are executed across a blockchain network. Unlike traditional programs, once deployed they cannot be modified. As smart contracts become more popular and carry more value, they become more of an interesting target for attackers. In recent years, smart contracts suffered major exploits, costing millions of dollars, due to programming errors. As a result, a variety of tools for detecting bugs has been proposed. However, majority of these tools often yield many false positives due to over-approximation or poor code coverage due to complex path constraints. Fuzzing or fuzz testing is a popular and effective software testing technique. However, traditional fuzzers tend to be more effective towards finding shallow bugs and less effective in finding bugs that lie deeper in the execution. In this work, we present CONFUZZIUS, a hybrid fuzzer that combines evolutionary fuzzing with constraint solving in order to execute more code and find more bugs in smart contracts. Evolutionary fuzzing is used to exercise shallow parts of a smart contract, while constraint solving is used to generate inputs which satisfy complex conditions that prevent the evolutionary fuzzing from exploring deeper paths. Moreover, we use data dependency analysis to efficiently generate sequences of transactions, that create specific contract states in which bugs may be hidden. We evaluate the effectiveness of our fuzzing strategy, by comparing CONFUZZIUS with state-of-the-art symbolic execution tools and fuzzers. Our evaluation shows that our hybrid fuzzing approach produces significantly better results than state-of-the-art symbolic execution tools and fuzzers.

研究の動機と目的

  • 既存のスマートコントラクトテストツールの限界、特に過剰近似や複雑なパス制約による高い誤検出率と低いコードカバレッジを是正すること。
  • 従来のファージャーがしばしば見逃す、深く到達が難しいバグの検出を改善すること。
  • 進化的ファジングと制約解決を組み合わせることで、複雑な実行パスを効果的に探索し、コードカバレッジを向上させること。
  • 特定のコントラクト状態に到達する意味のあるトランザクションシーケンスを生成し、隠れたバグが存在する可能性のある状態に到達させること。
  • ハイブリッドアプローチの有効性を、最先端のシンボリック実行ツールおよびファージャーと比較して評価すること。

提案手法

  • 変異ベースの入力生成により、スマートコントラクト内の浅い到達可能なパスを探索するため、進化的ファジングが用いられる。
  • 複雑なパス条件を満たす入力を生成するために制約解決が活用され、より深く制約の厳しい実行パスの探索が可能になる。
  • データ依存解析を適用して、特定のコントラクト状態に至るトランザクションシーケンスを同定し、隠れたバグを引き起こす可能性を高める。
  • ハイブリッドアプローチは、カバレッジとパスの複雑さに基づいて優先順位を付けることで、進化的ファジングと制約解決を協調的に統合する。
  • フレームワークはイーサリアムベースのスマートコントラクトと互換性を持ち、パス条件分析のためのシンボリック実行をサポートする。
  • 実行トレースとステート遷移を監視することで、入力がバグのトリガーを発生させるかを評価する。

実験結果

リサーチクエスチョン

  • RQ1進化的ファジングと制約解決を組み合わせたハイブリッドファージャーは、スマートコントラクトテストにおいて、単独のアプローチよりも優れたコードカバレッジを達成できるか?
  • RQ2データ依存解析を用いた意味のあるトランザクションシーケンスの生成は、脆弱なコントラクト状態に到達するのにどの程度効果的か?
  • RQ3シンボリック実行ツールと比較して、ハイブリッドアプローチは誤検出をどの程度低減し、深く複雑なバグの検出をどの程度向上できるか?
  • RQ4CONFUZZIUS は、最先端のファージャーやシンボリック実行ツールと比較して、バグ発見速度とコードカバレッジの面でどの程度優れているか?
  • RQ5制約解決の統合により、従来の進化的ファジングでは到達不可能なパスの探索がどの程度向上できるか?

主な発見

  • CONFUZZIUS は、コードカバレッジおよびバグ検出の観点で、最先端のシンボリック実行ツールを著しく上回っている。
  • ハイブリッドアプローチは、単独のファージャーやシンボリック実行エンジンよりも、より多くのバグを発見しており、特にネストが深く、条件付きで保護されたパスにおいて顕著である。
  • 制約解決により、変異ベースのファジングだけでは到達できない複雑なパスを、ファージャーが探索できるようになった。
  • データ依存解析は、特定のコントラクト状態に到達するトランザクションシーケンスを効果的に生成し、潜在的な脆弱性を引き起こす確率を高めている。
  • 進化的ファジングと制約解決の組み合わせにより、探索可能なユニークなパス数および検出されたバグ数の両方で、明確な改善が得られている。
  • 評価結果から、CONFUZZIUS は、既存のツールと比較して、実世界のスマートコントラクトベンチマークにおいて優れた成果を上げていることが確認された。

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

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

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

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