作者| Belt Finance

編譯| 核子可樂、Joyce

“我們認為現在有一個有組織的黑客團隊盯上了BSC。”

Belt Finance 是一種基於幣安智能鏈(BSC)的去中心化借貸協議,5 月29 日,攻擊者通過智能合約開始對4Belt BLP 池發起閃電貸攻擊。

據悉,攻擊方創建了一份使用PancakeSwap 進行閃電貸的智能合約,並利用BeltBUSD 池及其底層策略協議先後對合約內容執行了8 次,藉此攫取了高達6234753 BUSD 的收益。 BeltBUSD 金庫用戶遭受21.36% 的資金損失,而4Belt 幣池用戶則遭受5.51% 資金損失。

攻擊過程

據Belt Finance 團隊介紹,攻擊者首先利用PancakeSwap 中的漏洞獲得了總值3.9 億BUSD 的閃電貸額度,這已經接近PancakeSwap 上全部BUSD 池所能提供的最大BUSD 金額。之後,攻擊方將其中約2 億BUSD 存入BeltBUSD 金庫(使用Venus 策略協議),並藉此極大提升了Venus 策略的整體佔比。

在攻擊活動發生之前,BeltBUSD 金庫的協議比例為:Venus 約佔6000 萬BUSD,Alpaca 佔6000 萬BUSD,Ellipsis 佔6000 萬BUSD,而ForTube 約佔2000 萬BUSD,總量約為2 億BUSD。但在吸納了攻擊者的存入之後,Venus 掌握了約2.6 億BUSD,也讓BeltBUSD 的總儲量快速提升至4 億左右。

攻擊者同時還將1.9 億BUSD 轉移至Ellipsis.fi 3pool,並將這1.9 億BUSD 兌換為約1.695 億USDT。此次兌換令Ellipsis 3pool LP 值在短時間內猛增。 3pool LP 的供應關係雖然沒有改變,但這2150 萬美元的差值仍然令3pool LP 快速增值約3%。這又將4Belt 池Ellipsis 策略的幣值佔比由6000 萬BUSD 增加至6180 萬BUSD,也讓整個BeltBUSD 金庫總值由4 億BUSD 增加至4.018 億BUSD(漲幅約0.5%)。

在此之後,攻擊者開始從BeltBUSD 金庫中提現離場,獲得了2 億BUSD 總額中約0.5% 的存入收益,即約100 萬BUSD(進場前2 億BUSD,離場時2.01 億BUSD)收益。接下來,攻擊方在Ellipsis 上將USDT 兌換回BUSD,令LP 重新回歸之前的正常值,而BeltBUSD 金庫則因此憑空損失掉了這100 萬BUSD。

之後,攻擊者通過智能合約多次重複執行這同一筆交易(由Tx gas 允許的上限而定),去掉閃電貸費用與Ellipsis 掉期費用外的即為最終實際獲利。接下來,攻擊者將BUSD 形式的利潤轉至自有地址並兌換為anyETH,再使用Nerve Bridge 將這筆anyETH 發往以太坊主網。整個攻擊流程從PancakeSwap 閃電貸開始,到向以太坊主見發送anyETH 結束,前後共重複了8 次。

解決方案

在使用StrategyEllipsis 的情況下,Belt Finance 團隊使用isPoolSafe() 限制發生價格缺口時的提現活動。現在,面向各項策略,團隊決定通過檢查Ellipsis 的掉期狀態解決這一隱患。當USDC、BUSD 與USDT 之間存在比例偏差時,會限制用戶的提現與存入操作。如此一來,攻擊者將無法順利操縱Ellipsis LP 價格。

在開發過程中,Belt Finance 團隊添加了以下函數,以防止Ellipsis Pool 值出現異常時被攻擊者所利用:

這裡的isPoolSafe 函數將通過衡量Ellipsis 3pool 的代幣比率(即包含的最大與最低代幣數量間的比值)來檢查其健康狀況。此函數能夠防止Belt 受到異常StableWap AMM 比率的影響。

isPoolSafe 函數將在_deposit() 與_withdraw() 函數執行之前與之後檢查池健康狀況,如果池比率發生偏差,則交易將被直接還原以防止語句的實際更新。如此,Belt Finance 團隊就能有效防止Ellipsis 策略受到閃電貸攻擊的影響。

通過使用Ellipsis 掉期,攻擊者即可瞬時操縱ellipsisSwap 合約中BUSD、USDC 與USDT 的比例,藉此操縱3pool LP 的價格。

在之前的設計中,Belt Finance 團隊並沒有考慮到負責計算Ellipsis 策略中wantTotalLocked() Ellipsis 3Pool 比率的epsToWant() (一項MultiToken 函數)被破壞並影響到其他策略存取交易的情況。這項函數只是與Read 相關的接口,Belt Finance 團隊表示沒有想到它會與閃電貸發生直接關聯。

結果,閃電貸導致Ellipsis 策略中的wantTotalLocked 值增加,MultiVault 則以高於實際資產量的值運行了提取操作。此次攻擊活動,在根本上利用的也正是這項漏洞。

黑客盯上BSC

Belt Finance 只是BSC 上被攻擊的項目之一。 5 月份,PancakeBunny 遭受攻擊,損失了300 萬美元;類似的項目Bogged Finance 也在閃電貸款攻擊中損失了幾乎相同的金額;Burgerswap 在一次閃電貸攻擊中損失720 萬美元。

“最近已經接連發生超過8 起針對BSC 鏈上項目的閃電貸攻擊,我們認為現在有一個有組織的黑客團隊盯上了BSC。”BSC 官方發文表示。 The Block 數據顯示,因為近期的黑客攻擊事件,BSC 已有部分鎖倉資金回流至以太坊,總鎖倉量回落至20 億美元。

因此,BSC 官方呼籲所有DApp 採取如下措施進行預防保護:

與審計公司合作進行另一次健康檢查。如果是分叉項目,請反複檢查相對原始版本進行的更改;採取必要的風險控制措施,實時主動監控異常情況,一旦出現異常及時暫停協議;制定應急計劃,以防真的出現最壞的情況;如果條件允許可設定漏洞賞金計劃;安全公司PeckShield 和CertiK 也為BSC 項目的任何安全諮詢服務提供綠色通道。

隨著DeFi 發展以及整個加密社區的發展,黑客攻擊事件一直層出不窮。區塊鍊網絡和鏈上項目需要更多的安全規範和相應審查機制來防止攻擊事件頻繁發生。

相關鏈接:

https://belt-fi.medium.com/

今日薦文

點擊下方圖片即可閱讀

多家礦池剝離國內相關業務;內蒙古擬出台八項措施打擊挖礦行為;老虎證券CEO:將適時提供數字貨幣相關交易| 週報