Euler 疑遭駭客閃電貸攻擊:7個受波及的DeFi協議,受損金額總計約為 1.97 億美元

原文作者:Jaleel、0x22D,BlockBeats

3 月 13 日下午 5 時,Euler Finance 疑遭駭客閃電貸攻擊。Euler Finance 在本次駭客閃電貸攻擊事件中的受損金額總計約為 1.97 億美元,其中包括超 880 萬枚 DAI、 849 枚 WBTC、 3400 萬 枚 USDC 以及 8.5 萬枚 stETH 等。對此,Euler Finance 隨即回覆正與安全專業人員及執法部門合作,Euler Finance 提出解決方案稱,受到該漏洞影響的人將能夠要求退款,金庫剩餘資金可以用於處理退款。

駭客是如何攻擊 Euler 的?目前哪些協議受到了影響?曾經為 Euler 提供審計的公司有哪些?BlockBeats 進行了簡要梳理。

攻擊過程覆盤:一個「違規者」和一個「清算者」

Euler Finance 審計合作伙伴之一 Omniscia 釋出了一份事後技術分析報告,對這次攻擊進行了非常詳細的分析,並指出被利用的漏洞源於 Euler 沒有對進行捐贈的地址而進行適當的安全檢查。

該漏洞程式碼是在 eIP-14 中被引入的,eIP-14 協議引入了整個 Euler 生態系統中的多個更改。缺陷存在於 EToken 實現 ( EToken: donateToReserves feature )所做的第一個更改中。於是攻擊者利用了易受攻擊的程式碼,允許它透過向協議的儲備金捐贈資金來建立無擔保的代幣債務頭寸,使得攻擊者能夠清算這些賬戶並從清算獎金中獲利。

具體地說,清算模組內部邏輯嘗試還清違規者的全部債務,但如果擁有的抵押品無法滿足預期還款收益率,則系統會預設使用使用者擁有的任何其他抵押品。此程式碼塊的假設狀態是,當借款人擁有多種抵押品並且沒收所有這些抵押品不會使違規者恢復償付能力時,就會發生這種情況。 

這種安全保障並不受捐贈機制的支援,該機制允許使用者以槓桿的形式創造「壞賬」,這種槓桿是透過捐贈他們的 EToken 單位而沒有抵押的,而不會影響其 DToken 餘額。

圖源來自 Arkham Intelligence

據 Arkham 的調查發現,攻擊者使用了 20 多個不同的合約地址,以獲取來自 Euler 的各種加密資產。對於每一種資產,駭客都部署了兩個合約:一個「違規者」和一個「清算者」。「違反者」使用捐贈功能來推翻 Euler 的邏輯,「清算者」隨後清理殘留物。

駭客的具體執行流程如下:

1 )首先,從 Balancer / Aave v2 中提取一筆閃電貸,借取 30 M DAI

2 )部署兩個合約:違規者和清算人。由「違規者」存入,「清算人」則負責在同一筆交易中平倉 

3 )存入資金的 2/3 到 Euler,將 20 M DAI 傳送到 Euler 並收到 19.5 M eDAI

4 )接著借入存款金額的 10 倍,從 Euler 收到 195.6 M eDAI 和 200 M dDAI

5 )使用剩餘 1/3 的資金償還部分債務,傳送了 10 M DAI 並燒燬了 10 M dDAI 

6 )重複第 4 步,從 Euler 收到 195.6 M eDAI 和 200 M dDAI

7 ) 捐贈已償還資金的 10 倍,向 Euler 捐贈了 1 億 eDAI

8 )接著「清算員」上線,因為 eDAI < dDAI 而清算違規賬戶,從違規者處獲得了 310 M eDAI 和 259 M dDAI 的債務

9 )再從 Euler 提取所有代幣金額,包括提取了 38.9 M DAI 10) 償還閃電貸款後,將 USDC 和 WBTC 兌換為 DAI 和 ETH

圖源來自 Arkham Intelligence

wETH 利用的利潤被髮送到另一個地址。Main Caller 地址持有大約 8 K ETH,目前價值近 1360 萬美元,這是從 Euler wETH 市場中移除的所有 ETH。

據 PeckShield 的監測顯示,Euler Finance 攻擊者目前已透過 0x c 66 d 開頭地址,至少轉入了 100 枚以太坊到 Tornado Cash,同時據鏈上偵探 ZachXBT 分析,該地址曾於幾周前攻擊了一些 BSC 上的協議,所盜資金同樣也存入了 Tornado Cash。和多數人猜測的一樣,幾乎可以肯定該攻擊者是一名黑帽。

受到波及的協議有哪些?

此次 Euler 的攻擊事件波及面較廣,影響了數個與 Euler 有關的 defi 協議,其中包括:

Aztec

