Skip to main content
QUICK REVIEW

[論文レビュー] GasFuzz: Generating High Gas Consumption Inputs to Avoid Out-of-Gas Vulnerability.

Fuchen Ma, Ying Fu|arXiv (Cornell University)|Oct 6, 2019
Blockchain Technology Applications and Security参考文献 46被引用数 11
ひとこと要約

本稿では、Ethereumスマートコントラクトにおけるガス制限の低評価を低減するために、ガス消費量の高い入力を生成するフィードバック指向型の変異型ファズァーであるV-Gasを提案する。ガス重み付き制御フローグラフを構築し、ガス消費量のフィードバックで変異を誘導することで、V-Gasは低評価率を44.02%から13.86%に低下させ、25件の以前未知のガス不足脆弱性を特定した。

ABSTRACT

The out-of-gas error occurs when smart contract programs are provided with inputs that cause excessive gas consumption, and would be easily exploited to make the DoS attack. Multiple approaches have been proposed to estimate the gas limit of a function in smart contracts to avoid such error. However, under estimation often happens when the contract is complicated. In this work, we propose V-Gas, which could automatically generate inputs that maximizes the gas cost and reduce the under estimation cases. V-Gas is designed based on feedback-directed mutational fuzz testing. First, V-Gas builds the gas weighted control flow graph (CFG) of functions in smart contracts. Then, V-Gas develops gas consumption guided selection and mutation strategies to generate the input that maximize the gas consumption. For evaluation, we implement V-Gas based on js-evm, a widely used ethereum virtual machine written in javascript, and conduct experiments on 736 real-world transactions recorded on Ethereum. 44.02\% of the transactions would have out-of-gas errors under the estimation results given by solc, means that the recorded real gas consumption for those recorded transactions is larger than the gas limit value estimated by solc. While V-Gas could reduce the under estimation ratio to 13.86\%. Furthermore, V-Gas has exposed 25 previously unknown out-of-gas vulnerabilities in those widely-used smart contracts, 5 of which have been assigned unique CVE identifiers in the US National Vulnerability Database.

研究の動機と目的

  • Ethereumスマートコントラクトにおけるガス制限の低評価という継続的な問題に取り組むこと。これは、ガス不足エラーと潜在的なDoS攻撃を引き起こす。
  • 静的解析ツール(例:solc)がしばしば失敗するような複雑なスマートコントラクトにおけるガス制限推定の正確性を向上させること。
  • ガス消費量を最大化する自動入力生成手法を開発し、低評価リスクを露呈すること。
  • 広く展開されたスマートコントラクトにおいて以前に検出されなかったガス不足脆弱性を同定すること。

提案手法

  • スマートコントラクト内の各関数に対して、ガス重み付き制御フローグラフ(CFG)を構築し、実行パス全体におけるガス消費量をモデル化する。
  • フィードバック指向型の変異ファジングを適用し、リアルタイムのガス消費量フィードバックによって変異戦略を誘導する。
  • ガス消費量をフィtness指標として用い、ガス使用量を増加させる入力変異を選別・優先順位付けする。
  • js-evm(JavaScriptベースのEthereum仮想マシン)にファズァーを統合し、本物の取引における正確なガス測定を可能にする。
  • 736件の実際のEthereum取引に対して生成された入力を評価し、低評価の低減と脆弱性の発見を測定する。

実験結果

リサーチクエスチョン

  • RQ1フィードバック指向型の変異ファジングは、スマートコントラクトにおけるガス消費量を最大化する入力を効果的に生成できるか?
  • RQ2V-Gasは、solcのような静的解析ツールと比較して、ガス制限の低評価率をどの程度低減できるか?
  • RQ3V-Gasは、実世界のスマートコントラクトにおいて、以前に未知のガス不足脆弱性を何件発見できるか?
  • RQ4発見された脆弱性は独立して検証可能であり、CVE識別子が割り当てられるか?

主な発見

  • 736件の実Ethereum取引を対象に評価した結果、V-Gasはガス制限の低評価率を44.02%から13.86%に低下させた。
  • 本ツールは、広く使われているスマートコントラクトにおいて25件の以前に未知のガス不足脆弱性を効果的に特定した。
  • 発見された脆弱性のうち5件が米国国立脆弱性データベースに固有のCVE識別子を割り当てられ、深刻さと再現可能性が確認された。
  • ガス重み付きCFGとフィードバック指向型の変異戦略は、高コスト実行パスの検出を著しく改善した。
  • 動的でフィードバック駆動型のファジングが、静的解析よりもガス関連の脆弱性を特定する上でより効果的であることが結果から示された。

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

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

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

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