一文复盘Flurry Finance被攻击事件

avatar
CertiK
3年前
本文约848字,阅读全文需要约2分钟
CertiK 安全团队将从合约地址及攻击操作等方面为大家进行详细的解读并分析。

北京时间 2022 年 2 月 22 日下午 1:46,CertiK 安全专家团队检测到与 Flurry Finance 相关的一系列可疑活动,Flurry Finance 的 Vault 合约受到攻击,价值约 29.3 万美元的资产被盗。

一文复盘Flurry Finance被攻击事件

下文 CertiK 安全团队将从合约地址及攻击操作等方面为大家进行详细的解读并分析。

攻击步骤

攻击者部署了一个恶意 Token 合约(也被用作攻击合约),并为 Token 和 BUSD 创建了一个 PancakeSwap 交易对。

攻击者:

https://bscscan.com/address/0x0f3c0c6277ba049b6c3f4f3e71d677b923298b35

恶意 Token 合约:

https://bscscan.com/address/0xb7a740d67c78bbb81741ea588db99fbb1c22dfb7

PancakeSwap 交易对:

https://bscscan.com/address/0xca9596e8936aa8e902ad7ac4bb1d76fbc95e88bb

攻击者从 Rabbit 的 Bank 合约中进行闪电贷,并触发了 StrategyLiquidate 的 execute 方法。

execute 方法将输入数据解码为 LP Token 地址,并进一步得到恶意 Token 合约地址。

攻击者利用恶意 Token 合约中的攻击代码发起初步攻击:

https://bscscan.com/address/0xbeeb9d4ca070d34c014230bafdfb2ad44a110142

StrategyLiquiddate 合约:

https://bscscan.com/address/0x5085c49828b0b8e69bae99d96a8e0fcf0a033369

一文复盘Flurry Finance被攻击事件

恶意 Token 合约调用 FlurryRebaseUpkeep 合约的 performUpkeep 方法,对 Vault 合约的相关金额进行重新统计,并更新了与之相关的 Rho Token 的 multiplier。

此处的 multiplier 将用于 Rho Token 的余额计算。对 Vault 合约的相关金额进行重新统计,并更新了与之相关的 Rho Token 的 multiplier。此处的 multiplier 将用于 Rho Token 的余额计算。该更新基于与 Vault 合约相关的盈利策略合约里的余额。

更新是在闪电贷的过程中触发的,此时的闪电贷还未结束,借出的金额也还未归还,因此 Bank 合约的当前余额远小于正常值。此 Bank 合约也是某个 strategy 的一部分,因而使得某 strategy 的余额小于正常值,进一步导致 multiplier 小于正常值。

FlurryRebaseUpkeep 合约:

https://bscscan.com/address/0x10f2c0d32803c03fc5d792ad3c19e17cd72ad68b

其中一个 Vault 的合约:

https://bscscan.com/address/0xec7fa7a14887c9cac12f9a16256c50c15dada5c4

一文复盘Flurry Finance被攻击事件

攻击者归还了闪电贷的款项并完成了初步攻击,且为进一步攻击获利做好了准备。

在紧接着的交易中,攻击者以前一次交易中得到的低 multiplier 存入 Token ,将 multiplier 更新为更高的(正常)值,并以高 multiplier 提取 Token 。例如,在其中一笔初步攻击的交易中,multiplier 被更新为 4.1598e35。

一文复盘Flurry Finance被攻击事件

在进一步攻击的交易中 multiplier 被更新为 4.2530e35。

一文复盘Flurry Finance被攻击事件

攻击实例:

https://bscscan.com/tx/0x923ea05dbe63217e5d680b90a4e72d5552ade9e4c3889694888a2c0c1174d830

https://bscscan.com/tx/0x646890dd8569f6a5728e637e0a5704b9ce8b5251e0c486df3c8d52005bec52df

因为 multiplier 乘数是决定 Rho Token 余额的因素之一:

一文复盘Flurry Finance被攻击事件

攻击者的 Rho Token 余额在交易中增加了,所以 ta 能够从 Vault 中提取更多的 Token 。 

攻击者多次重复这一过程,从 Vault 合同中盗走了价值 29.3 万美元的资产。

写在最后

该次事件主要是由外部依赖性引起的。

因此 CertiK 的安全专家建议:项目在与外部合约交互之前应对其安全性有清晰的认知,并且限制外部依赖可能对自身合约的影响。

本次事件的预警已于第一时间在 CertiK 官方推特进行了播报。

一文复盘Flurry Finance被攻击事件

除此之外,CertiK 官网已添加社群预警功能。在官网上,大家可以随时看到与漏洞、黑客袭击以及 Rug Pull 相关的各种社群预警信息。

原创文章,作者:CertiK。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选