2023年2月21日,CertiK发现了2023年迄今为止Arbitrum上最大的退出局。一个最近推出的名为HopeFinance的项目,号称在局中损失了180万美元。然而经过调查后发现,这场局竟与该项目团队自身的相关钱包有关。该钱包地址在策划了一个获取存款的后门后,抽走了GenesisRewardsPool奖池的大量资金,造成了该起局。
事件过程
HopeFinance于2月1日开始宣传他们的项目,并宣布预计在UTC时间2月20日下午两点启动。然而,启动没多久,一个外部地址很快就耗尽了该项目的GenesisRewardsPool奖金池。
波场官方版YFI项目SUN.Market即将正式开启:波场TRON创始人孙宇晨刚刚发表公开信,宣布波场官方版YFI项目SUN.Market即将正式开启,并将在9月2日开始创世挖矿,参与创世挖矿可以获得额外10%的SUN挖矿奖励。SUN.Market项目将于9月16日正式开启。孙宇晨在公开信中表示,太阳币SUN是波场的第一个迷因币meme coin,代表着社区自治的精神。这也是波场在加密文化与艺术的一次实验,波场尊重、欣赏充满幽默与自嘲的社区文化,这是一个加密货币能够崛起的重要能量来源。太阳币的定位是波场上的比特币,完全依靠社区与开源智能合约。[2020/9/1]
起初来看,HopeFinance项目似乎是被黑客发现漏洞并利用了。然而在检查该团队的一些钱包活动后,CertiK专家发现该项目是一个退出局。
Tether向波场网络增发1亿枚USDT(已授权未发行):金色财经报道,Whale Alert数据显示,北京时间5月7日23:49,Tether向波场网络增发1亿枚USDT,交易哈希为c57f6ac2b9fa5d682eb3274e167190c486195a8987e68c747ba814dee75569cd。对此,Bitfinex首席技术官Paolo Ardoino表示,波场网络补充了1亿USDT的库存。请注意,这是一笔已授权但未发行的交易,这意味着该金额将用作下一次发行请求的库存。[2020/5/8]
当然,并非所有与HopeFinance公司有关的团队成员都参与了该起退出局。事后,该项目的推特账户发布了一张他们声称“局负责人”的图片,同时还附上其身份证等信息。
波场网络于2020年3月17日(新加坡时间)发布了奥德赛V3.7版:据最新消息显示,波场网络于2020年3月17日(新加坡时间)发布了奥德赛V3.7版本,本次升级的主要内容:代码模块化,支持定制化开发,开发者可根据自己的业务场景快速搭建新的链。现已支持consensus,crto,chainbase,framypework,protocol,actuator等模块;新增对区块固化事件的订阅;新增HTTP接口“gettransactioninfobyblocknum” 和“broadcasthex”;新增RPC接口“GetTransactionInfoByBlockNum”。由于本次升级不是强制性的,各节点可自行决定是否升级。[2020/3/20]
被指控的人员是一名尼日利亚学生,大家很快找到其Linkedin账号,尽管没有发表过任何动态,但仍可确认该Linkedin账号属于该学生。
CertiK安全专家发现,一旦外部地址EOA0x...9113调用含有关键漏洞的OpenTrade函数,GenesisRewardsPool合约的资金就会被抽走。总价值186万美元的被盗资金在被桥接到了以太坊之后存入到了TornadoCash。
为了抽走GenesisRewardsPool资金池的资金,EOA0x...9113创建了一个假的路由器合约,并将这个地址更新为GenesisRewardsPool资金池内的SwapHelper。
虽然这会带来私钥泄露的嫌疑,但它也意味着,需要多签钱包四个所有者中的三个得到确认。即:任何外部黑客都必须在任何资金被盗之前破坏三个外部地址。虽然这不是完全不可能,但是概率很小。
当检查0x8EBd0所有者EOA时,我们可以看到EOA0x11a9b和0xe1c37没有交易历史。一个钱包是奖池创建者,另一个钱包最初由Binance资助。
链上分析
①该事件是从0x4481A创建了一个未经验证的假路由器合约开始。
②然后GenesisRewardPool被用来更新SwapHelper,将路由器地址改为第一步创建的假地址。这个setRouter更新需要多签钱包0x8ebd的四个所有者中三个所有者的批准。
对setRouter的更新进行多签批准
③0x4481A调用了假的路由器合约,并调用0x3c6455ac函数用以更新_swapExactTokenForTokens和_USDC两个参数,其中第一个参数被设置为0x957D,第二个留了空白。
④0x4481A两次调用OpenTrade,用于借入资金,一次用于Pool0(WETH),另一次用于Pool1(USDC)。两次OpenTrade调用,总共向0x957D转移了477枚WETH和1,061,759枚USDC。
对于Pool0,OpenTrade的调用触发了477枚WETH转移到HopeTradingHelper。此时,WETH会被正常的发送到swap地址并转换为USDC。
另外一边,在对0x1994函数反编译后,我们可以看到变量`v9`被赋值为`address(varg2)`,也就是交换`path`中的第一个token,即WETH。同时变量`v2`被赋值为预先设定的接收地址,即0x957D。而`v17`被赋值为`TradingHelper`地址,该地址存储了所有的WETH。
下图的一行代码,仍然是在_swapExactTokensForTokens函数中,将'v56'地址的477WETH从msg.sender的v17转移到了接收地址0x957D。
⑤两次OpenTrade调用,总共向0x957D转移了477枚WETH和1,061,759枚USDC。这些资金通过CelrBridge桥接到以太坊,并转换为总共1,095个ETH,然后被发送到TornadoCash。
警惕!内鬼交易!
如今,很多项目都是内部人员作案,甚至自导自演声称自己是受害者。CertiK过去曾发布文章报道过这一风险,我们有许多工具可供希望提高安全性和保护项目不受内部不良分子影响的Web3.0项目使用。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。