Cocos-BCX白帽案例 | Dice回滚攻击

在加密货币领域,维护系统安全的工作需要“外包”,对此大家已经形成了一种默契。HackerOne 这个网站已经成为了黑客的聚集地,他们不再希望利用系统漏洞发起攻击,反而更愿意通过修复漏洞来获得奖励,而由 Cocos-BCX 开发者社区发起的 COCOS Bug Bounty 正是提供了这样的机会。

Cocos-BCX白帽案例 | Dice回滚攻击

COCOS Bug Bounty 是一个邀请全球开发者参与 Cocos-BCX 的公链安全计划。Cocos-BCX 会将链代码和工具产品代码有节奏、有计划地开源,接受全球开发者的检验。开发者发现 Bug 后通过邮箱提交,不仅可以根据贡献等级来获得丰厚的奖励,其所做贡献还会使得 Cocos-BCX 公链更加完善。在提升公链的安全性、可靠性的同时,也会使得周边工具的体验不断优化和改善。

2019年12月24日,Cocos-BCX 技术团队就收到了一名白帽子针对 Cocos-BCX 主网游戏 Dice Dapp 提交 contract.dicegame 合约的漏洞,幸运的是,该白帽黑客找到漏洞后主动归还了该游戏账户上被转移的近30万的 COCOS。

因该白帽黑客所提交 Bug 符合 COCOS Bug Bounty 二级 Bug 奖励要求:对用户财产、私钥、账号的安全问题,链系统敏感信息泄露等问题,最终获得了 B+ 级奖励,总额 100,000 COCOS。

Bug 漏洞详情显示,由于 dicegame 合约中下注和开奖逻辑放在一起,攻击者就可以利用这个漏洞进行攻击。具体的 dice 合约源码见:https://github.com/Cocos-BCX/smart-contract-practice/blob/master/code/dicegame.lua

基本的攻击手法如下:

· 攻击者通过脚本注册大量账号以获取 COCOS 原始积累;


· 攻击者部署一个回滚攻击合约。


· 在攻击合约中下注,下注结束后如果输了,就通过 assert 中断合约执行,如果赢了,就顺利走完所有的合约;


· 不断重复过程2,就能把原来的dice合约中所有的cocos都薅走。具体的攻击合约见 :


https://github.com/Cocos-BCX/smart-contract-practice/blob/master/code/rollbackattact.lua

目前,Cocos-BCX 技术安全团队已经联系到该游戏开发方通报漏洞并暂停相关合约进行维护,同时提供了两种防御方法:1、下注和开奖接口分开;2、排除掉下注为人为合约的情况。

实际上在 Cocos-BCX 链系统中已有做出对应设计,若是该游戏开发者对可信执行环境的设计有足够了解,在上面的攻击案例中,他可以采取 Cocos-BCX 智能合约中的函数多签特性,来回避非开发者应用的合约函数执行请求,这是对可信执行环境的一种延展实现。在更新的版本中,这个特性进一步升级为可以声明具体的某个函数要求多签。

Cocos-BCX 的发展离不开大家的支持和关注,感谢各位开发者给我们提出的宝贵建议。希望 Cocos-BCX 主网版本和将来的每一次更新都能给大家带来不一样的体验,感恩有你!

针对本次的漏洞发现,该发现者获得Cocos-BCX基金会提供的100K COCOS Token作为激励。

最后,欢迎开发者关注并参与 COCOS Bug Bounty,丰厚奖励等你来拿~具体奖励机制请查看:https://bounty.cocosbcx.io/static/Cocos_bug_bounty_details.pdf


关键词: 白帽  Cocos-BCX  回滚攻击  

该内容来自于互联网公开内容,非区块链原创内容,如若转载,请注明出处:https://htzkw.com/archives/28259

联系我们

aliyinhang@gmail.com