hao86下載站:值得大家信賴的游戲下載站!

首頁 > 區(qū)塊鏈 > 被盜約330萬美元 跨鏈互操作協(xié)議Socket如何遭受黑客call注入攻擊?

被盜約330萬美元 跨鏈互操作協(xié)議Socket如何遭受黑客call注入攻擊?

時(shí)間:2024-01-18 11:07:30
來源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #被盜約330萬美元 跨鏈互操作協(xié)議Socket如何遭受黑客call注入攻擊?#】

來源:Beosin

2024年1月17日,據(jù)Beosin旗下EagleEye安全風(fēng)險(xiǎn)監(jiān)控、預(yù)警與阻斷平臺(tái)監(jiān)測顯示,Socket協(xié)議遭受攻擊者call注入攻擊,導(dǎo)致大量授權(quán)用戶資金被盜。目前攻擊者將被盜資金兌換為ETH,并保存在攻擊者地址上。

攻擊發(fā)生之后,Socket官方確認(rèn)被攻擊,并第一時(shí)間暫停受影響的合約。

同時(shí),MetaMask在X平臺(tái)發(fā)文稱,MetaMask Bridge用戶不受今天發(fā)生的Socket漏洞的影響。MetaMask稱設(shè)計(jì)跨鏈橋合約時(shí)采用了獨(dú)特的架構(gòu),旨在防范此類攻擊。

關(guān)于本次攻擊,Beosin安全團(tuán)隊(duì)對本次漏洞進(jìn)行了分析。

漏洞分析

該事件發(fā)生的主要原因是Socket合約的performAction函數(shù)存在不安全的call調(diào)用。如下圖,該函數(shù)的基本功能是將用戶的ETH和WETH進(jìn)行轉(zhuǎn)換,如果調(diào)用者選擇fromToken為ETH,那么將會(huì)查詢合約的toToken(WETH)余額,隨后通過call調(diào)用toToken(正常邏輯下,此處必須調(diào)用WETH的deposit函數(shù)),并轉(zhuǎn)入用戶指定的ETH數(shù)量,接下來查詢合約的toToken(WETH)新余額,如果等于轉(zhuǎn)入用戶指定的ETH數(shù)量,那么通過,并將toToken轉(zhuǎn)給調(diào)用者指定地址。如果調(diào)用者選擇fromToken不為ETH,那么與上述同理,函數(shù)功能就是將調(diào)用者的WETH兌換成ETH(正常情況下,call調(diào)用必須是調(diào)用WETH的withdraw函數(shù))并發(fā)送給用戶指定地址。

雖然函數(shù)中并沒有對fromToken與toToken進(jìn)行任何檢查限制,但是除了傳入WETH地址,其他ERC20地址都將導(dǎo)致余額檢查失敗,從而無法偽造這兩個(gè)參數(shù),間接將token地址限制為WETH。

雖然對token地址有所限制,但是該函數(shù)還存在一個(gè)問題,便是未對amount進(jìn)行限制,如果調(diào)用者傳入的amount為0,則函數(shù)的檢查條件將恒通過,并不需要調(diào)用WETH的deposit與withdraw函數(shù)。此時(shí)便可以在call中注入異常的數(shù)據(jù),從而達(dá)到攻擊的目的。

攻擊流程

明白了函數(shù)問題點(diǎn),我們來看看攻擊者是如何實(shí)施攻擊的。

1.攻擊者首先創(chuàng)建了一個(gè)攻擊合約。

2.隨后,攻擊者多次查詢不同地址的WETH余額,并且查詢該地址對于Socket: Gateway合約的授權(quán)數(shù)量,最后調(diào)用Socket: Gateway合約。

3.可以看到,這里調(diào)用performAction函數(shù)的時(shí)候,swapExtraData參數(shù)傳入的是0x23b872dd...,該數(shù)據(jù)是transferfrom的函數(shù)簽名,說明這里將直接調(diào)用token的transferfrom函數(shù)。

4.可以看到,攻擊者傳入fromToken為WETH,amount正是我們上述的0,合約將攻擊者的WETH轉(zhuǎn)入合約,但轉(zhuǎn)的是0,而在call調(diào)用中,攻擊者指定一個(gè)用戶地址向攻擊者轉(zhuǎn)了16枚WETH。

5.攻擊者通過大量操作,將無數(shù)用戶的WETH轉(zhuǎn)移給自己。

6.攻擊者使用相同的方式,將授權(quán)給該合約的USDT轉(zhuǎn)移給自己。

7.還包括WBTC、DAI以及MATIC三種代幣。

截止發(fā)稿,被盜的近330萬美元的資金,部分被攻擊者兌換為了ETH,并且一直存在黑客地址未移動(dòng),Beosin Trace將對被盜資金進(jìn)行持續(xù)監(jiān)控。

目前,互操作性協(xié)議Socket在X平臺(tái)發(fā)布安全事件更新:Socket現(xiàn)已恢復(fù)運(yùn)營,受影響的合約已暫停,損害已得到完全控制。在Bungee的橋接以及其大多數(shù)合作伙伴前端的橋接已經(jīng)恢復(fù)。詳細(xì)的事件分析和后續(xù)步驟將很快公布。

Socke提醒道:“小心回復(fù)中試圖對您進(jìn)行網(wǎng)絡(luò)釣魚的虛假Socket帳戶。在采取任何行動(dòng)之前,請務(wù)必仔細(xì)檢查帳戶?!?/strong>

本次事件也再次提醒各位,安全不可掉以輕心。

小編推薦下載

相關(guān)文章

更多>>

資訊排行

同類軟件下載