首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

暂停交易?ERC20合约整数溢出安全漏洞案例技术分析(一)

公众号回复“1”,拉你进区块链技术讨论微信群

作者:吴寿鹤

来源:区块链兄弟社区

著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文约1400字+,阅读(观看)需要10分钟

事件回顾

该漏洞带来的直接经济损失高达上亿元人民币,间接产生的负面影响目前无法估量。这到底是怎样一个漏洞呢?下面将详细分析该漏洞的产生和解决方案。

漏洞分析

SMT与前几天爆出的美图BEC代币都出现类似的安全漏洞—整数溢出,那么什么是整数溢出,整数溢出出现的原因是什么,怎样才能避免整数溢出呢?接下来我们带着这些问题来看下面的内容。

整数溢出

整数溢出分向上溢出和向下溢出,有关智能合约安全的其他关键点作者在《区块链开发实战——以太坊关键技术与案例分析》中有详细介绍,以下是截取本书中关于整数溢出的部分,通过下面文字的阅读大家就可以对:什么是整数溢出,整数溢出出现的原因是什么,怎样才能避免整数溢出呢?这三个问题有个答案了。

案例分析

SMT合约中的整数安全问题简析

SMT合约有问题的代码存在于transferProxy()函数,代码如下:

其中的问题分析如下:

修改后的代码如下:

攻击者发送的交易:

(黑客攻击交易日志截图)

BEC合约中的整数安全问题简析

BEC合约有问题的代码存在于batchTransfer()函数,代码如下:

其中问题代码分析如下:

攻击者发送的交易:

以下是攻击者恶意发送的转账交易:

https://etherscan.io/tx/0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f

合约整数漏洞事件总结

从上面的分析中,大家可以看出针对SMT和BEC的合约恶意攻击都是通过恶意的整数溢出来绕过条件检查。目前以太坊上运行着上千种合约,这上千种合约中可能也存在类似的安全隐患,所以作为合约的开发人员需要投入更多的精力来确保合约的安全性。

下篇我们将详细的介绍如何确保合约的安全,敬请期待。

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426G1EHMG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券