数据验证环节漏洞导致损失330万美元,详解Socket攻击事件始末
CertiK
2024-02-04 04:30
本文约1236字,阅读全文需要约5分钟
2024年1月16日,Socket Tech遭到攻击,损失约330万美元,本文详解攻击事件始末。

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

背景介紹

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

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

下圖為透過合約管理員新增路由的記錄:

圖片

事件梗概

1.北京時間1 月16 日15: 03 ,攻擊者錢包轉入攻擊所用資金,我們的時間分析顯示這筆資金來自0x e 620 ,與從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 合約上呼叫了0x 00000196()。

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 從受害者的合約中轉移出去。

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

Socket 這次事件可以解決無疑是各方努力的結果,CertiK 也將繼續致力於為平台提供全方位審計與檢測,降低各類聚合風險,提高社區信任和整個行業的安全水平。

CertiK
作者文库