時(shí)間:2021-12-24|瀏覽:526
9月12日,知道創(chuàng)宇區(qū)塊鏈安全實(shí)驗(yàn)室 監(jiān)測(cè)到 Avalanche 上的 DeFi 協(xié)議 Zabu Finance 項(xiàng)目遭受閃電貸攻擊。實(shí)驗(yàn)室第一時(shí)間跟蹤本次事件并分析。
涉及對(duì)象
攻擊合約
攻擊合約1:
0x0e65Fb2c02C72E9a2e32Cc42837df7E46219F400
攻擊合約2:
0x5c9AD7b877F06e751Ee006A3F27546757BBE53Dd
漏洞合約
ZABUFarm:
0xf61b4f980a1f34b55bbf3b2ef28213efcc6248c4
SPORE:
0x6e7f5c0b9f4432716bdd0a77a3601291b9d9e985
漏洞成因分析
漏洞產(chǎn)生原因在于 Defi 協(xié)議與代幣協(xié)議之間的不兼容,其不兼容主要是 zabuFarm 合約質(zhì)押功能與 spore 合約轉(zhuǎn)賬功能出現(xiàn)沖突,下面從雙方功能實(shí)現(xiàn)邏輯來(lái)分析沖突。
zabuFarm合約質(zhì)押功能
zabuFarm 合約質(zhì)押功能由函數(shù) deposit 實(shí)現(xiàn)
簡(jiǎn)述 deposit 函數(shù)實(shí)現(xiàn)邏輯:
1.由傳參_pid 獲取對(duì)應(yīng)礦池信息與用戶信息
2.更新_pid 對(duì)應(yīng)礦池信息,當(dāng)用戶賬戶不為 0 向用戶發(fā)送質(zhì)押已產(chǎn)生獎(jiǎng)勵(lì)
3.將傳參_amount 數(shù)量的代幣從函數(shù)調(diào)用者轉(zhuǎn)移到該合約
4.更新用戶添加的代幣以及最新獎(jiǎng)勵(lì)狀態(tài)
5.觸發(fā)質(zhì)押事件
spore合約轉(zhuǎn)賬功能
spore 合約轉(zhuǎn)賬功能由函數(shù)_transferStandard 實(shí)現(xiàn)(ps:_transferStandard 函數(shù)是 zabuFarm 合約質(zhì)押功能轉(zhuǎn)賬時(shí)調(diào)用的函數(shù))
簡(jiǎn)述_transferStandard 函數(shù)實(shí)現(xiàn)邏輯:
1.由傳參 tAmount 通過(guò)_getValues 函數(shù)獲取五個(gè)值,分別是 rAmount 實(shí)際轉(zhuǎn)賬數(shù)量, rTransferAmount 收費(fèi)后轉(zhuǎn)賬數(shù)量, rFee 實(shí)際費(fèi)用,tTransferAmount 初始轉(zhuǎn)賬數(shù)量,tFee 初始費(fèi)用
2.對(duì)相應(yīng)賬戶進(jìn)行實(shí)際轉(zhuǎn)賬代幣數(shù)量更新
3.通過(guò)_reflectFee 函數(shù)進(jìn)行費(fèi)用記錄更新
由此我們可以發(fā)現(xiàn) zabuFarm 合約質(zhì)押功能與 spore 合約轉(zhuǎn)賬功能出現(xiàn)沖突的本質(zhì)在于 deposit 函數(shù)僅是對(duì)用戶傳入轉(zhuǎn)賬金額_amount 做用戶賬戶更新記錄,而不是對(duì)_transferStandard 函數(shù)在收取費(fèi)用后實(shí)際轉(zhuǎn)賬做用戶賬戶更新記錄,導(dǎo)致實(shí)際收款小于賬戶記錄,俗稱虧本買賣。
簡(jiǎn)述攻擊過(guò)程
1.利用攻擊合約1 0x0e65,將 WAVAX 代幣通過(guò) Pangolin 置換成 SPORE 代幣,并質(zhì)押到 ZABUFarm 合約中;
2.通過(guò)攻擊合約2 0x5c9A 從 Pangolin 閃電貸借出 SPORE 代幣,并利用 SPORE 代幣不斷在 ZABUFarm 合約進(jìn)行質(zhì)押-提現(xiàn)的操作,消耗原本屬于ZABUFarm 合約的SPORE 代幣,由于 ZABUFarm 合約是通過(guò) SPORE 代幣總量計(jì)算獎(jiǎng)勵(lì),攻擊合約1 0x0e65 會(huì)獲得巨額 ZABU 代幣獎(jiǎng)勵(lì);
3.最后取出質(zhì)押 SPORE 代幣,歸還閃電貸,拋售 ZABU 代幣獲利。
總結(jié)
此次攻擊屬于 defi 協(xié)議與代幣協(xié)議之間不兼容導(dǎo)致的,迄今為止此類攻擊事件已發(fā)生數(shù)次,知道創(chuàng)宇區(qū)塊鏈安全實(shí)驗(yàn)室再次提醒,近期各鏈上頻頻爆發(fā)攻擊事件,合約安全愈發(fā)需要得到迫切重視,合約審計(jì)、風(fēng)控措施、應(yīng)急計(jì)劃等都有必要切實(shí)落實(shí)。