AIR:资金盘FairWin漏洞系统详解:项目方可以撇开“作恶”嫌疑了?

近日,一个名为“FairWin”的资金盘项目尤为引人瞩目,受其影响,以太坊网络Gas消耗量持续处于高饱和的状态,其单个DApp的Gas利用率就达到了以太坊网络可承载Gas总量的近半数。

然而,因被曝存在智能合约安全漏洞,FairWin被推上风口浪尖,一时间引来大众对于类FairWin游戏命运乃至整体以太坊网络稳定性的担忧。

概述

北京时间2019年09月27日,PeckShield安全人员在深入分析FairWin智能合约时发现,FairWin智能合约存在一些因管理权限问题引发的致命缺陷,旧合约中的余额可被用户任意操作并转移,且在升级后的新合约又存在一个新问题,使得用户可以制造虚假投注来捞取奖池剩余资金。

FairWin合约问题的由来

江卓尔:DeFi流动性挖矿是典型的资金盘:金色财经报道,莱比特矿池创始人江卓尔刚刚发微博提出三个观点:“1.如果CEX(中心化交易所)没有全面被禁,DEX只能是CEX的补充,DEX去中心化带来两三个数量级的效率下降,是金融所不能容忍的;2.DeFi的流动性挖矿是一个典型的资金盘,根据我的建模,和多个迹象,多个反指表明,其已经进入了崩盘末期,最高点很可能已经过去,崩盘前最长寿命不超过20天;3.流动性挖矿的套娃机制,本质上是一种抵押锁仓机制,在上涨时能吹起多大虚市值,在下跌时会以相同的速度破掉。切记,财富不能无中生有,能量守恒是宇宙最重要的定律。”[2020/9/3]

经PeckShield旗下DApp数据服务平台DAppTotal.com最新监测数据显示,自08月26日以来,以太坊网络每日Gas消耗量持续处于高度饱和的状态,即每日Gas消耗量占以太坊网络可承载Gas总量的90%以上,整体网络状况异常拥堵。

遭Gas Price攻击以太坊用户疑似参与某个资金盘项目:此前曾报道,加密社区用户反映以太坊账户疑遭遇Gas Price攻击,损失115个ETH。该用户从交易所提现115.299个ETH到0x94E03C开头以太坊账户,到账后被莫名其妙迅速转出到另一个0xCE4f1开头账户。对方实际只收到6.46个以太坊,转账的Gas费用却高达108.83个以太坊,约36万人民币。

针对该事件,区块链安全公司PeckShield安全人员跟进分析发现,该用户提币到账的0x94E03C64开头的账户很可能已经被人操控,在收到用户提币后,操控程序随即实施了全额转账操作,这个过程中程序出错致使Gas Price设定异常,因此出现了异常的Gas Price转账行为。PeckShield在实际追踪大量资金盘项目时发现,用户提币转入的地址大部分是被操控的平台地址,平台在收到用户转账会第一时间启动程序进行资产转移和汇聚行为,因此不排除该用户可能参与了某个资金盘项目。[2020/9/2]

造成持续拥堵原因为,最近横空出世了一个名为FairWin的资金盘项目,其每日Gas消耗量占比达到了以太坊网络可承载总量的近半数

分析:以太坊天价手续费转账地址系资金盘项目Good Cycle热钱包:PeckShield发文称,上周以太坊链上连续发生3起天价手续费转账事件,引发业界广泛的讨论和猜测。其中,0xcdd6a2b开头的“神秘”地址两天时间内仅用两笔小额转账就挥霍掉3700万元,创造了以太坊链上史上最高手续费记录。PeckShield安全团队旗下可视化资产追踪平台CoinHolmes基于已有的超7000万+地址标签,迅速定位到0xcdd6a2b开头的地址所属为某一交易所热钱包,而且发生两次异常转账的原因很可能是其遭遇了一次黑客精心策划的GasPrice 勒索攻击。

截止目前,该受害交易所尚没有露出半点蛛丝马迹。PeckShield只好从0xcdd6a2b地址关联的0x12d8012和0xe87fda7开头的地址为突破口,进一步展开深入搜索和追查,发现0xcdd6a2b开头的地址所属为一家韩国名为Good Cycle的小型交易所。据分析,这是一家主打理财庞氏局的交易所。Good Cycle交易所网站基于HTTP协议,并未支持HTTPS加密协议访问,因此各种敏感信息皆以明文传输,很容易被黑客轻而易举实施钓鱼、中间人劫持等攻击。[2020/6/16]

PeckShield安全人员通过分析FairWin智能合约代码发现,在06月17日,FairWin部署了0x11f5开头的合约,分析其合约源码发现,存在以下的调用:

动态 | 统计:2019年3月资金盘跑路高峰,年末交易所扎堆清盘:互链脉搏对2019年“死亡”的70余个钱包类资金盘项目、交易所项目、币项目进行了统计。统计结果显示,3月份是钱包类资金盘的跑路高峰期,年末是交易所的“死亡季”。另外,7成运营不满一年,12月为跑路高峰期。[2020/1/14]

不难发现,sendFeeToAdmin()这一方法可以被任何用户调用,一旦调用之后,FairWin合约中的余额就会被转移至指定的admin地址之中。这一问题被ConsenSys的安全研究人员DanielLuca发现,随后项目方于07月27日部署了0x01ea开头的新版合约,对该问题进行了修复。

如下图,通过分析新版合约的代码发现,sendFeeToAdmin()方法已被设置为private:

独家 | 类F3D合约再次出现 已吸引资金盘3000ETH:第三方大数据评级机构RatingToken最新数据显示,2018年8月17日全球共新增1593个合约地址,其中216个为代币型智能合约。

RatingToken安全审计团队发现,类FOMO3D资金盘合约再次出现。但这个名为ArbitrageETHStaking的合约采取的是与FOMO3相反的规则,它只会将加入者投入ETH的2%分配进奖池,其余ETH可以随时取出,而投入奖池的2% ETH会按比例分给先进入游戏的用户。截至目前,此资金盘游戏已吸引到3000ETH。

此外,昨日新增合约风险榜TOP10包括BLACKPEARL(BLACKPEARL)、POOHMO(POOHMO)、WTAGameRun V0.5、Vote Game(VG)、imfomo Long Official(imfomo)、Crowdsale with Discounts&Bonus、myt(mytime)、Shine(SSS)和teac(teac)。[2018/8/19]

这样的话,上述方法就无法被外部直接调用,上述问题也得到解决,但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在此提醒广大用户应谨慎参与此类资金盘项目,避免因其潜在不稳定性造成不可挽回的损失。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:0ms0-0:526ms