PeckShield「派盾」安全人員追踪和分析發現,此次攻擊始於bEarn Fi 機槍池(Vault)代碼存在的「小問題」,以下是攻擊細節分析。
值得注意的是,此次攻擊的本金是從Cream Finance 的閃電貸借來的。
攻擊者從Cream Finance 閃電貸借出7,804,239.1 BUSD;
接著,攻擊者創建的合約將所借BUSD 存入BvaultsBank 後,這些BUSD 立即存至BvaultsStrategy 策略中,隨即轉存入Alpaca 借貸資金池,此時,攻擊者可獲得借貸資金池返還給的ibBUSD 合成資產作為用戶的抵押憑證(相當於存摺)。當退出時,用戶可以憑藉該憑證贖回抵押在藉貸資金池內的本金及其抵押期內所產生的利息。在這一步中,Alpaca Vault 鑄造了7,598,066.6 ibBUSD 返還至BvaultsStrategy;
合約利用所鑄造的7,598,066.6 ibBUSD 通過Alpaca FairLaunch 進行挖礦;
當攻擊者合約從BvaultsBank 提取7,804,239.1 BUSD 時,以BvaultsStrategy 提取邏輯為準,按照ibBUSD 的價格來換算,而iBUSD 的價格高於BUSD,則7,804,239.1 ibBUSD 相當於8,016,006.1 BUSD,憑空多出20 多萬BUSD。
值得注意的是,攻擊者合約只能從bVaults Bank 取出其中7,804,239.1 BUSD,並再次存入用於第二輪攻擊,加上上一輪未從BvaultsStrategy 取出的部分,此時,BvaultsStrategy 轉入Alpaca 借貸資金池的數額就變成了8,016,006.1 BUSD。
攻擊者重複操作,最終將7,806,580.4 BUSD 返還給閃電貸,造成近1,100 萬美元的損失。
bEarn Fi 在復盤此次攻擊事件時寫道:務必復核所有的產品代碼,由於近期DeFi 安全事件頻繁發生,未來的工作重心將從創新調整到增強安全上來。
事實上,每次DeFi 安全事件發生後,區塊鏈安全公司PeckShield 「派盾」都會警示協議開發者引以為戒,在協議上線前對代碼進行審計和研究,在攻擊事件發生後自查代碼,防患於未然,但說一千道一萬都不及遭到損失數百上千萬美元的教訓來得深刻。
安全是DeFi 生態愈發繁榮的前提,也是一切創新創造的根本,不要等到造成損失才審視安全的重要性。