![75f7baafc1a1fba99a6a6b5d97a9edd6.png](https://img-blog.csdnimg.cn/img_convert/75f7baafc1a1fba99a6a6b5d97a9edd6.png)
论文:Chao Liu, Han Liu, Zhao Cao, Zhong Chen, Bangdao Chen, and Bill Roscoe. 2018.
ReGuard: Finding Reentrancy Bugs in Smart Contracts. In Proceedings of the 40th
International Conference on Software Engineering Companion. IEEE Press.
论文摘要:
智能合约为在区块链上执行加密货币交易提供了一种新途径。尽管这种新技术引入了无冲突机制和透明机制,但智能合约本身是脆弱的。智能合约作为一种特殊的计算机程序,它仍然无法避免产生BUG。更糟糕的是,可利用的安全漏洞可能导致灾难性的后果。例如,损失加密货币。在这篇演示文章中,我们主要关注智能合约中最常见的安全漏洞类型——可重入漏洞。可重入漏洞曾经导致了著名的DAO攻击,致使被攻击者损失高达六千万美元。我们提出了一种基于Fuzzing来分析智能合约中可重入漏洞的工具,Reguard。具体来说,ReGuard通过迭代生成随机且不同的交易事务,对智能合约执行模糊测试。基于运行时追踪,ReGuard将动态识别可重入漏洞。在初步评估中,我们分析了现有的5个Ethereum合同,ReGuard自动标记了7个以前未报告的可重入漏洞。
技术介绍:
文中采用了自己编写的例子介绍了智能合约中可重入漏洞是什么,并且如何被利用:
![59518ea13c24188edc79d3c4d1bcf147.png](https://img-blog.csdnimg.cn/img_convert/59518ea13c24188edc79d3c4d1bcf147.png)
图1:可被DAO攻击的简单示例
示例代码是用solidity (Ethereum智能合约的一种编程语言)编写的,有两个受害者合约和