比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > MANA > Info

MIS:重入攻擊 + 管理漏洞:2000 萬枚 OP 被盜事件分析

Author:

Time:1900/1/1 0:00:00

2022 年 6 月 9 日消息,據 Optimism 與加密貨幣做市商 Wintermute 透露,2000 萬個 Optimism 代幣被黑客盜取。6 月 9 日,Optimism 基金會向 Wintermute 授予了 2000 萬枚 OP 代幣。

交易發送完成后,Wintermute 發現無法訪問這些代幣,因為提供的地址是他們尚未部署到 Optimism/L2 的 Ethereum/L1 多簽地址。該 Optimism/L2 多簽地址由黑客部署,2000 枚 OP 代幣也被黑客盜取。

5 月 27 日,Optimism 基金會通過多簽合約分兩次向 Wintermute 的多簽合約地址轉賬 2000 萬 OP 代幣,并且在 26 日轉賬 1 枚 OP 代幣,3 筆交易如下:

PeckShield:基于Aave的Earning Farm協議遭受重入攻擊,已損失至少28.7萬美元:金色財經報道,區塊鏈安全公司 PeckShield 發布推文稱,Aave 協議的 Earning Farm 已受到重入攻擊,導致至少價值 287,000 美元的以太坊被盜。

目前尚不清楚此次攻擊是否與 Curve Finance 資金池的漏洞有關。7 月 30 日,DeFi 協議的穩定池也遭受了重入攻擊,損失超過 6100 萬美元。Curve 黑客攻擊是由影響 Vyper 編程語言三個版本的漏洞導致的,Vyper 編程語言是 DeFi 協議開發人員廣泛使用的通用合約語言。

Earning Farm 旨在成為以太坊、wBTC和 USDC 持有者的用戶友好協議,其網站稱,安全公司 Slowmist 審核了其區塊鏈合約。[2023/8/10 16:16:23]

根據交易時間以及交易中 OP 代幣數量,我們分析,在 26 日,Optimism 基金會向 Wintermute 多簽合約地址轉賬 1 枚 OP 代幣作為測試,Optimism 基金會在 Wintermute 確認收到代幣后將 2000 萬枚 OP 代幣通過連續的兩筆交易發送給 Wintermute 多簽合約地址。接收地址是 Wintermute 在 Ethereum/L1 上已部署的多簽合約地址,因此 Wintermute 僅僅驗證是否接收到了代幣,但并沒有驗證該地址在 Optimism/L2 上的所有權,而此時在 Optimism/L2 上并沒有實際部署多簽合約,這才給了黑客可乘之機。

余弦:智能合約語言層的bug導致一些知名項目的重入鎖防御失效:金色財經報道,慢霧創始人余弦針對受CurveFinance穩定幣池alETH/msETH/pETH黑客攻擊事件影響發推稱,智能合約語言層的bug導致一些知名項目的重入鎖防御失效,黑白帽黑客們及MEV Bots瘋狂了,各種重入操縱及搶跑拿走資金。所幸這次不是Solidity,而是不那么流行的Vyper出問題。[2023/7/31 16:08:41]

以上轉賬交易中的相關地址如下:

(1)Optimism 基金會在 Optimism/L2 上的多簽合約地址:

0x2501c477d0a35545a387aa4a3eee4292a9a8b3f0(簡記為0x2501)

(2)Wintermute 在 Ethereum/L1 上的多簽合約地址(Wintermute Exploiter Multisig):

0x4f3a120E72C76c22ae802D129F599BFDbc31cb81(簡記為0x4f3a)

同時,Optimism/L2 上的 0 x4 f3 a 也是黑客部署的多簽合約地址。

BlockSec:已確認EraLend遭到只讀重入攻擊,總損失為340萬美元:7月25日消息,BlockSec 表示,其正在協助 EraLend 解決攻擊調查問題,并已確定根本原因,即只讀重入攻擊,總損失為 340 萬美元。[2023/7/25 15:57:59]

接下來,我們將從鏈上交易的角度詳細分析一下黑客的攻擊行為以及原理。

首先,我們看一下 Optimism/L2 上的 0 x4 f3 a 合約部署交易:

