论文标题
GIS:屏蔽弱势智能合约免受攻击
ÆGIS: Shielding Vulnerable Smart Contracts Against Attacks
论文作者
论文摘要
近年来,智能合约遭受了重大的利用,耗资数百万美元。与传统计划不同,智能合约被部署在区块链上。因此,部署后无法修改它们。尽管已经提出了各种工具来检测弱势智能合约,但大多数人未能保护已经在区块链上部署的脆弱合同。到目前为止,仅提出了很少的解决方案来解决剥离后的问题。但是,这些解决方案的精度低,并且不足以防止任何类型的攻击。 在这项工作中,我们介绍了一种动态分析工具,可保护智能合约免受运行时的利用。它可以通过所谓的攻击模式轻松扩展其检测新漏洞的能力。这些模式是用特定于领域的语言编写的,该语言是根据以太坊智能合约的执行模型量身定制的。该语言可以描述恶意控制和数据流。此外,我们提出了一种新颖的机制来简化和加快管理攻击模式的过程。模式通过智能合约投票并存储,从而利用了区块链提供的防盗和透明度的好处。我们将ægis与当前的最新工具进行了比较,并证明我们的解决方案在检测攻击方面达到了更高的精度。最后,我们对以太坊区块链的前450万块进行了大规模分析,从而确认了野外报告且未报告的攻击的发生。
In recent years, smart contracts have suffered major exploits, costing millions of dollars. Unlike traditional programs, smart contracts are deployed on a blockchain. As such, they cannot be modified once deployed. Though various tools have been proposed to detect vulnerable smart contracts, the majority fails to protect vulnerable contracts that have already been deployed on the blockchain. Only very few solutions have been proposed so far to tackle the issue of post-deployment. However, these solutions suffer from low precision and are not generic enough to prevent any type of attack. In this work, we introduce ÆGIS, a dynamic analysis tool that protects smart contracts from being exploited during runtime. Its capability of detecting new vulnerabilities can easily be extended through so-called attack patterns. These patterns are written in a domain-specific language that is tailored to the execution model of Ethereum smart contracts. The language enables the description of malicious control and data flows. In addition, we propose a novel mechanism to streamline and speed up the process of managing attack patterns. Patterns are voted upon and stored via a smart contract, thus leveraging the benefits of tamper-resistance and transparency provided by the blockchain. We compare ÆGIS to current state-of-the-art tools and demonstrate that our solution achieves higher precision in detecting attacks. Finally, we perform a large-scale analysis on the first 4.5 million blocks of the Ethereum blockchain, thereby confirming the occurrences of well reported and yet unreported attacks in the wild.