学习
实践
活动
专区
工具
TVP
写文章

大量智能合约存在安全漏洞,是开发者粗心还是有意为之

|关注区块律动BlockBeats获得区块链内幕解密 微信号BlockBeats

4 月 25 日上午一个名为 SMT 的代币突然被爆出有黑客利用智能合约的 proxyOverFlow 漏洞生成了巨额 Token,导致该 Token 的价格暴跌。

区块链安全团队 PeckShield 也发现还有大量基于 ERC-20 的代币的智能合约代码中都存在该漏洞,很快火币、OKEx 等交易所全面暂停了基于以太坊的 ERC-20 智能合约 Token 的充币、提现操作。

北京时间 2018 年的 4 月 25 日下午 9 点 17 分 50 秒,PechShield 再次侦测到了 MESH Token的异常交易(见下图)。在这次不同寻常的交易中,黑客给他自己转移了天量的 MESH 代币,其数量是0x8fff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff,ffff( 63 个 f),其交易手续费为:0x7000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0001。

同样,在 SMT 代币上发生了如出一辙的异常交易。时间是北京时间的凌晨 3 点 16 分 19 秒。

PeckShield团队发现只能合约中的proxyTransfer() 函数存在着非常典型的整数溢出问题。

如上图,无论是 _feeSmt 还是 _value, 都是输入型参量,它们都是可以被攻击者所操控的。如果,这两个参量相加恰好变为 0(也就是溢出状态),那么在 206 行的合规性检查就完全被绕过去了。这也就意味着:攻击者可以将海量的代币,转移到这个地址(见 214 行),而无须花任何费用。同样,巨额的费用也会转移到 msg.sender(见 217 行)。

PeckShield团队对以太坊系统进行扫描检测后发现部分代币存在类似风险,不乏已经交易所上线的代币:

针对文中提到遭受黑客攻击的SMT,该团队已于昨天晚间发布处理办法:因为黑客已经在交易所进行交易,SmartMesh基金会将拿出对等数量的SMT进行销毁和冻结,使总量保持恒定不变。

国内某区块链项目方技术专家表示:但凡认真的审核一遍代码,就不会错过这个漏洞,要么是代码作者对该智能合约编写不了解,要么就是故意留下的漏洞。

「上线该 Token 的交易所也完全没有尽到审核的义务,这是对投资者的不负责。」

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

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券