[論文レビュー] Vandal: A Scalable Security Analysis Framework for Smart Contracts
Vandal は Ethereum バイトコードを論理関係へ翻訳し、宣言的 Soufflé 分析を用いてスマートコントラクトの脆弱性を検出します。大規模な研究で高いカバレージと高速性を達成しています。
The rise of modern blockchains has facilitated the emergence of smart contracts: autonomous programs that live and run on the blockchain. Smart contracts have seen a rapid climb to prominence, with applications predicted in law, business, commerce, and governance. Smart contracts are commonly written in a high-level language such as Ethereum's Solidity, and translated to compact low-level bytecode for deployment on the blockchain. Once deployed, the bytecode is autonomously executed, usually by a %Turing-complete virtual machine. As with all programs, smart contracts can be highly vulnerable to malicious attacks due to deficient programming methodologies, languages, and toolchains, including buggy compilers. At the same time, smart contracts are also high-value targets, often commanding large amounts of cryptocurrency. Hence, developers and auditors need security frameworks capable of analysing low-level bytecode to detect potential security vulnerabilities. In this paper, we present Vandal: a security analysis framework for Ethereum smart contracts. Vandal consists of an analysis pipeline that converts low-level Ethereum Virtual Machine (EVM) bytecode to semantic logic relations. Users of the framework can express security analyses in a declarative fashion: a security analysis is expressed in a logic specification written in the \souffle language. We conduct a large-scale empirical study for a set of common smart contract security vulnerabilities, and show the effectiveness and efficiency of Vandal. Vandal is both fast and robust, successfully analysing over 95\% of all 141k unique contracts with an average runtime of 4.15 seconds; outperforming the current state of the art tools---Oyente, EthIR, Mythril, and Rattle---under equivalent conditions.
研究の動機と目的
- スマートコントラクトの高価値ターゲットと複雑なツールチェーンのため、堅牢なセキュリティ分析の必要性を動機づける。
- 低レベルの EVM バイトコードを宣言的で論理駆動型のアプローチで分析するフレームワークを提案する。
- 一般的な脆弱性分析を Soufflé の論理仕様として表現できることを示す。
- 大規模なコントラクトのコーパスに渡る実証的評価を行い、堅牢性と効率を評価する。
提案手法
- EVM バイトコードを論理関係へ変換する分析パイプラインと、Soufflé で表現されたセキュリティ分析のライブラリという2部構成の Vandal アーキテクチャを紹介する。
- エンドツーエンドのパイプラインを構築する:スクレイパーがバイトコードを取得し、ディスアセンブラが mnemonics を出力し、デコンパイラがレジスタ転送言語を生成し、エクストラクタが論理関係を出力する。
- 制御フローを記号実行、データフロー分析、ノード分割を用いて順次再構築するデコンパイル手法を用い、ジャンプターゲットを解決する。
- 脆弱性分析を宣言的な論理仕様として Soufflé に表現し、分析の迅速なプロトタイピングと組み合わせを可能にする。
- 生成された論理関係上で動作する効率的な分析器を合成するために Datalog エンジンを活用する。
- 141k のユニークなコントラクトを対象にカバレッジ、堅牢性、性能を評価する大規模な実証研究を実施する。
実験結果
リサーチクエスチョン
- RQ1Vandal は EVM バイトコードを静的分析に適した正確な制御フローとデータフロー表現へ分解できるか。
- RQ2一般的なスマートコントラクトの脆弱性は、競争力のある性能を持つ宣言的 Soufflé 仕様で検出可能か。
- RQ3Vandal は同等条件下での現行ツール(Oyente、EthIR、Mythril、Rattle)と比較してカバレッジと速度の面でどのようにパフォーマンスするか。
- RQ4スケーラブルなスマートコントラクトのセキュリティ分析のための論理駆動パイプラインの実現性と利点は何か。
主な発見
- Vandal は研究対象の 141k コントラクトのうち 95% をデコンパイルして分析する。
- 平均分析実行時間は 4.15 秒/コントラクト。
- Vandal は同等条件下で最先端ツール Oyente、EthIR、Mythril、Rattle を上回る。
- 実装されたセキュリティ分析には、 unchecked send、リエントラシー、unsecured balance、destroyable contract、origin vulnerabilities が含まれる。
- フレームワークはモジュール化された宣言的アプローチを提供し、分析の迅速なプロトタイピングと組み合わせを可能にする。
- パイプラインは Soufflé が分析を効率的に実行するための論理関係を生成する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。