0x1 事件背景
Flurry 協(xié)議使用 rhoToken 自動(dòng)化了收益耕作過程,使用戶免去了在不同鏈上切換 DeFi 產(chǎn)品以通過存款產(chǎn)生收益的所有繁瑣任務(wù)。作為回報(bào),將獲得 rhotokens(rhoUSDC、rhoUSDT、rhoBUSD),可以將其作為交換媒介進(jìn)行持有、交易和消費(fèi), 同時(shí)自動(dòng)賺取利息。
零時(shí)科技區(qū)塊鏈安全情報(bào)平臺(tái)監(jiān)控到消息,北京時(shí)間 2022 年 2 月 23 日,F(xiàn)lurry Finance 稱遭到黑客攻擊,零時(shí)科技安全團(tuán)隊(duì)及時(shí)對(duì)此安全事件進(jìn)行分析。
0x2 攻擊者信息
零時(shí)科技安全團(tuán)隊(duì)通過初步追蹤分析,此次攻擊發(fā)生在 Binance Smart Chain 鏈,主要攻擊信息如下:
攻擊者錢包地址:
-0x2A1F4cB6746C259943f7A01a55d38CCBb4629B8E
-0x0F3C0c6277BA049B6c3f4F3e71d677b923298B35
攻擊者創(chuàng)建的相關(guān)合約地址:
• 0xB7A740d67C78bbb81741eA588Db99fBB1c22dFb7
攻擊交易流程:
-0x969002ea247f3f242ccfb64fecd3bd70b23e443e411e2a65c786e585aef8544c
-0xe737e1e9cd2ee2c535d1304883e958ed2f7b4b8d9c10c0aec12acbf888665789
-0x646890dd8569f6a5728e637e0a5704b9ce8b5251e0c486df3c8d52005bec52df
官方漏洞合約:
-StrategyLiquidate: 0x5085c49828B0B8e69bAe99d96a8e0FCf0A033369
-FlurryRebaseUpkeep: 0x10f2c0d32803c03fc5d792ad3c19e17cd72ad68b
-Vault:
0xeC7FA7A14887C9Cac12f9a16256C50C15DaDa5C4
0x3 攻擊分析
先來看看攻擊者獲利的一組交易操作:
步驟1: 在 PancakeSwap 上創(chuàng)建流動(dòng)資金池:
如上述日志所示:黑客創(chuàng)建了 Exploiter2-BUSD 令牌對(duì)。
步驟2: 攻擊者從 Rabbit Bank 合約閃貸并觸發(fā)了 StrategyLiquidate 的 execute 方法。execute 方法將輸入數(shù)據(jù)解碼為 LP 代幣地址,攻擊者能夠執(zhí)行惡意代幣合約中實(shí)現(xiàn)的代碼。
惡意代幣合約調(diào)用了 FlurryRebaseUpkeep.performUpkeep() 方法,重新設(shè)置了所有 vault 并更新了 rhoTokens 的乘數(shù)。(更新基于所有策略的余額)
更新是在閃貸過程中觸發(fā)的,從銀行合約借來的代幣還沒有歸還,余額低導(dǎo)致乘數(shù)低。
步驟3: 發(fā)幣到 EOA 地址,并將 EOA 切換到合約地址來操縱 rhoToken 數(shù)量:
至此,攻擊者利用此攻擊流程,通過對(duì)官方 StrategyLiquidate、FlurryRebaseUpkeep 和 Vault 合約進(jìn)行了 9 次攻擊共獲利約二十五萬美元。
0x4 總結(jié)
通過此次攻擊事件來看,攻擊成功最重要的因素是 Flurry Finance 官方的 StrategyLiquidate、FlurryRebaseUpkeep 和 Vault 合約中:沒有對(duì)利息的乘數(shù)做監(jiān)控,沒有為 rebase 做安全層的效驗(yàn),也沒有任何機(jī)制防止 EOA 地址轉(zhuǎn)換為合約地址。攻擊者可以通過提取流動(dòng)性,操縱計(jì)算利息的乘數(shù)鑄幣并發(fā)送到賬戶地址,并將賬戶地址轉(zhuǎn)換為合約地址使乘數(shù)失效對(duì)項(xiàng)目造成威脅。對(duì)于此類安全事件,零時(shí)科技安全團(tuán)隊(duì)給出下述安全建議。
0x5 安全建議
建立監(jiān)控系統(tǒng),監(jiān)控利息計(jì)算乘數(shù)上的任何異常活動(dòng)。
在敏感操作前,增加額外的安全層來增強(qiáng)函數(shù)調(diào)用的授權(quán)權(quán)限。
實(shí)施新機(jī)制,防止人為操縱將 EOA 地址轉(zhuǎn)換為合約地址。