[論文レビュー] Security Analysis of EOSIO Smart Contracts
この論文では、WebAssembly (Wasm) バイトコードレベルでEOSIOスマートコントラクトの脆弱性を検出する静的解析フレームワークであるEOSafeを提案する。シンボリック実行エンジン、カスタム化されたEOSIOライブラリエミュレータ、およびヒューリスティック駆動の検出器を組み合わせることで、EOSafeは脆弱性検出において98%のF1スコアを達成し、53,666件のアクティブなEOSIOスマートコントラクトの25%以上を脆弱と特定した。また、48件の実際の攻撃が確認されており、少なくとも170万ドル相当の損失が発生している。
The EOSIO blockchain, one of the representative Delegated Proof-of-Stake (DPoS) blockchain platforms, has grown rapidly recently. Meanwhile, a number of vulnerabilities and high-profile attacks against top EOSIO DApps and their smart contracts have also been discovered and observed in the wild, resulting in serious financial damages. Most of EOSIO's smart contracts are not open-sourced and they are typically compiled to WebAssembly (Wasm) bytecode, thus making it challenging to analyze and detect the presence of possible vulnerabilities. In this paper, we propose EOSAFE, the first static analysis framework that can be used to automatically detect vulnerabilities in EOSIO smart contracts at the bytecode level. Our framework includes a practical symbolic execution engine for Wasm, a customized library emulator for EOSIO smart contracts, and four heuristics-driven detectors to identify the presence of four most popular vulnerabilities in EOSIO smart contracts. Experiment results suggest that EOSAFE achieves promising results in detecting vulnerabilities, with an F1-measure of 98%. We have applied EOSAFE to all active 53,666 smart contracts in the ecosystem (as of November 15, 2019). Our results show that over 25% of the smart contracts are vulnerable. We further analyze possible exploitation attempts against these vulnerable smart contracts and identify 48 in-the-wild attacks (25 of them have been confirmed by DApp developers), resulting in financial loss of at least 1.7 million USD.
研究の動機と目的
- EOSIOスマートコントラクトの自動化された分析ツールの不足に応えること。これらのコントラクトは通常Wasmにコンパイルされ、ソースコードが公開されていない。
- 複雑な命令セット、ネストされた制御フロー、意味的文脈の必要性により、Wasmバイトコードの分析が困難であるという課題を克服すること。
- フェイクEOS、フェイクレシート、ロールバック、権限チェックの欠落という4つの高リスクなEOSIO固有の脆弱性を自動的かつ正確に検出すること。
- EOSIOエコシステム全体のセキュリティ状態を大規模に評価し、実際の攻撃の試みを同定すること。
提案手法
- Wasmバイトコードに特化したシンボリック実行エンジンを設計・実装し、パス爆発を緩和するためのヒューリスティック誘導パスプリーニングを採用する。
- 脆弱性検出に不可欠なEOSIO固有の関数およびデータ構造を模倣するカスタムライブラリエミュレータを開発する。
- 特定の脆弱性パターン用の検出器をプラグインとして統合できる、プラグインベースの脆弱性検出フレームワークを構築する。
- Wasmの制御フローおよび関数引数の意味的解析を用いて、4つの主要なEOSIO脆弱性のためのヒューリスティック駆動の検出器を4つ実装する。
- シンボリック実行とエミュレータを統合し、制御フローおよびデータフロー解析に基づいてプログラムパスを探索し、セキュリティ上の欠陥を同定する。
- 2019年11月15日現在の53,666件のアクティブなEOSIOスマートコントラクトすべてにフレームワークを適用し、大規模な脆弱性測定を実施する。
実験結果
リサーチクエスチョン
- RQ1Wasmにコンパイルされ、公開されていないEOSIOスマートコントラクトに対して、静的解析フレームワークが効果的に脆弱性を検出できるか。
- RQ2ネストされた制御フローと高度な命令を含む複雑なWasmバイトコードを分析する際、パスプリーニングを用いたシンボリック実行はどの程度有効か。
- RQ3フェイクEOSやフェイクレシートといった既知の高リスク脆弱性が、EOSIOエコシステム全体にどの程度広がっているか。
- RQ4このフレームワークは実世界の攻撃の試みを同定できるか。また、その攻撃による金融的損失の規模はどの程度か。
主な発見
- 手作業で作成した52件のスマートコントラクトからなるベンチマークにおいて、EOSafeは98%のF1スコアを達成し、高い正確性と再現性を示した。
- 分析対象の53,666件のアクティブなEOSIOスマートコントラクトの25%以上が、4つのターゲット脆弱性のいずれかに脆弱であると判明した。
- 48件の実世界攻撃が同定され、そのうち25件はDApp開発者によって確認された。これにより、少なくとも170万ドル相当の損失が発生した。
- 多くの脆弱なコントラクトは非アクティブまたは残高が低いことが判明し、攻撃者は高価値のコントラクトを意図的に標的にしている可能性がある。
- シンボリック実行エンジンはヒューリスティックプリーニングによりパス爆発を効果的に抑制し、複雑なWasmベースのスマートコントラクトのスケーラブルな解析を可能にした。
- フレームワークのモジュラーな設計により、追加の脆弱性検出が容易に拡張可能であり、EOSIOを越えた他のWasmベースのシステムに対しても汎用的である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。