Skip to main content
QUICK REVIEW

[論文レビュー] Oracle-Supported Dynamic Exploit Generation for Smart Contracts

Haijun Wang, Yi Li|arXiv (Cornell University)|Sep 14, 2019
Blockchain Technology Applications and Security参考文献 30被引用数 15
ひとこと要約

本稿では、トランザクションシーケンスの変異と汎用的テストオラクルを介した意味的不一致のモニタリングにより、実行時意味論に基づく動的でオラクル支援型のフレームワーク、ContraMasterを提案する。このフレームワークは、218件のベンチマークコントラクトに存在する28件の実行可能脆弱性をすべて検出するという点で、最先端の手法を上回り、偽陽性はゼロである。さらに、3つの新しい攻撃パターンを同定した。

ABSTRACT

Despite the high stakes involved in smart contracts, they are often developed in an undisciplined manner, leaving the security and reliability of blockchain transactions at risk. In this paper, we introduce ContraMaster: an oracle-supported dynamic exploit generation framework for smart contracts. Existing approaches mutate only single transactions; ContraMaster exceeds these by mutating the transaction sequences. ContraMaster uses data-flow, control-flow, and the dynamic contract state to guide its mutations. It then monitors the executions of target contract programs, and validates the results against a general-purpose semantic test oracle to discover vulnerabilities. Being a dynamic technique, it guarantees that each discovered vulnerability is a violation of the test oracle and is able to generate the attack script to exploit this vulnerability. In contrast to rule-based approaches, ContraMaster has not shown any false positives, and it easily generalizes to unknown types of vulnerabilities (e.g., logic errors). We evaluate ContraMaster on 218 vulnerable smart contracts. The experimental results confirm its practical applicability and advantages over the state-of-the-art techniques, and also reveal three new types of attacks.

研究の動機と目的

  • 静的でルールベースのスマートコントラクト脆弱性検出における高い偽陽性率を是正するため、実行時意味論に基づく動的分析に移行すること。
  • 資金の一貫性や状態の整合性といった、コントラクト動作における基本的インヴァリアントを捉える汎用的意味的テストオラクルの開発。
  • 関数入力に加え、トランザクションシーケンス、ガス制限、フォールバック関数、コントラクト状態の変異を可能にするグレイボックスファズァーの設計により、実行可能性の高い脆弱性の発見を向上させること。
  • 実世界の脆弱なコントラクトに対してフレームワークを検証し、既存のツールと比較して、実行可能な脆弱性のみを検出する優位性を示すこと。
  • 外部イベントと内部コントラクト状態の間の意味的不一致を観察することで、以前に未知の脆弱性パターンを同定すること。

提案手法

  • ContraMasterは、外部から観察可能なイベント(例:資金移動)と内部コントラクト状態(例:残高管理)の間の不一致をチェックする汎用的意味的テストオラクルを採用している。
  • トランザクションシーケンス、ガス制限、フォールバック関数、動的コントラクト状態を標的としたカスタム変異オペレータを備えた、拡張されたグレイボックスファズィングエンジンを用いている。
  • データフロー、制御フロー、実行時コントラクト状態解析から得られるフィードバックメカニズムにより、より深いコードカバレッジと脆弱性の露呈を指向する変異が誘導される。
  • フレームワークはリアルなEVM環境でトランザクションを実行し、意味的オラクルによる検証を通じて、各検出された脆弱性が実際に利用可能であることを保証している。
  • 実行時モニタリングを活用して、再入性、例外の不整合、整数オーバーフロー/アンダーフローなどの脆弱性を示す意味的不一致を検出している。
  • 事前にパターン定義を必要とせず、さまざまな脆弱性タイプに一般化可能であり、未知の攻撃ベクトルの検出が可能である。

実験結果

リサーチクエスチョン

  • RQ1事前に定義された構文的パターンに依存せずに、幅広いスマートコントラクト脆弱性を効果的に検出できる汎用的意味的テストオラクルは、実現可能か?
  • RQ2単一トランザクションの変異と比較して、トランザクションシーケンスの変異は、実行可能な脆弱性の検出にどの程度効果的か?
  • RQ3既存のルールベースおよび静的解析手法と比較して、ContraMasterは偽陽性をどの程度低減できるか?
  • RQ4コントラクト実行シーケンスの動的かつオラクルガイドドの変異により、どのような新しい脆弱性パターンが同定可能か?
  • RQ5本フレームワークは、本番環境に近い環境で、実世界の攻撃を高精度で検出・再現できるか?

主な発見

  • ContraMasterは218件の脆弱なスマートコントラクトに対して評価され、28件の実行可能脆弱性を検出。これらすべてが攻撃スクリプトを用いて正当かつ再現可能であることが確認された。
  • 218件の報告された脆弱性のうち87.16%(189件)は非実行可能であり、既存のルールベースツールの高い偽陽性率を示している。
  • ContraMasterはすべてのテストケースで偽陽性ゼロを達成し、ContractFuzzer や Zeus などの最先端のツールを上回った。
  • フレームワークは26件の以前に未知の脆弱性を同定した。そのうち3件は、既存の脆弱性パターンではカバーされていない新しいタイプの攻撃であった。
  • 意味的テストオラクルは、外部イベントと内部コントラクト状態の間の意味的不一致を検出することで、実行可能な欠陥を効果的に同定した。
  • トランザクションシーケンスおよびコントラクト状態を標的としたカスタム変異オペレータは、従来のファジングと比較して、脆弱性生成の有効性を顕著に向上させた。

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

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

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

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