近日,一个名为“FairWin”的资金盘项目尤为引人瞩目,受其影响,以太坊网络Gas消耗量持续处于高饱和的状态,其单个DApp的Gas利用率就达到了以太坊网络可承载Gas总量的近半数。
然而,因被曝存在智能合约安全漏洞,?FairWin被推上风口浪尖,一时间引来大众对于类FairWin游戏命运乃至整体以太坊网络稳定性的担忧。
概述
北京时间2019年09月27日,PeckShield安全人员在深入分析FairWin智能合约时发现,FairWin智能合约存在一些因管理权限问题引发的致命缺陷,旧合约中的余额可被用户任意操作并转移,且在升级后的新合约又存在一个新问题,使得用户可以制造虚假投注来捞取奖池剩余资金。
FairWin?合约问题的由来
经PeckShield旗下DApp数据服务平台DAppTotal.com最新监测数据显示,自08月26日以来,以太坊网络每日Gas消耗量持续处于高度饱和的状态,即每日Gas消耗量占以太坊网络可承载Gas总量的90%以上,整体网络状况异常拥堵。
刘扬律师:参与资金盘、非法集资,损失自行承担:近日,国务院通过了《防范和处置非法集资条例》(以下简称“《条例》”)。北京德恒律师事务所顾问刘扬律师表示,《条例》是国务院发布的,属行政法规,94公告是七部门发布的,属部门规章,因此在法的位阶上,《条例》比94公告位阶更高,一般情况下,民法意义上的“违反法律规定”通常仅包括法律和行政法规,并不包括部门规章,因此《条例》的出台将对币圈民事诉讼产生重大影响。
其中第二十五条规定:任何单位和个人不得从非法集资中获取经济利益;因参与非法集资受到的损失,由集资参与人自行承担。刘扬律师解释说,如果参与资金盘、非法集资,有了损失需要自行承担。(互联网刑事犯罪研究)[2021/2/12 19:36:29]
造成持续拥堵原因为,最近横空出世了一个名为FairWin的资金盘项目,其每日Gas消耗量占比达到了以太坊网络可承载总量的近半数
刘峰:从源头治理防范币圈资金盘乱象 要考虑多个维度进行:6月9日报道,上海对外经贸大学人工智能变革与管理学院区块链技术研究与应用研究中心主任刘峰表示,要从源头治理防范币圈资金盘乱象,主要还是要考虑人、财、事三个维度来进行。从人的角度而言,需要对区块链市场参与者进行足够的风险警示,帮助参与者最大限度进行风险识别和投资决策;从财的角度来看,对于相关非法项目投融资活动,需要监管层进行必要监管、定期报告,实行监管常态化;另从事的角度来看,项目的募资和运营模式需要能够被识别,一旦分析到有资金盘或盘模式的,相关监管部门可根据实际情况,第一时间相应处置。(北京商报)[2020/6/9]
PeckShield安全人员通过分析FairWin智能合约代码发现,在06月17日,FairWin?部署了0x11f5开头的合约,分析其合约源码发现,存在以下的调用:
“EOS生态”资金盘项目已打着EOS节点旗号敛财1700万:近日,一个名为“EOS生态”的项目推广以App的方式出现在一些炒币群里。调查发现,该App打着EOS节点的旗号,鼓吹静态、动态收益模式,拉人头入金加速回本的玩法,充满了资金盘的色彩,这种低级敛财术,仍吸引了一批圈外人加入。推广群中,不少中老年人往EOS生态App里充了币。他们多由朋友介绍而来,有的想一把,有的则坚定认为“不是”,哪怕不会操作也要找人帮忙投钱。按项目推广者的说法,EOS生态的收益来源是给超级节点投票来获取分红,“充币地址即超级节点”,而从EOS区块链浏览器查看,充币地址w.io既不是超级节点也不是备用节点。且从地址上的币量看,这个问题项目已在一年半内吸金超1700万元。(蜂巢财经)[2020/4/2]
动态 | 趣步APP打着区块链噱头实则为 系资金盘:一位区块链从业人士爆料:“趣步软件并无实体业务,实质就是资金盘。它设计了多重分级奖励机制,看似走步免费赚钱,但很多人是为了升级奖励去买糖果,而趣步通过买卖交易手续费分红给贡献值高的用户,都是靠微商用他们的那套模式去推广,才有了很快的发展,其实泡沫很大的。”据悉,趣步此前打着区块链的噱头吸引了大量用户,3月初,趣步关闭了其交易中心,这导致许多积攒大量糖果在手的用户失去了卖单渠道。5月25日,趣步在APP Store中再次下线,安卓应用市场也无法正常搜索。[2019/5/27]
不难发现,sendFeeToAdmin()这一方法可以被任何用户调用,一旦调用之后,FairWin?合约中的余额就会被转移至指定的admin地址之中。这一问题被ConsenSys的安全研究人员DanielLuca发现,随后项目方于07月27日部署了0x01ea开头的新版合约,对该问题进行了修复。
赵长鹏:币安不会搞资金盘的,但得让这种交易模式快速结束:赵长鹏发布微博称:币安不会搞资金盘的,但得把资金盘的水搅浑,让这种交易模式快速结束。不然太多用户受伤,对行业发展不好。[2018/6/21]
如下图,通过分析新版合约的代码发现,sendFeeToAdmin()方法已被设置为private:
这样的话,上述方法就无法被外部直接调用,上述问题也得到解决,但PeckShield安全人员深入分析发现,问题并没有那么简单:由于区块链的不可篡改特性,DApp从旧合约升级到新合约,但用户之前的投注记录依然保存于旧合约,项目方需要想办法将用户的投注记录迁移至新合约。
为了解决这个问题,FairWin团队引入了remedy()接口,用以将用户的资产直接导入到新合约之中:
新合约漏洞原理分析
通过分析remedy()接口,其实现数字资产迁移的大体流程如下:
确保remedy()这一操作当前处于开放状态;
根据参数还原用户的投注数据,并保存到新合约的数据库之中。
PeckShield安全人员通过分析Ethereum链上数据发现,remedy()?在新合约上线之后一共被调用了503次,一共给500位投资者完成了资产迁移,并且这一调用方法均由?FairWin管理员发起。
不过,这一方法能否调用成功,取决于其中的actStu参数是否为0,PeckShield安全人员分析FairWin新合约代码发现了新的问题:
actStu默认为0,也就是remedy()方法可以调用;
closeAct()方法将actStu设为1,也就是关闭remedy()通道。
问题的关键就在于此:
closeAct()方法添加了onlyOwner限制,而remedy()却没有加这一限制。
由于上述限制条件存在的不一致性,倘若合约Owner没有通过closeAct()?关闭actStu时,任何用户都可以通过remedy()?接口修改投注数据,进而实现在0投入的情况下,伪造大量资金投入,并通过userWithDraw()?将合约余额奖金取出。
值得庆幸的是,截至目前,尚没有已知攻击发生,且FairWin合约owner已经将actStu关闭,潜在威胁暂时得以排除。
漏洞后续影响
FairWin短期内依然保持较大的热度,基于其也产生了诸如EtherHonor、HyperFair等仿盘,不排除这类仿盘也存在潜在问题的可能。
此外,在FairWin合约被曝存在安全问题后,有舆论声音质疑称,这可能是“项目方事先预留的后门并从中空手套白狼”,但,PeckShield安全人员通过追踪新旧合约的交互行为发现,项目方除了将旧合约已投注资金问题向新合约迁移之外,对于用户投注错误的资金也给予了原路返还:
如下,在08月01日出现了一次调用:
0xa584开头的账号在区块高度为8263419中向FairWin旧合约投注了11ETH,
投注的金额被0xcb10在区块高度8264604转移到FairWin0x854d管理员账号之中,
之后在区块高度为?8264613?的时候,管理员账号又将这11ETH转回给0xa584账号。
从链上行为初步看来,项目方是可以撇开“作恶”的嫌疑了。针对以上漏洞威胁,PeckShield安全人员建议,对于智能合约的敏感操作,应当添加相应的访问权限限制,对于上述的remedy()操作需要添加onlyOwner限制,以避免被其它人恶意使用。另外,对于用户的数字资产,应当保持充分的敬畏之心。对开发者而言,与此同时也暴露出一个问题,在合约升级过程中很可能冒出各种“新”的问题,项目方应第一时间针对问题进行应急响应,并可寻求第三方安全公司帮助其进行上线前潜在漏洞排查。
对用户而言,即使这样也并不意味着参与FairWin之后就可以“高枕无忧”了。毕竟,资金盘终归是资金盘,当你在凝视深渊的时候,深渊也正在凝视着你。
(FairWin合约地址余额变动情况,来源:etherscan.io)
PeckShield安全人员通过分析ETH的地址余额曲线发现,在被曝出现漏洞威胁后,FairWin合约的余额有了明显的下滑,可见漏洞问题给项目方带来了一定的信任危机,大量的用户开始撤出资金。考虑到资金盘的机制,短期余额持续下滑的状况可能会埋下一个“暴雷”的种子,PeckShield在此提醒广大用户应谨慎参与此类资金盘项目,避免因其潜在不稳定性造成不可挽回的损失。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。