迄今,PeckShield的漏洞扫描系统已经发现了多个颇具威胁的智能合约漏洞(batchOverflow[1],proxyOverflow[2],transferFlaw[3],ownerAnyone[4],multiOverflow[5],burnOverflow[6])。这些漏洞均针对在交易所中可以公开交易的Token,而今天我们将要公布的这个命名为ceoAnyone的新漏洞,却是针对当前火爆的Dapp应用——区块链游戏。
自2017年底开始,特别是随着CryptoKitties的成功,区块链游戏逐渐变得火爆。在这些区块链游戏中,放置(IDLE)类游戏可以说是一类奇葩,在这种游戏中,玩家只需要挂机几个小时之后就可以通过交易获利(比如,在Ether Goo中卖掉一只Lab Rat)。基本上所有的放置类游戏的开发者都通过收取交易费用盈利。然而,如果游戏合约的所有者可以被任意篡改并被攻击者完全控制会是怎样呢?
一个悲剧正在上演,初步估算被攻击游戏的开发者已经因此损失了至少数千元,而攻击者基本上没有任何成本。
图1:一个受ceoAnyone影响的放置类游戏智能合约
图1展示的就是这个被人攻击的放置类游戏的智能合约,游戏名为Ether Cartel。与要求玩家孵化并且售卖虾子、之后提高产量再交易虾卵以换取以太币的的Ether Shrimp Farm(虾场)应用类似,Ether Cartel也是相同的思路,只不过场景换成了某种非法物品交易。这个游戏号称“基于高科技自动化市场机制使得玩家可以快速的在一个交易中完成买卖。你所拥有的量越多,你生产的物品越多(一比一的生产比率)。收集更多的物品就可以加倍生产速度”。
图2:一个放置类游戏——Ether Cartel
Ether Cartel在UTC时间2018年5月18日17点14分56秒部署到主网,不幸的是一小时十一分钟之后即被攻破。存在漏洞的代码在18到20行:可被人以调用方调用的DrugDealer()函数,允许调用者修改收益地址——ceoAddress。
图3:一个受ceoAnyone漏洞影响的放置游戏智能合约
如图3所示,ceoAddress在sellDrugs()和bugDrugs()被调用时会收取手续费。我们的分析显示,这个游戏有同一个作者部署的三个版本的智能合约。通过交叉检查这些合约,我们有理由相信存在漏洞的drugDealer()实际上是合约的构造函数,而作者不小心写错了名字(应该是与合约名称一致)。这种经典的问题在2016年就已经被发现并分析过(the Rubixi contract was pointed out to have a similar bug in [7])。
截止发稿,我们已经发现了有多个攻击者在利用这个漏洞进行游戏。甚至,还有一个攻击者在监控ceoAddress的变化情况,当发现值被其他人修改之后,他会立即改回自己的地址。在确认了此漏洞之后,我们立即尝试联系了游戏作者,同时我们内部的检测显示,其他一些类似的游戏也存在相同问题。我们目前正在积极与这些游戏的开发团队联系,并提供必要的技术支持。
PeckShield是面向全球的业内顶尖区块链安全公司,以提升区块链生态整体的安全性、隐私性及可用性为己任。商业与媒体合作(包括智能合约审计需求),请通过telegram、twitter或电子邮件与我们联系。
参考:
[1] PeckShield:New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10299), April 22, 2018
[2] PeckShield:New proxyOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10376), April 25, 2018
[3] PeckShield:Your Tokens Are Mine: A Suspicious Scam Token in A Top Exchange, April 28, 2018
[4] PeckShield:New ownerAnyone Bug Allows For Anyone to ‘‘Own’’ Certain ERC20-Based Smart Contracts (CVE-2018-10705), May 03, 2018
[5] PeckShield:New multiOverflow Bug Identified in Multiple ERC20 Smart Contracts (CVE-2018-10706), May 10, 2018
[6] PeckShield:New burnOverflow Bug Identified in Multiple ERC20 Smart Contracts (CVE-2018-11239), May 18, 2018
[7] Atzei N., Bartoletti M., Cimoli, T.:A Survey of Attacks on Ethereum Smart Contracts, Oct, 2016
领取专属 10元无门槛券
私享最新 技术干货