小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!

大家都还记得,前一段时间发生的BEC智能合约的安全漏洞问题。近日,智能合约安全问题再次上演,火币Pro发布公告,暂停EDU冲提币业务,随后EDU智能合约被爆出存在严重漏洞!

在智能合约漏洞频出的背景下,我们利用形式化验证工具对上百个智能合约进行深入分析,又发现一个存在严重安全漏洞的智能合约——RMC代币合约

这一漏洞造成的影响是,直接把曾经市值300多万美元的RMC和一度飙到0.08美元的UET(UselessEthereumToken),变得一文不值!

RMC漏洞发现细节

下图是RemiCoin (RMC)代币中的一段代码:

这段代码实现了ERC20 代币规范中的transferFrom函数,该函数的功能是用户(_from)向另外一个用户(_to)转账一定数量的代币,但是在该函数中却使用了错误的逻辑,在红色框中要求只有:

allowed[from][msg.sender]

的值小于value时,代码才能继续运行,而下面却进行了:

allowed[from][msg.sender] -= value的操作,

造成了溢出错误,让该函数具有严重的漏洞。

而攻击者就可以利用这个漏洞,不需要私钥即可无限制的将任意账户的RMC币转到指定的账户(_to)从而导致所有持有RMC币的账户都有可能被盗取,严重危害了用户的财产安全。

RMC代币自去年7月进入交易所以来,代币价格最高时达到近2美元,市值300多万美元。12月,有攻击者对该合约进行攻击,并被爆出漏洞,随后,代币价格一路暴跌,跌至4月份的不到0.02美元。

此时,由于该漏洞导致不需要用户的私钥即可对账户余额进行操作,这使得用户手中的RMC代币也变得毫无价值。

无独有偶,与此类似的是,据悉名为UselessEthereumToken的代币,号称世界上第一个100%诚实的以太坊ICO,也出现了严重的安全漏洞

上图红框中的逻辑是:

balances[_from] <= _value

且:allowed[_from][msg.sender] <= _value

且:balances[_to] + _value <= balances[_to]

才能进行转账操作,而接下来的运算导致:balances[_to]balances[_from]allowed[_from][msg.sender]均产生溢出。

攻击者无需任何私钥,只需调用该函数时,把传入的参数_value设置得足够大,即可操纵_from_to的账户余额

最终,这个漏洞使得UselessEthereumToken就像其名字一样,变得毫无价值

截至发稿前,仍有攻击者利用上述漏洞对两个智能合约进行攻击,下图为攻击者利用漏洞大量盗取RMC币

下图为攻击者利用漏洞大量盗取UET币:

不容忽视的安全问题

在这些漏洞的背后,往往是由于智能合约开发者的经验欠缺。而如何有效地防止此类漏洞的发生,成为了区块链智能合约开发中工作中的一个难题。安全是这场竞赛的核心赛道,对各方而言,都不容忽视。

那么这类安全事件该如何防范呢?各方又该如何避免漏洞的发生呢?

  1. 开发者应该提高自己的安全意识。现在发现的漏洞中,大多是因为直接使用普通的加减乘除符号,但却没有对可能溢出的情况作判断,这就造成了数据溢出的隐患,而解决方法也很简单,使用安全的运算库library SafeMath就可以彻底避免数据溢出的问题。
  2. 项目方也应建立自己统一的安全标准,并对照安全标准严格执行,进行逐一检查。在完成代币的智能合约编写后,请专业的智能合约审计公司,对合约代码用形式化验证的方法进行审计,并由审计公司给出详细的审计报告。 形式化验证方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证。将此方法应用于智能合约的验证,能以逻辑推演的方式来进行系统性的快速审查,高效地解决智能合约安全漏洞问题,避免了存在漏洞的合约发布后,所造成的严重经济损失。
  3. 交易平台应该做好对项目方的审核工作和自身安全防护。对交易平台中的项目,应要求其能提供智能合约安全凭证,避免有漏洞的代币对交易平台的信誉产生不良影响。

普通用户该如何选择代币