txHash是0x00a3da68f0f6a69cb067f09c3f7e741a01636cbc27a84c603b468f65271d415b

注意到,該合約部署時間是 6 月 5 日,其中 Wintermute/OP Exploiter 是黑客的一個地址,簡記為 0 x60 b2。

該交易是如何準確生成 0 x4 f3 a 合約地址的呢?

黑客重放了 3 筆交易,尤其是最后的 Gnosis Safe: Proxy Factory 1.1.1 合約創建的交易,如下所示:

Akropolis重入攻擊事件:攻擊者使用自己構造token導致合約使用相同差值鑄幣兩次:11月14日,慢霧發布DeFi協議Akropolis重入攻擊事件簡析。內容顯示:

1. 攻擊者使用自己創建的token進行deposit,此時Akropolis合約會先記錄一次合約中所有代幣的總量;

2. Akropolis合約調用用戶自己創建的token的transferFrom函數的時候,攻擊者在transferFrom函數中重入Akropolis合約的deposit函數,并轉入DAI到Akropolis合約中;

3. 此時在重入的交易中,由于Akropolis合約會先獲取合約中所有代幣的總量,這個值和第一次調用deposit函數獲取的合約代幣總量的值一致;

4. Akropolis合約計算充值前后合約中代幣總量的差值,攻擊者在充值DAI后,會得到一定量的Delphi token,獲得token的數量就是充值DAI的數量;

5. 鑄幣完成后,流程回到第一次deposit往下繼續執行,這時合約會再次獲取合約中所有代幣的總量,這時由于在重入交易時,攻擊者已經轉入一定量的DAI,所以得到的代幣總余額就是攻擊者在重入交易完成后的代幣總余額;

6. 此時合約再次計算差值,由于第一次deposit的時候合約中所有代幣的總量已經保存,此時計算出來的差值和重入交易中計算的差值一致,Akropolis合約再次鑄幣給攻擊者。總結:攻擊者使用自己構造的token,對Akropolis合約的deposit函數進行重入,導致Akropolis合約使用相同的差值鑄幣了兩次,但是只觸發了一次轉賬,當攻擊者提現的時候,就可以提兩倍的收益,從而獲利。[2020/11/14 20:48:37]

(1)Ethereum/L1 上的交易如下:

動態 | 以太坊君士坦丁堡升級因“可重入”漏洞延期:據PeckShield消息,今天凌晨,以太坊君士坦丁堡代碼突然爆出“可重入”漏洞,該漏洞可以用來攻擊相關合約修改用戶余額或其他關鍵變量。PeckShield安全人員初步分析發現,在分叉之前一個存儲操作至少需要5000gas,這個是遠超缺省轉賬激勵的2300gas。但分叉后一個存儲只需200gas,這個造成了現有合約再處理轉帳時候,如調用了攻擊者合約,可以用來修改調用者合約的內部變量,其中可能包括賬號余額等。由于該漏洞,以太坊君士坦丁堡升級延期,具體的升級時間將在周五的下一次核心開發者電話會議選出。[2019/1/16]

(2)Optimism/L2上的交易:

通過重放交易,黑客在 Optimism/L2 上面創建了跟 Ethereum/L1 上完全相同(地址與合約代碼相同)的 Gnosis Safe: Proxy Factory 1.1.1 合約,其中創建代理合約函數如下:

Gnosis Safe: Proxy Factory 1.1.1 合約使用的是 0.5 版本的 Solidity,使用 new 來創建合約時使用的是 create 命令,而不是 create2。使用 create 命令創建合約,合約地址是 msg.sender 以及 nonce 來計算的。在 Ethereum/L1 上面,創建多簽合約 0 x4 f3 a 的 msg.sender 就是 Gnosis Safe: Proxy Factory 1.1.1 的地址,黑客在 Optimism/L2 通過重放交易來創建于 Gnosis Safe: Proxy Factory 1.1.1 合約的主要目的就是為了保證在 Optimism/L2 上創建合約 0x4f3 a 的 msg.sender 與在 Ethereum/L1 上一致,那么黑客可以很方便的通過智能合約(合約 0 xe714)調用 createProxy 函數來創建出地址是 0 x4 f3 a 的合約。在該交易中創建過程如下所示:

