數據驗證環節漏洞導致損失330萬美元 詳解Socket攻擊事件始末

2024-02-04 17:02:24

來源:CertiK中文社區

2024年1月16日,Socket Tech遭到攻擊,損失約330萬美元。攻擊者利用了Socket某合約中數據驗證環節的漏洞,通過惡意數據輸入盜取了授權合約的用戶資金。這次攻擊共給230個地址帶來損失,最大的單地址損失約為65.6萬美元。

背景介紹

Socket是一種服務於跨鏈安全、高效數據和資產傳輸的互操作性協議。Socket Gateway合約是與Socket流動性層所有交互的接入點,所有資產橋接器和DEX在此匯聚成一個唯一的元橋接器,並根據用戶偏好(如成本、延遲或安全性)選擇最佳交易路由。

黑客攻擊發生的前三天,Socket合約管理員執行了addRoute命令,在系統中加入了一條新路由。添加路由的目的是擴展Socket網關的功能,但卻無意中引入了一個關鍵漏洞

下圖為通過合約管理員添加路由的記錄:

事件梗概

1.北京時間1月16日15:03,攻擊者錢包轉入攻擊所用資金,我們的時間分析表明這筆資金來自0xe620,與從Tornado Cash提取的10 BNB有關。

2.這些資金被用於創建和執行兩個合約來利用Socket的漏洞。第一個合約針對的是授權了SocketGateway的地址中的USDC(截圖如下)。127名受害者被騙走約250萬美元。

3.接下來,第二個合約則將目標對准了受害者地址內的WETH、USDT、WBTC、DAI與MATIC。於是,另外104名受害者損失了約如下資產:

-42.48 WETH

-347,005.65 USDT

-2.89 WBTC

-13,821.01 DAI

-165,356.99 MATIC

4.攻擊者將USDC與USDT轉換成了ETH。

漏洞來源

被攻擊者利用的漏洞存在於新添加的路由地址routeAddress內的performAction函數中。

該地址內的performAction函數原本的功能是協助Wrapping與Unwrapping的功能。

然而,該函數中出現了一個關鍵漏洞:用戶在無需驗證的情況下,直接在.call() 中通過swapExtraData調用外部數據,這意味着攻擊者可以執行任意惡意函數

在這次事件中,攻擊者制作了一個惡意的swapExtraData輸入,觸發transferFrom函數。該惡意調用利用了用戶對SocketGateway合約的授權,從他們那裏盜走了資金。

雖然合約會通過檢查余額檢查確保fromToken.call()調用後用戶余額會出現正確的變化,但該函數沒有考慮攻擊者將金額設置為0的情況。

還原攻擊流程

1.使用攻擊合約,攻擊者在Socket Gateway合約上調用了0x00000196()。

2.fallback() 使用六進制籤名196調用了有漏洞的路由地址合約(routerAddress)。

3.在下面的截圖中,我們可以看到攻擊者使用的虛假輸入,Swapping數量全部為0。

4.接下來將調用WrappedTokenSwapperImpl.performAction()進行Swap。

5.在沒有進行任何驗證的情況下,虛假的SwapExtraData被fromToken (WETH)接受並執行。

6.攻擊者重復執行以上流程,直到受害者資產耗盡。惡意交易出現後,Socket 迅速調用了disableRoute,屏蔽了之前有漏洞的路由,阻止了更大範圍的攻擊。

7.1月23日,Socket宣布已經追回1032枚ETH,並在25日宣布將全額補償所有損失。本次事件得到解決。

事件總結

在有着無限額用戶授權的路由合約中,惡意calldata攻擊並不罕見。

以前類似的攻擊包括Dexible和Hector Bridge

2023年2月17日,去中心化交易所Dexible被攻擊,損失超過150萬美元。漏洞利用者向Dexible的fill()函數輸入惡意calldata,以竊取用戶資產。

2023年6月2日,Hector網絡的協議被攻擊。攻擊者部署了一個虛假的USDC合約,並通過惡意calldata,將65.2萬枚真實的USDC從受害者的合約中轉移出去。

區塊鏈聚合平臺通常通過封裝一系列橋和路由合約來提高流動性,減少損耗。然而,這種復雜的封裝會給安全性帶來更多難題。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

btc日內再次下跌 短线應當如何處理?

盡管以太坊現貨ETF獲批是個好消息,但市場反應卻不如預期。在消息公布後,以太坊價格出現了小幅下跌,...

加密蓮
65 1個月前

7月23日、BTC(合約)ETH(合約)行情分析及操作策略

昨日收益還是不錯的,日內給出的現價空單分別止盈我們目標點位,恭喜跟上的朋友喫肉。時間一晃到月底了,...

倪老師
64 1個月前

幣圈院士:血與淚的教訓!交易者為何總是撞死在同一棵樹上?

幣圈院士談。交易市場中的幾種“死法” 在幣圈市場鱗次櫛比的海洋,風起雲湧,時常讓人感到驚手不及。在...

幣圈院士
57 1個月前

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...

168超神
64 1個月前

悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤

一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...

我是周悅盈
55 1個月前

btc完美盈利 晚間波動較大注意

昨日btc空單完美給到,最大化走出一千七百點空間~ btc: 日內开盤下跌繼續測試66000一线,...

加密蓮
58 1個月前