Euler Finance 的漏洞影響了嘗試提取資金的 Aztec Connect 使用者,目前受影響的使用者處於無法提款的狀態。Aztec 無法控制與 Euler 的整合,目前 Aztec Connect 功能可以正常使用。

此外值得關注的是,Aztec 釋出公告稱,Aztec Connect 是世界上第一個隱私 Rollup,其設計存在一些問題,增加了維護成本。考慮到專案的規模和商業層面的因素,Aztec 即將關閉 Connect,所有的工程資源都將投入構建 L2 隱私協議 Noir,下一版本將支援預設隱私的全程式設計智慧合約。

Yield

Yield Protocol 因 Euler 攻擊事件已關閉主網借貸相關操作,Yield 的主網流動性池建立在 Euler 上,Euler 暫停了主網合約,目前 Yield 已經下架應用程序,並在官網 UI 中關閉借貸入口。

Balancer

在 Euler Finance 攻擊事件中,約 1190 萬美元從 bbeUSD 流動性池中被髮送給 Euler,佔了該流動性池 TVL 的 65% ,bbeUSD 也被存入了其他 4 個流動性池:wstETH/bbeUSD、rETH/bbeUSD、TEMPLE/bbeUSD、DOLA/bbeUSD,所有其他的 Balancer 流動性池都是安全的。 由於採取了保護剩餘資金的措施,UI 目前不支援現有 LP 退出這些 bbeUSD 池中的頭寸,但不存在資金進一步損失的風險。bbeUSD 池使用者可以使用 UI 按比例提取 Token 和 bbeUSD,但在 Euler 恢復 eTokens(例如 eDAI/DAI)的可轉讓性之前,無法從 bbeUSD 撤回資金。

SwissBorg

SwissBorg 在 Euler 中存入了 6357 枚以太坊和 170 萬枚 USDT,攻擊事件發生後,SwissBorg 迅速借出了 4752 枚 cbETH 以減少損失,但仍滯留和損失了損失了大約 1617.23 ETH(或僅佔該計劃認購總資產的 2.27% )和將近 170 萬 USDT(佔認購該計劃總資產的 29.52% )。

SwissBorg 稱,幸運的是,為防止這些場景的出現,已在多年前就做了很多準備,包括風險理程序,因此損失的程度很小。SwissBorg 將承擔在該事件中發生的所有損失,使用者不會因此而遭受任何損失。

Idle DAO

DeFi 協議 Idle Finance 發文表示,經過調查,Euler Finance 事件對協議 Yield Tranches 策略的敞口涉及約 535 萬美元穩定幣及 320 枚 ETH,Best Yield 策略的敞口涉及 480 萬美元穩定幣和 313 枚 ETH。 

此外 Idle Finance 強調實際影響將取決於 Euler 團隊採取的行動和可能採取的緩解措施,以上數字並非實際回撤,而是鎖定在 Euler 的實際數字。Idle Finance 還表示 Senior/Junior Best Yield DAI 金庫上週由於 USDC 脫錨,已將所有資金轉移到 Aave,因此該金庫(總 TVL 為 1120 萬美元)未受 Euler 事件影響,並且現在正在按預期執行並從 Aave 獲得收益。

Angle

去中心化穩定幣協議 Angle Protocol 在社交媒體上發文表示:「Angle Protocol 受 Euler 漏洞利用的影響,該協議將 1760 萬枚 USDC 存入 Euler。該協議已暫停,債務上限設定為 0 ,Euler AMO 已關閉。正在監視情況,並會在收到更新後立即進行更新。」 

此外 Angle Protocol 稱:在 Euler 駭客入侵之前,Angle Core 模組 TVL 約為 3600 萬美元, 1720 萬枚 agEUR 已透過核心模組鑄造。該協議中還有: 來自標準流動性提供商的約 1160 萬美元存款;來自對沖代理人的約 3.53 萬美元存款;盈餘約 558 萬美元。 

如果駭客入侵的資金 ( 17, 614, 940.03 USDC) 確定會丟失,Angle 核心模組的 TVL 將下降到大約 1840 萬美元。在這種情況下,核心模組中的準備金數量將低於 agEUR 持有人、標準流動性提供商和協議中剩餘對沖代理的債權價值。

Yearn

DeFi 收益聚合器 Yearn 稱,雖然沒有直接暴露於 Euler 被攻擊事件,但一些 Yearn 金庫由於使用 Idle 和 Angle 的策略而間接暴露於駭客攻擊。其中,在 yvUSDT 和 yvUSDC 上的風險敞口總計 138 萬美元,任何剩餘的壞賬將由 Yearn 金庫承擔,所有金庫都將保持開放並全面運作。

Certora