短短几个月以来,多个智能合约被曝出存在安全漏洞,除了众所周知的BEC、SMT、EDU、BAI之外,多个在交易平台交易的智能合约代币,依旧存在安全隐患。

对广大普通用户来讲,选择有公信力的交易所在一定程度上可以降低风险;但更为重要的是,在投资代币时要擦亮自己的眼睛,对不熟悉的代币在购买时也要更为谨慎,选择通过专业的代码审计平台审计过的代币合约才能有效地保障自己的数字资产的安全,不然就真的一夜回到解放前了

关于作者:

杨霞,链安科技CEO,电子科技大学副教授,博士后;区块链形式化验证权威专家,形式化验证理论和方法专家;曾为多家军口单位(神州飞船控制系统,导弹控制系统等)研制关键软件的形式化验证;CCF区块链专委会委员,CC国际安全标准成员。曾担任多家公司的创始人。发表30多篇,申请20多项专利。

原文发布于微信公众号 - 区块链大本营(blockchain_camp)

原文发表时间:2018-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

浏览网页变挖矿肉鸡

第315期 浏览网页变挖矿肉鸡 文 贾凯强 责任编辑 巫山 审核 张齐 策划 刘克丽 今年要特别注意,能够威胁到用户的网络攻击手段不再局限于原来的...

2797
来自专栏数据猿

【案例】中国银联、光大银行基于区块链的可信电子凭证系统

近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算、贸易金融、股权、票据、金融衍生品、信贷、反...

4976
来自专栏黑白安全

详解币安 API 钓鱼事件:黑客何以一夜撬走近亿美元?

7月4日凌晨五时许,币安交易所出现超大额提现,2小时内,超过7000枚比特币转入同一地址,何一对此表示,这只是一个看上去比较异常的正常转账,并非网传被盗。然而,...

882
来自专栏区块链入门

【区块链实践】STO技术标准(ST-20,SRC20,R-TOKEN,DS Protocol,ERC1400,ERC1410)

在STO通证的发行环节,与普通应用类通证的简单流程不同,证券类项目方需要特定的发币技术解决方案(协议级别)与法律合规的服务。由于证券类通证对投资者有要求,因此在...

4174
来自专栏企鹅号快讯

新的加密货币挖矿病毒感染脸书Messenger

暴走时评:网络安全研究员发现新型恶意软件通过脸书Messenger在全球传播。Digmine伪装成视频文件链接发送给受害者,其实是可执行脚本。利用谷歌Chrom...

1919
来自专栏企鹅号快讯

解密区块链:被遗忘权与区块链的冲突

你是不是每天都能接到各种推销电话,也许你已经见怪不怪了。 但你发现没有,他们知道你的很多信息,你的名字,你的家庭成员,你的大致收入,你有多少资产,只有这样他才能...

2618
来自专栏知晓程序

干货 | 手把手教你开通小程序里的微信支付

今天,知晓程序就来为你总结,小程序对接微信支付的全过程。希望这篇文章,可以帮你为小程序尽快接入支付功能、尽快上线。

1792
来自专栏企鹅号快讯

头条:1900万加利福尼亚州选民的记录被删除

18 Dec,2017 声明:本文由长城网际编译,转载请注明“转自长城网际”,并上微信号CECGW-weixin和二维码。 ※ 看!你比别人先知道这么多! Ⅰ ...

2225
来自专栏程序员宝库

区块链现史诗级漏洞,可完全控制虚拟货币交易;Node.js 10.3.0;这张毕业照,只有一个女生!但她说IT男暖起来女孩都嫉妒

5 月 29 日,据 360 安全卫士官方发布,360 Vulcan(伏尔甘)团队发现了区块链平台 EOS 的一系列高危安全漏洞。经验证,其中部分漏洞可以在 E...

1273
来自专栏腾讯云区块链

公有链是总账,联盟链是总线

最近接触了很多想使用区块链技术的企业,他们大多都对各种币有了一定的了解,但是并不知道还有这些联盟链技术。再向这些企业,尤其是传统企业的技术人员解释联盟链的应用模...

2074

扫码关注云+社区

领取腾讯云代金券