買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > 瑞波幣 > Info

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

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 筆交易如下:

安全公司:BistrooIO遭受重入攻擊,損失約47000美元:5月8日消息,據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺“安全輿情監控數據顯示,BistrooIO 項目遭受重入攻擊,損失1,711,569個BIST(約47000美元),經成都鏈安技術團隊分析,本次攻擊原因是由于pTokens BIST代幣支持ERC-777的代幣標準,其合約在實現transfer調用的時候,會調用_callTokenToSend,進而調用tokensToSend()函數,攻擊者在該函數中通過重入方式調用了EmergencyWithdraw函數,造成重入攻擊。[2022/5/8 2:58:42]

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

Gnosis Chain硬分叉成功執行,已升級容易受到重入攻擊的代幣合約:4月20日消息,Gnosis Chain硬分叉已成功執行,此次硬分叉更新了橋接代幣,旨在升級容易受到重入攻擊(reentrancyattack)的代幣合約(Agave和Pored Finance等)。

此前報道,3月16日Gnosis Chain上Hundred Finance與Agave遭遇閃電貸攻擊,損失超1100萬美元。[2022/4/20 14:36:20]

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

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

0x2501c477d0a35545a387aa4a3eee4292a9a8b3f0(簡記為0x2501)

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

0x4f3a120E72C76c22ae802D129F599BFDbc31cb81(簡記為0x4f3a)

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

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]

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

康奈爾大學教授:近期針對Lendf.Me的攻擊與當年The DAO的重入Bug類似:AVA Labs聯合創始人,康奈爾大學教授Emin Gün Sirer在社交媒體平臺上表示,近期黑客從去中心化借貸協議Lendf.Me的Dapp中盜走約2500萬美金的代幣,出現的問題與當年The DAO的重入Bug類似。對此Sirer教授強調,此類問題對于以太坊來說是地方性的,而對于 Dapp,難以確定以不透明字節碼表示的資產是否遭受重入。因此,加密資產應以能夠防范重入的方式進行部署。在AVA的設計中資產是第一類對象(First Class Object),資產的行為由系統設定,不需要通過代碼分析來確定發送一筆資產是否會導致 Dapp 的資產被抽走。[2020/4/20]

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

txHash是0x00a3da68f0f6a69cb067f09c3f7e741a01636cbc27a84c603b468f65271d415b

聲音 | 古千峰評DAO損失1.2億美金“重入漏洞” 重現江湖:昨日,降維安全實驗室監測到,成人娛樂系統spankchain支付通道(payment channel)關聯的智能合約LedgerChannel遭到了重入攻擊,DAO損失1.2億美金的“重入漏洞” 重現江湖。

對此BTCMedia亞太區CTO古千峰給出兩點提示:1.合約開發者不能信任任何用戶提供的數據,包括但不限于public/external函數的入參,回調合約的地址等。

2.關鍵操作必須原子化, 譬如在以太幣/代幣轉賬成功后,對應賬戶的余額修改必須立即執行,假如轉賬失敗,必須通過 revert()等操作拋出異常,回滾狀態。[2018/10/11]

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

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

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

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

(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:ISMIMITIMOptimismOptimism BOBMIMIXTIME

瑞波幣
BTC:推特收集用戶隱私被罰 從隱私區塊鏈到Web 3的機遇_WEB3ALLBI價格

從去年開始,很多人討論Web 3,甚至不少區塊鏈項目都紛紛以Web 3自居,其實不少人冰沒有搞懂Web 3是什么,而最近推特因為幾年前收集用戶隱私信息獲利的事情被罰1.5億美元.

1900/1/1 0:00:00
VENT:一文速覽風投機構NGC Ventures的加密布局_turingnetw

GameFi、元宇宙、NFT的不斷火爆,吸引眾多品牌、公司及投資機構紛紛入場,其中著名的加密VC機構,以其投研化和專業化,在推動生態創新與資源合理配置方面發揮越來越大的作用.

1900/1/1 0:00:00
HTT:創始人自述:如何從零開始構建一個投資DAO?_TPS

介紹 五個月前,我一頭扎進了 NFT 的世界。一個月前,我創辦了 Spicy Duck——與其他 14 個超級大腦型的朋友一起構建的 DAO.

1900/1/1 0:00:00
PINT:金色觀察|Pantera Capital:我們為何再次投資Pintu_PINT幣

2022年6月7日,印度尼西亞加密貨幣交易所Pintu在B輪融資中籌集了1.13 億美元,投資方來自Pantera Capital、Intudo Ventures、Lightspeed Vent.

1900/1/1 0:00:00
MOC:Calamari Network 與 Karura 成功完成 XCM 跨鏈通訊_ANTA

Web3隱私保護協議 Manta Network 先行網 Calamari Network 宣布與 Acala 先行網 Karura 成功完成跨鏈資產轉賬.

1900/1/1 0:00:00
HER:"百萬富翁教父"羅伯特清崎:去中心化商業即將到來_THE

我不信任我們的領導人,美聯儲、財政部,也不信任股市。 ——羅伯特·清崎 20世紀是人類商業走向巔峰的關鍵時刻,從1900年到2000年的100年中,人類在前50年中用戰爭結束了全球的戰亂,用后5.

1900/1/1 0:00:00
ads