Belt Finance 是一種基于幣安智能鏈(BSC)的去中心化借貸協(xié)議,攻擊者通過智能合約開始對 4Belt BLP 池發(fā)起閃電貸攻擊。
據(jù)悉,攻擊方創(chuàng)建了一份使用 PancakeSwap 進(jìn)行閃電貸的智能合約,并利用 BeltBUSD 池及其底層策略協(xié)議先后對合約內(nèi)容執(zhí)行了 8 次,借此攫取了高達(dá) 6234753 BUSD 的收益。BeltBUSD 金庫用戶遭受 21.36% 的資金損失,而 4Belt 幣池用戶則遭受 5.51% 資金損失。
攻擊過程
據(jù) Belt Finance 團(tuán)隊介紹,攻擊者首先利用 PancakeSwap 中的漏洞獲得了總值 3.9 億 BUSD 的閃電貸額度,這已經(jīng)接近 PancakeSwap 上全部 BUSD 池所能提供的最大 BUSD 金額。之后,攻擊方將其中約 2 億 BUSD 存入 BeltBUSD 金庫(使用 Venus 策略協(xié)議),并借此極大提升了 Venus 策略的整體占比。
在攻擊活動發(fā)生之前,BeltBUSD 金庫的協(xié)議比例為:Venus 約占 6000 萬 BUSD,Alpaca 占 6000 萬 BUSD,Ellipsis 占 6000 萬 BUSD,而 ForTube 約占 2000 萬 BUSD,總量約為 2 億 BUSD。但在吸納了攻擊者的存入之后,Venus 掌握了約 2.6 億 BUSD,也讓 BeltBUSD 的總儲量快速提升至 4 億左右。
攻擊者同時還將 1.9 億 BUSD 轉(zhuǎn)移至 Ellipsis.fi 3pool,并將這 1.9 億 BUSD 兌換為約 1.695 億 USDT。此次兌換令 Ellipsis 3pool LP 值在短時間內(nèi)猛增。3pool LP 的供應(yīng)關(guān)系雖然沒有改變,但這 2150 萬美元的差值仍然令 3pool LP 快速增值約 3%。這又將 4Belt 池 Ellipsis 策略的幣值占比由 6000 萬 BUSD 增加至 6180 萬 BUSD,也讓整個 BeltBUSD 金庫總值由 4 億 BUSD 增加至 4.018 億 BUSD(漲幅約 0.5%)。
在此之后,攻擊者開始從 BeltBUSD 金庫中提現(xiàn)離場,獲得了 2 億 BUSD 總額中約 0.5% 的存入收益,即約 100 萬 BUSD(進(jìn)場前 2 億 BUSD,離場時 2.01 億 BUSD)收益。接下來,攻擊方在 Ellipsis 上將 USDT 兌換回 BUSD,令 LP 重新回歸之前的正常值,而 BeltBUSD 金庫則因此憑空損失掉了這 100 萬 BUSD。
之后,攻擊者通過智能合約多次重復(fù)執(zhí)行這同一筆交易(由 Tx gas 允許的上限而定),去掉閃電貸費用與 Ellipsis 掉期費用外的即為最終實際獲利。接下來,攻擊者將 BUSD 形式的利潤轉(zhuǎn)至自有地址并兌換為 anyETH,再使用 Nerve Bridge 將這筆 anyETH 發(fā)往以太坊主網(wǎng)。整個攻擊流程從 PancakeSwap 閃電貸開始,到向以太坊主見發(fā)送 anyETH 結(jié)束,前后共重復(fù)了 8 次。
解決方案
在使用 StrategyEllipsis 的情況下,Belt Finance 團(tuán)隊使用 isPoolSafe ( ) 限制發(fā)生價格缺口時的提現(xiàn)活動?,F(xiàn)在,面向各項策略,團(tuán)隊決定通過檢查 Ellipsis 的掉期狀態(tài)解決這一隱患。當(dāng) USDC、BUSD 與 USDT 之間存在比例偏差時,會限制用戶的提現(xiàn)與存入操作。如此一來,攻擊者將無法順利操縱 Ellipsis LP 價格。
在開發(fā)過程中,Belt Finance 團(tuán)隊添加了以下函數(shù),以防止 Ellipsis Pool 值出現(xiàn)異常時被攻擊者所利用:
這里的 isPoolSafe 函數(shù)將通過衡量 Ellipsis 3pool 的代幣比率(即包含的最大與最低代幣數(shù)量間的比值)來檢查其健康狀況。此函數(shù)能夠防止 Belt 受到異常 StableWap AMM 比率的影響。
isPoolSafe 函數(shù)將在 _deposit ( ) 與 _withdraw ( ) 函數(shù)執(zhí)行之前與之后檢查池健康狀況,如果池比率發(fā)生偏差,則交易將被直接還原以防止語句的實際更新。如此,Belt Finance 團(tuán)隊就能有效防止 Ellipsis 策略受到閃電貸攻擊的影響。
通過使用 Ellipsis 掉期,攻擊者即可瞬時操縱 ellipsisSwap 合約中 BUSD、USDC 與 USDT 的比例,借此操縱 3pool LP 的價格。
在之前的設(shè)計中,Belt Finance 團(tuán)隊并沒有考慮到負(fù)責(zé)計算 Ellipsis 策略中 wantTotalLocked ( ) Ellipsis 3Pool 比率的 epsToWant ( ) (一項 MultiToken 函數(shù))被破壞并影響到其他策略存取交易的情況。這項函數(shù)只是與 Read 相關(guān)的接口,Belt Finance 團(tuán)隊表示沒有想到它會與閃電貸發(fā)生直接關(guān)聯(lián)。
結(jié)果,閃電貸導(dǎo)致 Ellipsis 策略中的 wantTotalLocked 值增加,MultiVault 則以高于實際資產(chǎn)量的值運行了提取操作。此次攻擊活動,在根本上利用的也正是這項漏洞。
黑客盯上 BSC
Belt Finance 只是 BSC 上被攻擊的項目之一。5 月份,PancakeBunny 遭受攻擊,損失了 300 萬美元;類似的項目 Bogged Finance 也在閃電貸款攻擊中損失了幾乎相同的金額;Burgerswap 在一次閃電貸攻擊中損失 720 萬美元。
“ 最近已經(jīng)接連發(fā)生超過 8 起針對 BSC 鏈上項目的閃電貸攻擊,我們認(rèn)為現(xiàn)在有一個有組織的黑客團(tuán)隊盯上了 BSC?!盉SC 官方發(fā)文表示。The Block 數(shù)據(jù)顯示,因為近期的黑客攻擊事件,BSC 已有部分鎖倉資金回流至以太坊,總鎖倉量回落至 20 億美元。
因此,BSC 官方呼吁所有 DApp 采取如下措施進(jìn)行預(yù)防保護(hù):
與審計公司合作進(jìn)行另一次健康檢查。如果是分叉項目,請反復(fù)檢查相對原始版本進(jìn)行的更改;
采取必要的風(fēng)險控制措施,實時主動監(jiān)控異常情況,一旦出現(xiàn)異常及時暫停協(xié)議;
制定應(yīng)急計劃,以防真的出現(xiàn)最壞的情況;
如果條件允許可設(shè)定漏洞賞金計劃;
安全公司 PeckShield 和 CertiK 也為 BSC 項目的任何安全咨詢服務(wù)提供綠色通道。
隨著 DeFi 發(fā)展以及整個加密社區(qū)的發(fā)展,黑客攻擊事件一直層出不窮。區(qū)塊鏈網(wǎng)絡(luò)和鏈上項目需要更多的安全規(guī)范和相應(yīng)審查機(jī)制來防止攻擊事件頻繁發(fā)生。