2023年6月27日, Chibi Finance 团队实施了一起退出骗局,导致投资者资金损失超过 100万美元 。该项目利用了中心化风险,将用户资金从Chibi拥有的合约中转出,并将其兑换为ETH,而后通过跨链桥转移到以太坊网络,最后存入Tornado Cash。
该起事件是CertiK于2023年内在Arbitrum网络上发现的第12起重大事件。这些事件导致共计价值1400万美元的资金损失,其中包括黑客攻击、骗局和漏洞利用。
事件总结
虽然Chibi Finance退出骗局发生在6月27日,但该骗局很可能已于数日前甚至更早时被精心策划。
6月15日,外部地址(0xa3F1)从Tornado Cash提取了10枚ETH。其中2枚ETH通过跨链桥转移到以太坊网络。4天后于6月19日,再次转移7.8枚ETH。其中大部分ETH被发送到地址(0x1f19)。但在6月23日,其中0.2枚ETH被发送到地址(0x80c1)用于支付添加Chibi池子所需的Gas费用以及创建合约(0xb612)的费用,而这些Chibi池子之后会被清空。
Chibi继续推动其项目的炒作,在6月26日,在其电报群中宣布其已被列入Coin Gecko。
图片:Chibi Finance Discord公告 | 来源Twitter
然而,在6月27日,每个Chibi池子中都调用了setGov()函数,并将gov地址设置为合约0xb612。在Chibi的合约中,gov地址相当于所有者地址。Chibi的函数受到onlyGov角色的保护,标识允许执行这些函数的钱包。
图片:setGov()交易 | 来源:Arbiscan
在控制池子之后,(0x80c1)地址移除了总计539枚ETH的流动性。另从(0x1f19)地址获得17.9枚ETH,总计达到556枚ETH。
图片:将被盗的资金兑换为WETH |来源:Arbiscan
这些资金随后通过两笔交易跨链到以太坊,其中400枚ETH通过Multichain跨链桥,156枚ETH通过Stargate跨链桥。总共有555枚ETH存入Tornado Cash,然后分别向两个不同的EOA发送了两笔0.5枚ETH的交易。其中一笔交易到了一个新的钱包(0x9297),截至成文时该钱包仍持有ETH。另外的0.5枚ETH被发送给之前向Euler漏洞利用者发送过链上消息的junion.eth以感谢他们的服务。
图片:链上消息 |来源:Etherscan
攻击流程
退出骗局是由Chibi Finance合约中的_gov()角色的中心化特权造成的。攻击始于6月23日,当EOA (0x80c1)从EOA (0xa3F1)收到0.2枚ETH,并创建了一个恶意合约。
图片:恶意合约创建 | 来源:Arbiscan
下一阶段是在Chibi Finance拥有的多个合约上调用addPool()函数。
图片:调用addPool() | 来源:Arbiscan
6月27日,Chibi Finance合约的部署者在多个Chibi合约上调用setGov(),将由EOA (0x80c1)创建的恶意合约分配给_gov角色。这个角色在Chibi Finance合约中具有特权,允许攻击者调用panic()函数,从合约中移走用户的资金。
图片:setGov()交易和示例交易 | 来源:Arbiscan
EOA 0x80c1在恶意合约中调用execute(),开始提取资金。该恶意合约遍历了每个在6月23日通过addPool()交易添加的Chibi Finance合约,并调用了panic()函数。该函数暂停合约并提取其中的资金。
被盗的资金随后转移到EOA 0x80c1。
图片:被盗的资金 | 来源:Arbiscan
这些资金随后被兑换为WETH,通过跨链桥转移到以太坊网络,并存入Tornado Cash。