損失過億級的不只SVB!Euler Finance 1.95億美元駭客事件剛剛上演
CertiK中文社區/Annie編譯
2023-03-14 14:33

2023年3月13日,Euler Finance資金池遭遇閃電貸攻擊,預計損失總計約1.95億美元。這一數字也是2023年迄今為止Web3領域所有其他安全事件資產損失總額的兩倍以上。

根據Euler Finance對自己描述,該平台是「以太坊上的一個允許用戶借出和借入幾乎任何加密貨幣資產的非託管協議」。

造成該攻擊的原因主要是Euler Pool合約中的`donateToReserve`存在漏洞。由於該功能缺乏對調用者倉位健康度的檢查,用戶可以透過自主放棄一部分槓桿存款,使自身倉位失衡,從而使用Euler特色的清算規則清算自己的倉位而獲利。

攻擊者利用閃電貸借來的資產,首先透過Euler借貸協議中獨特的`mint功能以及Euler資金池合約中易受攻擊的donateToReserves功能創建了一個高槓桿且資不抵債的狀況。隨後攻擊者在同一筆交易以清算者的身份清算自己創建的資不抵債的倉位,「免費」獲得大量衍生eToken。最後透過提款耗盡資金池,並在多個Euler Pools反覆實施攻擊,以耗盡所有資金池。

下面是對某一資金池的攻擊流程,還有其他四個具有相同漏洞的資金池也被攻擊了。

攻擊流程

①攻擊者從AAVE閃電貸到3000萬 DAI。

②攻擊者透過eDAI合約向Euler存入2000萬 DAI,並收到2000萬 eDAI。在攻擊者存入2000萬DAI之前,Euler池中的DAI餘額為890萬。

③調用`eDAI.mint()`。該特定的`mint`功能是Eule Financer獨有的,可允許用戶反覆借款和還款。這是一種創建借貸循環的方法,其結果是帶槓桿的借貸倉位。

④調用`mint`後,收到2億 dDAI和1.95.6億 eDAI。(注:dTokens代表債務代幣,eTokens代表抵押股權)。

⑤調用 "repay",將eDAI池中的1000萬DAI償還給Euler,這就將1000萬dDAI銷毀了。隨後再次調用 "mint",為攻擊合約創造另一個2億dDAI和1.956億eDAI形式的借貸倉位。此時攻擊者的倉位為: 3.9 億 dDAI 和 4億 eDAI。

⑥調用`donateToReserves`(該存在漏洞的函數於2022年7月被引入),將1億eDAI轉給Euler。由於沒有對這一行為的抵押狀況進行適當的檢查,"donate" 後的攻擊者成為了"違規者"(非健康負債水準的地址), 其風險調整後負債遠超過了的抵押品價值,因此可以對其進行清算。此時攻擊者的倉位為: 3.9 億 dDAI 和 3億 eDAI。

⑦攻擊者部署的清算人合約開始清算「違規者」。Euler Finance清算邏輯中一個特色功能是當被清算人的借貸倉位極其不健康時,清算人員可以在此過程中獲得最高20%的「折扣」。

⑧透過清算,清算人獲得了2.59億dDAI的「債務」,獲得3.1 eDAI的「資產」。清算過程中轉讓的債務總額比資產低得多。清算人獲得了價值近4500萬的eDAI資產。

⑨清算人透過獲得的eDAI從協議中取走了所有的3890萬DAI的抵押品,然後償還了閃電貸款,獲利800萬美元。

攻擊者目前在地址一持有價值1350萬美元的ETH,在地址二持有1.48億美元的ETH以及4300萬DAI。

地址一:https://etherscan.io/address/0xB2698C2D99aD2c302a95A8DB26B08D17a77cedd4

地址二:https://etherscan.io/address/0xb66cd966670d962C227B3EABA30a872DbFb995db

神奇的是,第一次攻擊交易竟被MEV機器人無意攔截了。該機器人獲得了879萬美元的DAI。可惜攻擊者合約裡把提款地址寫死了, MEV機器人在試圖歸還資金的過程中,只能把截攔到的資金發到攻擊者的地址。

第二到第五筆攻擊,使駭客獲得了價值1.77億美元的資產。

MEV機器人的所有者在鏈上留言並解釋他們無法歸還這些錢,並對受影響的用戶感到抱歉和遺憾。

寫在最後

目前,該事件是2023年Web3領域最大的一次駭客攻擊。Euler Finance在推文中承認了這一事件的真實性,並表示他們目前正在與安全專家和執法部門進行合作。

Euler Finance團隊的整體安全水準和意識在產業內處於相對較高的水準,目前也已與很多安全公司進行了合作。項目進行過審計,也有bug bounty漏洞賞金計劃加持,不過項目還是未能逃過駭客的磨爪。

因此CertiK安全專家再次提醒,新添加的功能,務必也要進行審計。由於上述合約漏洞是https://forum.euler.finance/t/eip-14-contract-upgrades/305 引進的,才造成了如此嚴重的後果。

所以審計並不是一勞永逸的,合約在添加新功能時,務必要重新對新添加功能進行審計,否則即便已審計過「千里之堤」,也可能潰於未審計的「蟻穴」。

作為區塊鏈安全領域的領軍者,CertiK致力於提高Web3.0的安全和透明等級。迄今為止,CertiK已獲得了4000家企業客戶的認可,保護了超過3600億美元的數位資產免受損失。

本文為金色財經授權刊登,原文標題為「損失過億級的不只SVB Euler Finance 1.95億美元黑客事件剛剛上演