Chibi Finance 100万美元被指控的拉盘:事情是怎么发生的
6月26日,去中心化金融(DeFi)聚合器Chibi Finance被其部署者账户利用,价值100万美元的加密货币被从其合约中取走,这显然是一次拉盘或退出骗局。该协议的官方用户界面消失了,出现404错误,所有该应用的社交媒体也被关闭。资金被取走后,它们被兑换为Wrapped Ether(WETH),并通过桥接转移到了以太坊,在那里被攻击者发送到了Tornado Cash。
随着这一消息的传出,Chibi Finance(CHIBI)治理代币的价格下跌了超过90%。
但在DeFi中,“拉盘”是不可能的。毕竟,这些应用按定义不在集中式基础设施上运行。因此,应用的创建者不应该能够带着每个人的加密货币或现金跑掉。
- 今年股市的反弹超出了传统预期
- Poly Network攻击者在最新的加密货币黑客攻击中发布了价值“毫无价值”的SHIB、BNB、BUSD
- Polygon提出了“Polygon 2.0”的架构,包括聚合桥梁
因此,分析一下这次所谓的骗局是如何实施的可能会很有用。
CertiK在调查事件后发布了一份详细报告。结合区块链数据,这份报告可以揭示攻击是如何发生的,以及用户可以采取什么措施来保护自己免受类似的攻击或骗局。
Chibi Finance应用
在其用户界面下线之前,Chibi自称为“Arbitrum上最受欢迎的收益聚合器”。它声称允许用户从整个Arbitrum生态系统中获得收益。
根据CertiK的说法,这个DeFi聚合器的总锁定价值(TVL)自4月启动以来一直在增长。6月21日,Chibi宣布其TVL达到50万美元。当时,团队表示目标是达到100万美元。
6月26日,该应用首次在CoinGecko上市,获得了更广泛的曝光。似乎在这一事件之后不久,它就达到了100万美元的目标,紧接着代币被从其合约中取走。结果,投资者在这次攻击或骗局中损失了价值超过100万美元的加密货币。
Chibi Finance合约
这次攻击利用了Chibi Finance协议中使用的八个不同合约中的漏洞。这些合约是从其他项目中分叉出来的,不仅仅是Chibi独有的。例如,其中一个是位于Arbitrum地址0x45E8a9BA6Fcd612a30ae186F3Cc93d78Be3E7d8d的StrategyAave.sol,该合约也已部署到Abitrum、以太坊、BNB智能链等网络的多个地址上。
另一个例子是位于0x9458Ea03af408cED1d919C8866a97FB35D06Aae0的StrategySushiSwap.sol合约。这个合约在Arbitrum和其他网络上也有几个版本。
这些合约似乎在DeFi聚合器应用中常见,不仅仅是Chibi Finance。
相关:DeFi聚合:为大规模采用铺平道路
紧急函数
区块链数据显示,Chibi Finance使用的一些合约中包含一个“panic”函数,可以用于从池中提取所有代币并发送到特定地址。这个函数对于攻击者的方法至关重要。以下是使用StrategySushiSwap.sol作为示例的解释:
StrategySushiSwap.sol的340-343行声明,如果调用了panic()函数,它将在ISushiStake合约上调用一个名为“emergencyWithdraw”的第二个函数。
ISushiStake合约本身只是一个接口。它不包含可执行代码。它指向的是位于0xF4d73326C13a4Fc5FD7A064217e12780e9Bd62c3的SushiSwap: MiniChefV2合约。
MiniChefV2地址被列为去中心化交易所SushiSwap的官方合约。因此,“panic”函数调用SushiSwap内的“emergencyWithdraw”函数。
在SushiSwap地址上,可以在626-643行看到emergencyWithdraw函数。
该函数允许资金的所有者在不获取奖励的情况下提取。这在紧急情况下可能很有用。例如,如果奖励合约中存在错误导致用户无法收到奖励,用户可能希望调用此函数。
emergencyWithdraw函数有一个防止未授权人员使用的保护措施。在第360行声明:“UserInfo storage user = userInfo[pid][msg.sender]”,意味着“user”被定义为消息的发送者。在正常情况下,这应该允许用户紧急提取自己的资金,但不能提取属于其他人的资金。
SushiSwap的这个函数似乎没有任何恶意。然而,如果用户不直接从自己的钱包调用此函数,问题可能会出现。
例如,当用户使用Chibi Finance存入资金时,他们的加密货币是通过StrategySushiSwap合约而不是直接通过最终用户发送到SushiSwap的。这意味着当尝试紧急提取资金时,Chibi Finance应用被识别为“用户”。这反过来使得Chibi能够代表用户提取用户的资金。
相关文章:如何识别DeFi中的抛盘陷阱:DigitalC提供的6个提示
然而,只要“panic”函数只能由最终用户调用,资金应该仍然安全。
不幸的是,“panic”函数没有这个要求。相反,它只是在Chibi Finance合约中被列为“onlyGov”函数,这意味着只有管理员可以调用它,其他人无法调用。攻击者利用了这个漏洞进行攻击。
Chibi Finance攻击的进行方式
根据CertiK的报告,以太坊用户名Shadowout.eth于6月15日从Tornado Cash提取了10个以太币(ETH)。这些资金被桥接到Arbitrum,从这个用户发送了0.2 ETH到地址0x80c1ca8f002744a3b22ac5ba6ffc4dc0deda58e3。然后,这个第二个账户在6月23日在地址0xb61222189b240be3da072898eda7db58b00fd6ee上创建了一个恶意合约。
攻击者在6月23日调用了这个恶意合约上的“add pool”函数八次。由于该合约未经验证,这个“add pool”函数的代码未知。然而,CertiK推测每个事务可能将一个Chibi Finance合约添加到恶意合约的数据列表中,总共有八个合约。
在6月27日,Chibi Finance的部署账户将八个Chibi Finance合约的管理员权限转移给了恶意合约。它通过八个单独的事务进行了这个操作,每个事务都在特定合约上调用了“setGov”函数。
恶意合约获得这些治理权限后,其创建者调用了它的“execution”函数。这导致它在这八个合约上调用了“panic”,进而在DeFi应用(如SushiSwap、Aave和Global Hectare)的相关池中调用了“emergencyWithdraw”。
结果是,通过Chibi Finance向这些池存入的所有资金都被攻击者掏空,导致投资者损失超过100万美元。
如何避免类似Chibi的抛盘陷阱?
鉴于该攻击依赖于一个允许管理员提取所有用户资金的“panic”函数,避免类似Chibi的抛盘陷阱的一种方法是不使用具有该功能的应用。
另一方面,如果一个聚合器没有“panic”功能,那么如果在聚合器应用程序中发现了错误或漏洞,用户的资金可能会被卡住。如果用户决定使用聚合器应用程序而不是直接与基础池进行交互,他们可能需要考虑这些权衡。
相关: 报告显示,Q2 DeFi黑客和欺诈活动损失超过2.04亿美元
DeFi用户还需要考虑到智能合约代码可能非常复杂,大多数用户可能无法自行确定应用程序是否存在安全漏洞。正如CertiK在其报告中所称:
“ Chibi Finance事件展示了Web3空间中与中心化相关的风险。[…]对于普通投资者来说,仅仅通过自己的研究来发现和理解类似Chibi Finance这样的项目中的中心化风险是不现实的期望。”
因此,CertiK建议用户在使用应用程序之前检查其发布的审计报告。
Chibi Finance声称已经由区块链安全公司SolidProof进行了审计。由于该项目的GitHub已被删除,并且从未被互联网档案保存,因此无法获取所谓的审计内容。DigitalC无法确定“panic”功能可能带来的风险是否在审计报告中披露,甚至是否进行了审计。
DigitalC已经联系SolidProof以进行评论,但截至发布时尚未收到回复。
在DeFi领域,拉盖或退出欺诈已成为一个常见问题。6月1日,区块链安全公司Beosin报告称,五月份的拉盖欺诈造成超过4500万美元的损失,超过了常规的DeFi攻击。四月份,据称Ordinals Finance协议通过“safuToken”转账功能被拉盖了100万美元。
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles