CertiK技術(shù)團隊評述:摘要:撰文:CertiK2024年1月16日,SocketTech遭到攻擊,損失約330萬美元。攻擊者利用了Socket某合約中數(shù)據(jù)驗證環(huán)節(jié)的漏洞,通過惡意數(shù)據(jù)輸入盜取了授權(quán)合約的用戶資金。接下來,第二個合約則將目標對準了受害者地址內(nèi)的WETH、USDT、WBTC、DAI與MATIC。...
2024 年 1 月 16 日,Socket Tech 遭到攻擊,損失約 330 萬美元。攻擊者利用了 Socket 某合約中數(shù)據(jù)驗證環(huán)節(jié)的漏洞,通過惡意數(shù)據(jù)輸入盜取了授權(quán)合約的用戶資金。這次攻擊共給 230 個地址帶來損失,最大的單地址損失約為 65.6 萬美元。
Socket 是一種服務(wù)于跨鏈安全、高效數(shù)據(jù)和資產(chǎn)傳輸?shù)幕ゲ僮餍詤f(xié)議。Socket Gateway 合約是與 Socket 流動性層所有交互的接入點,所有資產(chǎn)橋接器和 DEX 在此匯聚成一個唯一的元橋接器,并根據(jù)用戶偏好(如成本、延遲或安全性)選擇最佳交易路由。
黑客攻擊發(fā)生的前三天,Socket 合約管理員執(zhí)行了 addRoute 命令,在系統(tǒng)中加入了一條新路由。添加路由的目的是擴展 Socket 網(wǎng)關(guān)的功能,但卻無意中引入了一個關(guān)鍵漏洞。
事件概覽:
1.北京時間 1 月 16 日 15:03,攻擊者錢包轉(zhuǎn)入攻擊所用資金,我們的時間分析表明這筆資金來自 0xe620,與從 Tornado Cash 提取的 10 BNB 有關(guān)。
2.這些資金被用于創(chuàng)建和執(zhí)行兩個合約來利用 Socket 的漏洞。第一個合約針對的是授權(quán)了 SocketGateway 的地址中的 USDC。127 名受害者被騙走約 250 萬美元。另一個合約則將目標對準了受害者地址內(nèi)的 WETH、USDT、WBTC、DAI 與 MATIC。104 名受害者損失了大量資產(chǎn)。
漏洞來源:
被攻擊者利用的漏洞存在于新添加的路由地址 routeAddress 內(nèi)的 performAction 函數(shù)中。該地址內(nèi)的 performAction 函數(shù)原本的功能是協(xié)助 Wrapping 與 Unwrapping 的功能。然而,該函數(shù)中出現(xiàn)了一個關(guān)鍵漏洞:用戶在無需驗證的情況下,直接在.call() 中通過 swapExtraData 調(diào)用外部數(shù)據(jù),這意味著攻擊者可以執(zhí)行任意惡意函數(shù)。
還原攻擊流程:
1.使用攻擊合約,攻擊者在 Socket Gateway 合約上調(diào)用了 0x00000196()。
2.fallback() 使用六進制簽名 196 調(diào)用了有漏洞的路由地址合約(routerAddress)。
3.在下面的截圖中,我們可以看到攻擊者使用的虛假輸入,Swapping 數(shù)量全部為 0。
4.接下來將調(diào)用 WrappedTokenSwapperImpl.performAction() 進行 Swap。
5.在沒有進行任何驗證的情況下,虛假的 SwapExtraData 被 fromToken (WETH) 接受并執(zhí)行。
6.攻擊者重復(fù)執(zhí)行以上流程,直到受害者資產(chǎn)耗盡。惡意交易出現(xiàn)后,Socket 迅速調(diào)用了 disableRoute,屏蔽了之前有漏洞的路由,阻止了更大范圍的攻擊。
7.1 月 23 日,Socket 宣布已經(jīng)追回 1032 枚 ETH,并在 25 日宣布將全額補償所有損失。本次事件得到解決。
事件總結(jié):
在有著無限額用戶授權(quán)的路由合約中,惡意 calldata 攻擊并不罕見。以前類似的攻擊包括 Dexible 和 Hector Bridge。
2023 年 2 月 17 日,去中心化交易所 Dexible 被攻擊,損失超過 150 萬美元。漏洞利用者向 Dexible 的 fill() 函數(shù)輸入惡意 calldata,以竊取用戶資產(chǎn)。
2023 年 6 月 2 日,Hector 網(wǎng)絡(luò)的協(xié)議被攻擊。攻擊者部署了一個虛假的 USDC 合約,并通過惡意 calldata,將 65.2 萬枚真實的 USDC 從受害者的合約中轉(zhuǎn)移出去。
Socket 此次事件可以得到解決無疑是各方努力的結(jié)果,CertiK 也將繼續(xù)致力于為平臺提供全方位審計與檢測,降低各類聚合風(fēng)險,提高社區(qū)信任和整個行業(yè)的安全水平。