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

大家都还记得,前一段时间发生的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多项专利。

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

  1. 以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末

    以太坊再爆高危漏洞!黑客增发ATN 1100万枚token事件始末 编者按:5月11日,ATN Token遭受恶意攻击,攻击者利用DSAuth库与ERC223搭配使用具有的混合漏洞,窃取了ATN的所有 ...

  2. 【黑鸟安全预警与每日资源】S2-048!Struts2 再爆高危漏洞!

    [黑鸟安全预警]S2-048!Struts2 再爆高危漏洞!目前POC已公开,请各单位检查自己的应用是否有使用了Struts2 Struts1的插件!若使用了该插件会导致不受信任的输入传入到 Acti ...

  3. Struts 2再爆高危漏洞CVE-2017-5638 绿盟科技发布免费扫描工具及产品升级包

    Apache Structs2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638.cwiki.apache.org公告了这个信息. 绿盟科 ...

  4. Android 爆高危漏洞,华为小米皆中招;第三代苹果 AirPods 来了;SQLite 3.30.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  5. ImageMagick再爆严重漏洞,可导致雅虎邮箱用户邮件内容泄漏

    本文讲的是ImageMagick再爆严重漏洞,可导致雅虎邮箱用户邮件内容泄漏, 在安全研究员发现图片处理库ImageMagick存在严重漏洞.可导致服务器内存数据泄漏错误后,雅虎工程师决定把自家网站上 ...

  6. 弯道超车老司机戏耍智能合约——竞态条件漏洞 | 漏洞解析连载之三

    安全,区块链领域举足轻重的话题,为什么一行代码能瞬间蒸发几十亿市值?合约底层函数的使用不当会引起哪些漏洞?重入漏洞会导致什么风险? 「区块链大本营」携手「链安科技」团队重磅推出「合约安全漏洞解析连载」 ...

  7. 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

    ✍前言 你好,我是YourBatman. 今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞.查了一下,这件事并不算很新鲜了(已经过了10天的样子),本文来聊聊吧. 说起来还蛮戏剧化:阿里 ...

  8. Spring Cloud 爆高危漏洞!!!

    今日推荐 最适合晚上睡不着看的 8 个网站,建议收藏哦 23 种设计模式的通俗解释,虽然有点污,但是秒懂请立即卸载这款 IDEA 插件!SQL自动检查神器,再也不用担心SQL出错了,自动补全.回滚等功 ...

  9. 阿里fastjson_再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

    冤冤相报何时了,得饶人处且饶人.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的 专栏供以免费学习.关注公众号 ...

最新文章

  1. R绘制面积图(area plot)
  2. 大家都说 Java 反射效率低,为什么呢?
  3. 内核参数 linux dd,内核模块指定参数方式
  4. captura录屏发生了一个错误_录屏教程的方法有哪些?学会这两种轻松搞定
  5. vue音乐笔记_Vue音乐项目笔记(二)
  6. 静态编译和动态编译区别
  7. 美甲帮:数加平台打造大数据架构
  8. 理解一下策略模式,工厂模式
  9. java面试 谈谈jvm内存结构
  10. 金行健:你有没有思考过,特斯拉为什么先进?
  11. excel冻结窗口_怎么设置excel2007冻结窗口
  12. YDUI Touch +mescroll上拉加载测试
  13. 【C#】Winform常用属性和事件笔记大全(入门者参考)
  14. linux 恢复member1账户,Linux操作系统第9讲 帐户管理和权限管理.ppt
  15. 微信测试公众号推送信息给女朋友(node版本)
  16. 自动驾驶(十一)---------泰勒展开式、雅克比矩阵、主成分分析
  17. 中国古代经典励志名言100句,百读不厌,陪孩子一起读经典!
  18. Android studio音乐播放器
  19. 一个10年程序员给大家的忠告
  20. 《CLR via C#》读书笔记---07 常量和字段

热门文章

  1. gzip、bzip2和tar
  2. 在每天下午5点使用计算机时,网络信息安全知识网络竞赛试题(附答案)讲解学习...
  3. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档
  4. 中过滤记录中时间_水肥一体化中如何选择过滤器
  5. java 制作报表案例_javaweb项目报表案例
  6. 禄露禄露碌脛脥炉脛锚,学者批时下宫廷戏“就是一堆文化垃圾”
  7. yolov3 anchor 理解
  8. dailykt爬取tushare 数据存入本地mysql
  9. python与其他编程语言对比优点_Python编程不同于其他编程语言的优点
  10. 文巾解题 5. 最长回文子串