复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?


2023年3月13日,據區塊鏈安全審計公司Beosin旗下Beosin EagleEye安全風險監控、預警與阻斷平台監測顯示,DeFi借貸協議Euler Finance遭到攻擊,損失約1.97億美元。

我們已於昨晚將簡析分享出來:1.97億美元大劫案如何發生? Beosin關於Euler Finance 事件的簡析

今天,我們再次將事件复盤,帶大家了解本次事件的來龍去脈。

首先我們需要知道本次事件的“受害者”Euler Finance是誰?

根據相關資料,早在2020年6月,Euler便榮獲了由Encode Club舉辦的Spark高校黑客馬拉鬆在線競賽的第一名。

Euler最初是一個建立於Aave、Compound等借貸協議基礎之上的協議,它允許用戶為任何ERC-20代幣創建自己的借貸市場,同時還提供Reactive利率模型以減少治理干預。

據了解,其能夠實現為長尾市場資產提供借貸功能的最主要原因是,Euler引入了時間加權平均價格這一被Uniswap V3所使用的構建塊。

2021年8月,Euler獲得由Paradigm領投800萬美元的A輪融資,其他參投方包含Lemniscap 及來自區塊鏈知名項目的個人投資者。

在官網上,Euler也展示著他們擁有6家安全公司審計,均未發現關鍵漏洞,那他們這次是如何被本次這位攻擊者打穿防線的呢?

接下來,我們看一下黑客是如何操作的,以其中一筆交易為例:

攻擊事件相關信息

項目地址:

0x27182842e098f60e3d576794a5bffb0777e025d3

攻擊交易:

https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d

https://etherscan.io/tx/0x47ac3527d02e6b9631c77fad1cdee7bfa77a8a7bfd4880dccbda5146ace4088f

https://etherscan.io/tx/0x71a908be0bef6174bccc3d493becdfd28395d78898e355d451cb52f7bac38617

https://etherscan.io/tx/0x62bd3d31a7b75c098ccf28bc4d4af8c4a191b4b9e451fab4232258079e8b18c4

https://etherscan.io/tx/0x465a6780145f1efe3ab52f94c006065575712d2003d83d85481f3d110ed131d9

https://etherscan.io/tx/0x3097830e9921e4063d334acb82f6a79374f76f0b1a8f857e89b89bc58df1f311

攻擊者地址:

0x5f259d0b76665c337c6104145894f4d1d2758b8c

0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4

攻擊過程复盤(其中一筆交易)

1.攻擊者利用閃電貸借出了3000 萬DAI,並創建了兩個攻擊合約。其中,0x583 是藉貸合約,0xA03 是清算合約。攻擊者將3000 萬DAI 轉入借貸合約。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

2.攻擊者質押了2000萬DAI,獲得了19,568,124個eDAI的質押。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

3.攻擊者接著調用mint函數利用這19,568,124個eDAI借貸195,681,243個eDAI(質押資產)和200,000,000個dDAI(債務資產)。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

4.攻擊者接著將剩餘的1000萬DAI使用repay函數進行了質押,再次利用mint函數借貸了195,681,243個eDAI和200,000,000個dDAI。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

5.攻擊者後續進行了donateToReserves操作,將一億個eDAI進行了銷毀,使得eDAI小於了dDAI,滿足了清算條件。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

6.清算合約對借貸合約進行了清算。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

7.攻擊者將Euler合約中的3890萬DAI提取出來,並將3000萬個DAI歸還給了AAVE。最終獲利約890萬DAI。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

漏洞分析