另外,合約0xe714的部署是在6月1日的以下交易中完成的:

txHash: 0x69ee67800307ef7cb30ffa42d9f052290e81b3df6d3b7c29303007e33cd1c240

發起交易地址是0x8bcfe4f1358e50a1db10025d731c8b3b17f04dbb(簡記為0x8bcf),這也是黑客所持有的地址。同時,這筆交易也是0x8bcf發起的第一筆交易,資金來源于Tornado:

整個過程從時間上看,

(1)5 月 27 日,Optimism 地址 0 x2501 向 Optimism/L2 上的 0 x4 f3 a 地址轉賬 2000 萬 OP,0 x4 f3 a 地址在 Ethereum/L1 上是 Wintermute 的多簽合約地址,但此時在 Optimism/L2 上面并沒有部署合約;

(2)6 月 1 日,黑客地址 0 x8 bcf 部署合約 0 xe714。

(3)6 月 5 日,黑客通過重放 Ethereum/L1 上的交易創建了 Gnosis Safe: Proxy Factory 1.1.1 合約,其地址與 Ethereum/L1 上一樣;然后地址 0x60b2 通過合約 0 xe714 部署了多簽合約 0 x4 f3 a,合約所有權歸黑客所有,因此 5 月 27 日轉入的 2000 萬 OP 被黑客盜取。

(4)6 月 5 日,多簽合約 0 x4 f3 a 在接收到 2000 萬 OP 后,將 100 萬 OP 轉賬給黑客地址 0 x60 b2,然后將 100 萬 OP 兌換成了 720.7 Ether。

(5)6月9日,合約0x4f3a將其中的100萬OP轉賬給了賬戶地址0xd8da,

其他的1800萬OP仍然在合約0x4f3a中。

引發本次安全事件的根本原因是交易重放、Solidity舊版本漏洞以及主鏈和側鏈交易簽名驗證等綜合因素,并不是因為項目方合約代碼存在漏洞。

另外,針對本次事件,項目方反應不及時、對合約管理不嚴格等也給了黑客可乘之機;從攻擊時間線和攻擊準備上看,也不排除OP內部有內鬼串通作案的可能。

Tags:MISISMOPTITIMIUTEMISPRISMOptimismtimi幣官方網站

MANA
比特幣:比特幣的挑戰

比特幣的設計具有獨特的特點,使其無法執行某些操作,這導致開發人員和用戶在以太坊生態系統中尋找更綠色的牧場。然而,這樣的缺點反而使比特幣更安全、更穩定.

1900/1/1 0:00:00
元宇宙:朱嘉明:大轉型、大設計、大實驗:大歷史視角下的元宇宙

本文節選自最新出版的《元宇宙與數字經濟》一書,作者朱嘉明。我們通過自己的觀察來創造歷史,而不是歷史創造我們.

1900/1/1 0:00:00
DAO:Bankless:元治理終極指南:加密領域下一個趨勢?

原文標題:《Bankless 丨元治理終極指南:Crypto 的下一個大趨勢》隨著協議的崩潰,收益率的壓縮和價格的下跌,許多 DeFi 觀察家不禁開始懷疑.

1900/1/1 0:00:00
比特幣:金色觀察 | 加息風暴下跌跌不休 機構還會是支撐點嗎?

巴克萊銀行6月13日表示,美國通脹數據可能處于“令人震驚”的高位,這意味著他們目前預計美聯儲本周將加息75個基點,而不是50個基點.

1900/1/1 0:00:00
元宇宙:打造元宇宙的5條設計準則

想要創建一個充滿吸引力、真實的元宇宙,需要傾聽社區的聲音并從中學習,釋放想象力,在大眾的引導下創造新的沉浸式體驗.

1900/1/1 0:00:00
元宇宙:OceanMollu丨元宇宙又有大動作 對教育有何影響?

在FacebookConnect2021大會上,Facebook創始人扎克巴格表示將在5年內轉型為元宇宙公司.

1900/1/1 0:00:00
ads