【#區(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)推薦
相關(guān)文章
更多>>資訊排行
同類軟件下載
醫(yī)互鏈點(diǎn) 生活實(shí)用
海豚協(xié)議 金融理財(cái)
外匯美元 金融理財(cái)
萬特鏈 金融理財(cái)
如何繪畫 學(xué)習(xí)工具
萬鏈之家 金融理財(cái)
互互養(yǎng)老 生活實(shí)用
喵call 生活實(shí)用
Call車 旅游出行
買賣CALL 購物優(yōu)惠
熱門標(biāo)簽