一、事件概覽
美國東部標準時間5月12日上午9:44分,鏈必安-區塊鏈安全態勢感知平臺監測顯示,DeFi質押和流動性策略平臺xToken遭到攻擊,xBNTaBancor池以及xSNXaBalancer池立即被耗盡。據統計,此次xToken被黑事件造成約2500萬美元的損失。
盡管在事件后,xToken團隊第一時間發布聲明,并針對被黑原因以及后續補救措施,作出積極回應;但成都鏈安·安全團隊認為此次xToken被黑事件具備相當程度的典型性,涉及到閃電貸攻擊、價格操控等黑客常用攻擊套路,因此立即介入分析,將xToken被黑事件的攻擊流程進行梳理,希望以此為鑒,為廣大DeFi項目方敲響警鐘。
Sturdy Finance遭受約442 ETH的閃電貸漏洞:金色財經消息,據CertiK監測,Sturdy Finance遭受約442 ETH(約80萬美元)的閃電貸漏洞。CertiK在2021年對該項目進行了審計,然而Sturdy后來升級到沒有審計的合約。[2023/6/13 21:32:33]
二、事件分析
在本次被黑事件中,攻擊者共計在同一筆交易中利用了兩個典型攻擊套路。
其一,黑客利用了閃電貸操作DEX中SNX的價格,進而影響了xSNX中的鑄幣,旨在達到套利的目的;
其二,黑客利用了xBNT合約中的錯誤的權限配置,傳入預期外的路徑地址,從而達到利用空氣幣完成獲利的目的。
閃電貸平臺Equalizer Finance將在Optimism上部署協議:3月15日消息,閃電貸平臺 Equalizer Finance 宣布將在以太坊二層解決方案 Optimism 上部署閃電貸協議,這是繼其 1 月在 Polygon 上完成閃電貸協議部署后的第二次集成。[2022/3/15 13:57:03]
接下來,我們一起來還原一下黑客是如何利用“閃電貸攻擊?錯誤權限配置”,完成了整個攻擊流程的。
???準備工作
1、攻擊者首先利用閃電貸借出大量資金;
2、分別利用Aave的借貸功能和Sushiswap的DEX等功能,以獲取大量的SNX代幣;
Grim Finance 被黑簡析:攻擊者通過閃電貸借出 WFTM 與 BTC 代幣:據慢霧區情報,2021 年 12 月 19 日,Fantom 鏈上 Grim Finance 項目遭受攻擊。慢霧安全團隊進行分析后以簡訊的形式分享給大家。
1. 攻擊者通過閃電貸借出 WFTM 與 BTC 代幣,并在 SpiritSwap 中添加流動性獲得 SPIRIT-LP 流動性憑證。
2. 隨后攻擊者通過 Grim Finance 的 GrimBoostVault 合約中的 depositFor 函數進行流動性抵押操作,而 depositFor 允許用戶指定轉入的 token 并通過 safeTransferFrom 將用戶指定的代幣轉入 GrimBoostVault 中,depositFor 會根據用戶轉賬前后本合約與策略池預期接收代幣(預期接收 want 代幣,本次攻擊中應為 SPIRIT-LP)的差值為用戶鑄造抵押憑證。
3. 但由于 depositFor 函數并未檢查用戶指定轉入的 token 的合法性,攻擊者在調用 depositFor 函數時傳入了由攻擊者惡意創建的代幣合約地址。當 GrimBoostVault 通過 safeTransferFrom 函數調用惡意合約的 transferFrom 函數時,惡意合約再次重入調用了 depositFor 函數。攻擊者進行了多次重入并在最后一次轉入真正的 SPIRIT-LP 流動性憑證進行抵押,此操作確保了在重入前后 GrimBoostVault 預期接收代幣的差值存在。隨后 depositFor 函數根據此差值計算并為攻擊者鑄造對應的抵押憑證。
4. 由于攻擊者對 GrimBoostVault 合約重入了多次,因此 GrimBoostVault 合約為攻擊者鑄造了遠多于預期的抵押憑證。攻擊者使用此憑證在 GrimBoostVault 合約中取出了遠多于之前抵押的 SPIRIT-LP 流動性憑證。隨后攻擊者使用此 SPIRIT-LP 流動性憑證移除流動性獲得 WFTM 與 BTC 代幣并歸還閃電貸完成獲利。
此次攻擊是由于 GrimBoostVault 合約的 depositFor 函數未對用戶傳入的 token 的合法性進行檢查且無防重入鎖,導致惡意用戶可以傳入惡意代幣地址對 depositFor 進行重入獲得遠多于預期的抵押憑證。慢霧安全團隊建議:對于用戶傳入的參數應檢查其是否符合預期,對于函數中的外部調用應控制好外部調用帶來的重入攻擊等風險。[2021/12/19 7:49:04]
3、再在Uniswap大量拋售SNX,進而擾亂SNX在Uniswap的價格;
???攻擊開始
4、使用少量的ETH獲得大量的xSNX;
原理解釋:
此次攻擊者利用了xSNX合約支持ETH和SNX進行兌換xSNX的機制。具體而言,當用戶傳入ETH后,合約會將用戶的ETH通過Uniswap兌換為等值的SNX之后再進行xSNX的兌換。由于攻擊者在“準備工作”中的1~3的操作,此時Uniswap中的ETH對SNX的價格是被操縱的,這就使得少量的ETH能夠兌換大量的SNX,進而再兌換大量的xSNX。
???攻擊收尾
5、攻擊者在Bancor中售賣獲利,由于Bancor中的價格并未受到影響,因此價格彼時仍然是正常的。此時攻擊者得以套利,之后歸還閃電貸;
???第二次攻擊開始
6、再利用獲得的利潤來兌換大量的xBNT。
原理解釋:
此次攻擊者利用了xBNT合約支持ETH鑄幣xBNT的功能,合約會將ETH在Bancor中轉化為BNT后進行鑄造xBNT,但需要注意的是,此鑄造函數可以指定兌換路徑,即不需要兌換成BNT也可進行鑄造,這就使得攻擊者能夠任意指定兌換代幣的地址。
三、事件復盤
在xToken團隊的官方回應中,表達了對此次被黑事件造成的資產損失深感遺憾,并提到在未來即將推出的產品中會引入一項安全功能,以防止此類攻擊。但遺憾的是,由于尚未在整個產品系列中引入這一安全功能,由此導致2500萬美元資金損失。
針對xToken被黑事件,成都鏈安·安全團隊在此提醒,隨著各大DeFi項目的不斷發展,整個DeFi世界將越來越多變,新型項目往往會與之前的DeFi項目在各個方面進行交互,如上文提及的Aave和DEX等等。因此,在開發新型DeFi項目之時,不光需要注意自身邏輯的安全與穩定,還要考慮到自身邏輯與利用到的基礎DeFi項目的整體邏輯是否合理。
同時,我們建議,各大DeFi項目方也需要積極與第三方安全公司構建聯動機制,通過開展安全合作、建立安全防護機制,做好項目的前置預防工作與日常防護工作,時刻樹牢安全意識。
行情走勢分析:從小時盤面來看,以太沖高瀑布后,觸底3505一線反彈,向上試探突破4000一線,多頭未能延續,遇壓后延續震蕩下行,走寬幅震蕩,多空博弈較為激烈,目前幣價持續在3800附近震蕩整理.
1900/1/1 0:00:00尊敬的用戶: WBF即將在開放區小目標板塊上線ZBC/USDT交易對,具體上線時間為:充值時間:2021年5月13日14:10交易時間:2021年5月13日14:10提幣時間:2021年5月13.
1900/1/1 0:00:00PolkaWorld發布DOT國庫報告第二期!本報告旨在幫助波卡社區了解國庫資金使用情況,幫助生態項目更好地獲得波卡國庫的支持,歡迎查閱!本文提到的數據均為2021年5月11日的DOT國庫數據.
1900/1/1 0:00:00尊敬的用戶: WBF將于2021年5月17日12:00對LTC*3和LTC*(-3)進行下架,請用戶在2021年5月17日12:00之前進行交易并處理該資產.
1900/1/1 0:00:00尊敬的社區用戶: BHEX將于2021年5月14日18:00(UTC8)上線FLY/USDT交易對.
1900/1/1 0:00:00第九期Layer2觀察者周報,Enjoyit!以太坊擴容生態鎖倉總價值已達270億美元根據網站ETHHole的數據統計,目前以太坊擴容生態鎖倉總價值已超過270億美元.
1900/1/1 0:00:00