Skip to main content
QUICK REVIEW

[論文レビュー] EVulHunter: Detecting Fake Transfer Vulnerabilities for EOSIO's Smart Contracts at Webassembly-level

Lijin Quan, Lei Wu|arXiv (Cornell University)|Jun 25, 2019
Blockchain Technology Applications and Security参考文献 6被引用数 24
ひとこと要約

EVulHunter は、静的解析ツールであり、WebAssembly (WASM) コードをスケールして分析することで、EOSIO スマートコントラクトにおけるなりすまし転送脆弱性を検出する。制御フローグラフを構築し、WASM シミュレータを用いたパターンベースの検出を実行することで、なりすましEOS転送脆弱性について86%の正確性、なりすまし転送通知脆弱性について100%の正確性を達成し、誤検出が少ない。

ABSTRACT

As one of the representative Delegated Proof-of-Stake (DPoS) blockchain platforms, EOSIO's ecosystem grows rapidly in recent years. A number of vulnerabilities and corresponding attacks of EOSIO's smart contracts have been discovered and observed in the wild, which caused a large amount of financial damages. However, the majority of EOSIO's smart contracts are not open-sourced. As a result, the WebAssembly code may become the only available object to be analyzed in most cases. Unfortunately, current tools are web-application oriented and cannot be applied to EOSIO WebAssembly code directly, which makes it more difficult to detect vulnerabilities from those smart contracts. In this paper, we propose oolname, a static analysis tool that can be used to detect vulnerabilities from EOSIO WASM code automatically. We focus on one particular type of vulnerabilities named extit{fake-transfer}, and the exploitation of such vulnerabilities has led to millions of dollars in damages. To the best of our knowledge, it is the first attempt to build an automatic tool to detect vulnerabilities of EOSIO's smart contracts. The experimental results demonstrate that our tool is able to detect fake transfer vulnerabilities quickly and precisely. EVulHunter is available on GitHub\footnote{Tool and benchmarks: https://github.com/EVulHunter/EVulHunter} and YouTube\footnote{Demo video: https://youtu.be/5SJ0ZJKVZvw}.

研究の動機と目的

  • ソースコードが利用できない状況において、コンパイル済みの WebAssembly (WASM) バイナリにのみ依存して、EOSIO スマートコントラクトにおける脆弱性を検出する課題に対処すること。
  • 自動化された静的解析ツールを開発し、特に EOSIO スマートコントラクトに一般的に見られるなりすましEOS転送およびなりすまし転送通知という2つのなりすまし転送脆弱性を特定できること。
  • WASM バイナリに存在するシンボリック情報や型情報の欠如を補うために、関数インデックスを推定し、変化するコントラクト開発キット (CDT) のバージョン変更に対応できること。
  • 241個の実世界の EOSIO スマートコントラクト(うち159個が脆弱)を含む実際のベンチマークを用いて、ツールの正確性、再現率、パフォーマンスを評価すること。
  • EOSIO の高スループットブロックチェーンエコシステムにおいて、スケーラブルかつ効率的な脆弱性検出ソリューションを提供すること。

提案手法

  • EVulHunter は WASM バイナリを解析して制御フローグラフ (CFG) を抽出し、事前に定義された脆弱性パターンを用いた静的解析を実行する。
  • 懸念されるコードパスの詳細な分析を可能にするために、WASM シミュレータモジュールを内蔵している。
  • 不正または意図しないトークン転送がアクションハンドラ経由でトリガーされるパターンを検出することで、なりすまし転送脆弱性を特定する。
  • 固定された構文や構造に依存せず、行動パターンの分析により、CDT バージョンの変更に動的に適応できる。
  • 正当なサードパーティトークンアカウントによる誤検出を低減するために、ホワイトリストメカニズムをサポートしている。
  • 本システムは、241個の実世界の EOSIO スマートコントラクト(うち184個がなりすましEOS転送検出用、195個がなりすまし転送通知検出用)からなるベンチマークで評価されている。

実験結果

リサーチクエスチョン

  • RQ1WASM バイナリのみが利用可能な状況で、静的解析ツールが EOSIO スマートコントラクトにおけるなりすまし転送脆弱性を検出できるか?
  • RQ2WASM コード上でパターンベースの解析を用いた場合、なりすましEOS転送およびなりすまし転送通知脆弱性の検出はどれほど正確かつ効率的か?
  • RQ3CDT バージョンの進化が、WASM バイナリにおける脆弱性検出の信頼性および保守性に与える影響は何か?
  • RQ4正当なサードパーティトークンアカウントによる誤検出を、検出カバレッジを損なわずに最小限に抑えるにはどうすればよいか?
  • RQ5提案手法は、実際の現場で数千個のスマートコントラクトに対する大規模な解析にスケーラブルに適用可能か?

主な発見

  • EVulHunter は、なりすましEOS転送脆弱性の検出において86%の正確性を達成した。誤検出26件は、歴史的バージョンの eosbetdice11 コントラクトおよび正当なサードパーティトークンアカウントに起因していた。
  • なりすまし転送通知脆弱性の検出に関しては、100%の正確性を達成し、偽陰性が一切なかった。これは、この脆弱性タイプの検出において高い正確性と再現率を示している。
  • 1つのスマートコントラクトの検出時間は1〜3秒の範囲で、コントラクトのサイズに比例して線形に増加した。これは、高い効率性とスケーラビリティを示している。
  • EVulHunter は、241個のスマートコントラクトのうち159個でなりすましEOS転送およびなりすまし転送通知脆弱性を検出できた。それぞれの評価に184個および195個のコントラクトが使用された。
  • WASM シミュレータモジュールにより、構文パターンマッチングを超えた、懸念されるコードパスのより深い分析が可能になり、検出の信頼性が向上した。
  • カスタマイズ可能なホワイトリストを導入することで、正当なトークンアカウント由来の誤検出を低減でき、実用性が向上した。

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

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

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

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