Certora 是一家總部位於以色列的區塊鏈安全公司,為智慧合約提供安全分析工具和服務。2022 年 5 月,Certora 在由 Jump Crypto 領投的 B 輪融資中籌集了 3600 萬美元。在獲得 3600 萬美元融資前,Certora 已為 Aave、Compound、Balancer 和 SushiSwap 找出過漏洞,這些漏洞的大部分在程式碼部署之前被發現並立即得到了修復。

Certora 於 2021 年 9 月至 10 月期間對 Euler 進行了審計。在其出具的審計報告中,Certora 指出 Euler 的程式碼中含有 3 個嚴重程度為高的問題, 4 個嚴重程度為中的問題, 2 個嚴重程度為低的問題,最嚴重的問題是使用者可透過一些手段逃避清算。

由於引起本次被盜事件的程式碼來自 Euler 2022 年 7 月才引入的新提案 eIP-14 ,因此 Certora 在本次事件中無需承擔責任。

Halborn

Halborn 是一家總部位於邁阿密的區塊鏈安全公司, 2022 年 7 月,Halborn 宣佈完成 9000 萬美元 A 輪融資,Summit Partners 領投,Castle Island Ventures、Digital Colurncom Group 和 Brevan Howard 等參投。Halborn 的使用者不乏 Solana、Avalanche、BAYC 這樣的知名專案。

由於 Halborn 對 Euler 審計發生在 2021 年 5 月至 6 月期間,早於 eIP-14 被引入的時間,因此 Halborn 同樣無需承擔責任。

Solidified & ZK Labs

Solidified 和 ZK Labs 兩家區塊鏈安全公司曾分別為 OpenSea、Tether、Cosmos 等專案提供審計服務,並於 2021 年 5 月聯合對 Euler 進行了審計,因此無需在本次事件中承擔責任。

Pen Test Partners

Pen Test Partners 是一家不止專注於區塊鏈領域的網路安全公司。2022 年 6 月,Pen Test Partners 對 Euler DApp 的安全性進行了審計,並於審計報告中給出了「該 App 可以很好地抵禦攻擊,對 Euler 基礎設施和使用者資料帶來的風險較低」的結論。Pen Test Partners 同樣無需承擔責任。

Omniscia

Omniscia 是一支由經驗豐富的智慧合約審計員和開發者組成的去中心化團隊,在構建和保護複雜的去中心化網路和應用程序方面擁有深厚的專業知識,審計服務物件包括 Polygon、Ava Labs 等 240 個專案和公司。

Omniscia 分別於 2022 年 3 月、 6 月、 9 月對 Euler 進行了 3 次審計,分別針對 Merkle 質押挖礦安全、Chainlink 相關功能安全、Swap Hub 安全。雖然最後一次審計發生在 eIP-14 被提出的 2 個月後,但由於 eIP-14 不在這 3 次審計所包括的範圍內,因此 Omniscia 並未出現重大失誤。

SHERLOCK

SHERLOCK 是一個智慧合約保險服務與審計平臺,為 Opyn、Euler、Lyra、Tempus、LiquiFi 和 Hook 等客戶提供總計 1000 萬美元的鏈上漏洞保險與獎勵賞金。

SHERLOCK 共為 Euler 進行過 3 次審計。第一次於 2021 年 12 月由審計員 Chris Michel 完成,然後於 2022 年 1 月由審計員 shw 9453 進行了更新。而最後一次審計正是由審計員 WatchPug 於 2022 年 7 月完成的,對引發此次攻擊事件的 eIP-14 進行的審計。

WatchPug 在 eIP-14 的程式碼中發現了 7 處問題,但並沒有發現此次事件的導火索,EToken:donateToReserves。

SHERLOCK 表示願意承擔責任,併發起了 450 萬美元賠償計劃,目前已經賠付 330 萬美元,不過這與損失的 2 億美元相比實在太少了。

比起「審計無用」的聲音,此次事件其實更加凸顯了區塊鏈安全審計的重要性和目前審計流程的侷限性。審計方的人為失誤,審計範圍的不明確和對新提案的審計,是目前影響審計有效性的主要因素。對本次事件負有主要責任的 SHERLOCK 其實已經認識到了這些問題。

SHERLOCK 在 2022 年 8 月表示,花很多錢讓幾個人用 4 個月的時間檢查你的程式碼等於上當受騙,不要再上當了,Don’t be fooled again。SHERLOCK 引入傳統安全領域的奪旗賽形式,以 USDC 作為獎勵,以單個專案為單位,啟動漏洞尋找競賽,以此利用上百人規模的更廣泛社羣的力量。

可惜的是,由於 eIP-14 的釋出時間在 SHERLOCK 推出新的審計機制之前,仍然只靠幾位審計員單打獨鬥完成,因此 SHERLOCK 成了自己口中讓別人上當的存在,Euler is fooled。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *