Skip to main content
QUICK REVIEW

[論文レビュー] Elysium: Automagically Healing Vulnerable Smart Contracts Using Context-Aware Patching

Christof Ferreira Torres, Hugo Jonker|arXiv (Cornell University)|Aug 23, 2021
Blockchain Technology Applications and Security参考文献 34被引用数 7
ひとこと要約

Elysium は、バイナリコードから得られるコンテキストを活用して、テンプレートベースと意味的パッチ適用の両方を組み合わせることで、デプロイ前におけるスマートコントラクトの自動修復を可能にするスケーラブルでコンテキストに配慮したフレームワークです。既存のツールよりも 30% も多くの脆弱なコントラクトを修復しつつ、取引コストの増加を最小限に抑え、ブロックチェーンベースのプログラムを保護する上で優れた効果と効率性を示しています。

ABSTRACT

Smart contracts are programs that are deployed and executed on the blockchain. Typically, smart contracts govern assets; popular smart contracts can govern assets worth millions. Just like traditional programs, smart contracts are subject to programming mistakes. However, a major difference is that smart contracts cannot be patched once deployed. Several approaches have been studied to improve smart contract security, by detecting bugs prior to deployment, allowing contracts to be updated, or modifying clients to prevent attacking transactions. The most elegant solution would be to automatically eliminate bugs prior to deployment. Merely identifying bugs is not enough. This became evident when the Parity wallet was hacked a second time after being manually patched following a security audit. Automatic pre-deployment patching offers a powerful promise to strengthen smart contract defenses. Current approaches are limited in the types of vulnerabilities that can be patched, in the flexibility of the patching process, and in scalability. In this paper we propose Elysium, a scalable approach towards automatic smart contract repair, that combines template-based patching with semantic patching by inferring context information from the bytecode. Elysium can currently automatically patch 7 known vulnerabilities in smart contracts using external bug-finding tools, and it can easily be extended with new templates and new bug-finding tools. We evaluate effectiveness and correctness of Elysium using 3 different datasets by replaying more than 500K transactions against patched contracts. We find that Elysium outperforms existing tools by patching at least 30% more contracts. Finally, we compare the overhead in terms of deployment and transaction cost increase. In comparison to other tools, Elysium minimizes transaction cost (up to a factor of 1.9), for only a marginally higher deployment cost.

研究の動機と目的

  • デプロイ後のスマートコントラクトのセキュリティを確保するという重要な課題に取り組むこと。手動での修正は元に戻せず、高コストである。
  • 既存の自動パッチ適用ツールに欠如しているスケーラビリティ、柔軟性、多様な脆弱性への対応能力を克服すること。
  • バイナリコードからコンテキストを推論することで、正確でスケーラブルなパッチ生成を可能にするデプロイ前修復システムを開発すること。
  • デプロイおよび取引コストの増加を最小限に抑えつつ、パッチ適用可能なコントラクトの数を最大化すること。
  • 外部のバグ検出ツールとの統合を可能にし、拡張可能なパッチテンプレートをサポートするモジュラーなフレームワークを提供すること。

提案手法

  • Elysium はバイナリコード解析を用いて、スマートコントラクトの振る舞いに関するコンテキスト的情報を推論し、コンテキストに配慮したパッチ適用を可能にします。
  • 既知の脆弱性に対して正しいかつ安全な修正を生成するために、テンプレートベースのパッチ適用と意味的パッチ適用を組み合わせます。
  • 外部の静的解析ツールを活用して脆弱性を検出し、それらを適切な修復テンプレートにマッピングします。
  • パッチ適用はデプロイの前に行われ、ブロックチェーン上に公開されるのは常に検証済みで安全なコントラクトであることを保証します。
  • 新しいバグ検出ツールや新しいパッチテンプレートの統合を可能にする拡張性をフレームワークが備えています。
  • Elysium は、3つのデータセットにまたがる 50 万件以上の取引を用いたトランザクションリプレイにより、パッチの正しさと安全性を検証しています。

実験結果

リサーチクエスチョン

  • RQ1デプロイ前でコンテキストに配慮したパッチ適用システムは、幅広いスマートコントラクトの脆弱性を効果的に修復できるか?
  • RQ2Elysium のパッチ適用の正確性とカバレッジは、既存の自動修復ツールと比べてどうか?
  • RQ3Elysium のパフォーマンスオーバーヘッド(デプロイおよび取引コストの観点から)はどの程度か?
  • RQ4Elysium は多様なスマートコントラクトのパターンや脆弱性にどの程度スケーラブルに適用できるか?
  • RQ5Elysium は手動での介入なしに、パッチ適用プロセス中に正しさと安全性をどのように維持できるか?

主な発見

  • Elysium は、既存のツールよりも少なくとも 30% も多くの脆弱なコントラクトを修復しており、カバレッジと効果性の優位性を示しています。
  • フレームワークは、テンプレートベースと意味的パッチ適用の組み合わせにより、7 つの既知のスマートコントラクト脆弱性を正常に修復しました。
  • 取引コストの増加は最小限に抑えられており、Elysium は他のツールと比較してコスト効率で最大 1.9 倍の改善を達成しています。
  • デプロイコストの増加はわずかであり、Elysium が実世界のブロックチェーンデプロイに実用的であることを示しています。
  • 3 つのデータセットにまたがる 50 万件以上のトランザクションを用いた広範なトランザクションリプレイにより、パッチの信頼性が検証され、正しさが維持されています。
  • Elysium のモジュラーな設計により、外部の静的解析ツールや拡張可能なパッチテンプレートとのシームレスな統合が可能になっています。

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

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

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

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