风险提示:防范以"虚拟货币""区块链"名义进行非法集资的风险。——银保监会等五部门
资讯
发现
搜索
登录
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
一文复盘Flurry Finance被攻击事件
CertiK
特邀专栏作者
2022-02-23 13:00
本文约1937字,阅读全文需要约3分钟
CertiK 安全团队将从合约地址及攻击操作等方面为大家进行详细的解读并分析。

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

下文 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

恶意 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

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

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

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

攻击实例:

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

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

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

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

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

写在最后

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

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

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

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

DeFi
安全