在本次攻擊中,Etoken合約的donateToReserves函數未對用戶實際持有的代幣數量和捐贈之後用戶的賬本的健康狀態進行檢查,導致攻擊者可以捐贈1億個eDAI(通過槓桿獲得,用戶實際只質押了3000萬個DAI)。捐贈之後,用戶的賬本健康狀態符合清算條件,導致借貸合約被清算。借貸合約會將eDAI和dDAI轉移到清算合約,然後進行清算。由於壞賬額度異常巨大,清算合約會應用最大折扣進行清算,導致清算合約清算後之後有310.93M個eDAI和259.31M個dDAI。此時,用戶已恢復健康,可以提取資金,可提取的金額是eDAI和dDAI的差值。但由於礦池子中僅有3890萬DAI,因此只有該金額可以被提取。總體而言,攻擊的根本原因在於Etoken合約未對用戶實際持有的代幣數量和捐贈之後用戶的賬本的健康狀態進行正確的檢查,這為攻擊者提供了機會。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

資金流向

截至發稿前,8080.98個ETH存放在0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4地址中。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

我們繼續用Beosin KYT虛擬資產反洗錢合規和分析平台發現,88,651.70個ETH和43063733.27個DAI存放在0xb66cd966670d962C227B3EABA30a872DbFb995db地址中。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

只有少部分(100個ETH)轉移到Tornado Cash。

复盤Euler Finance 2億美元被盜案的來龍去脈本次事件帶給我們哪些啟示?

Beosin安全團隊統計發現本次事件被盜資金約為34,224,863.42個USDC和849.14個WBTC和85818.26個stETH和8,877,507.35個DAI。 Beosin KYT 將持續對被盜資金進行監控。

擴展閱讀:Beosin KYT,一個滿足你所有AML需求的“鏈上專家”

受Euler影響的協議有哪些?

在攻擊事件發生後,據0xScope Protocol 監測,部分項目及巨鯨地址在Euler Finance 被攻擊事件中遭到了波及,其中Angle Protocol 在Euler 中有1760 萬美元USDC;Idle DAO 在Euler 中有460 萬美元USDC;SwissBorg 在Euler 中存入了6357 枚以太坊和170 萬枚USDT,攻擊事件發生後,SwissBorg 迅速借出了4752 枚cbETH 以減少損失,但仍滯留了約426 萬美元資產;0x28a5 開頭巨鯨地址與czsamsun.eth 分別在協議中滯留了400 萬美元和274 萬美元資產。

緊接著,固定利率借貸協議Yield Protocol 在官網上表示,由於Euler Finance 安全事件影響,將在完全評估事件影響之前暫停在以太坊上通過UI 與Yield Protocol 的交互。

收益聚合器Yearn 發推表示,雖然沒有直接暴露於Euler 被攻擊事件,但一些Yearn 金庫間接暴露於黑客攻擊。

3月14日,DeFi協議Idle Finance發推稱,經過調查,Euler Finance事件對協議Yield Tranches策略的敞口涉及約535萬美元穩定幣及320枚ETH,Best Yield策略的敞口涉及480萬美元穩定幣和313枚ETH。此外Idle Finance強調實際影響將取決於Euler團隊採取的行動和可能採取的緩解措施,以上數字並非實際回撤,而是鎖定在Euler的實際數字。

可見本次攻擊事件帶來的影響依然還在持續。

本次事件帶給我們哪些啟示?

針對本次事件,Beosin安全團隊建議:1.在開發智能合約時,應注意後續新增功能是否對前面邏輯造成影響。 2.在開發智能合約時,應注意對資產的檢查。 3.項目上線前,建議選擇專業的安全審計公司進行全面的安全審計,規避安全風險。

由本次事件,可以看到2023年全球Web3安全形勢依然嚴峻,要真正程度上抑制黑客的猖獗活動,需要整個行業做出多方努力。

項目方做好自身安全防護非常重要,不管是合約安全,還是團隊運營安全等,有一個薄弱的領域都可能讓項目方造成巨大損失。對於項目方來說,需要一個解決方案能兼顧各方面的安全問題。

資訊來源:由0x資訊採集自互聯網。版權歸作者“Beosin”所有,未經許可,不得轉載

Total
0
Shares
Related Posts