SharkTeam:Exactly Protocol攻擊事件原理分析
SharkTeam
2023-08-23 03:24
本文约743字,阅读全文需要约3分钟
Exactly Protocol安全事件深度解析。

8 月18 日,Exactly protocol 遭遇黑客攻擊,攻擊者已獲利約1204 萬美元。 SharkTeam 對此事件第一時間進行了技術分析,並總結了安全防範手段,希望後續項目可以引以為戒,共築區塊鏈行業的安全防線。

一、 事件分析

攻擊者地址:

0x3747dbbcb5c07786a4c59883e473a2e38f571af9

0x417179df13ba3ed138b0a58eaa0c3813430a20e0

0xe4f34a72d7c18b6f666d6ca53fbc3790bc9da042

攻擊合約:

0x6dd61c69415c8ecab3fefd80d079435ead1a5b4d

被攻擊合約:

0x675d410dcf6f343219aae8d1dde0bfab46f52106

攻擊交易:

0x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e

0x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad6

0xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585

攻擊流程:

(1)攻擊者(0x417179df)先通過攻擊合約(0x6dd61c69)創建了多個惡意市場代幣合約和多個uniswapPool 合約。

(2)隨後調用被攻擊合約(0x675d410d)的leverage 函數並傳入一個惡意市場代幣地址。

(3)在leverage 函數中通過deposit 函數到pool 合約中添加USDC 和惡意市場代幣的流動性並重入到被攻擊合約(0x675d410d)的crossDeleverage 函數

(4)在crossDeleverage 函數中被攻擊合約(0x675d410d)會使用USDC 到pool 合約中兌換惡意市場代幣。

(5)函數調用完成後,攻擊合約(0x6dd61c69)移除pool 中的流動性,隨後提出兌換而來的USDC 代幣獲利。

(6) 多次循環上面的操作,每次攻擊都會更換被攻擊用戶地址和惡意市場代幣地址。

(7) 然後將獲得的USDC 發送給攻擊者(0xe4f34a72)。

(8)多次執行同樣的操作獲利

二、漏洞分析

本次攻擊利用了DebtManager(0x675d410d)合約中的漏洞,其中的leverage 函數未校驗傳入market 參數是否為可信的市場合約,導致在permit 函數修飾器中可將狀態變量_msgSender 修改為攻擊者任意的傳參地址。

最後在與pool 進行兌換時會使用用戶的exaUSDC 餘額來抵消付給pool 合約的USDC 數量。

三、 安全建議

針對本次攻擊事件,我們在開發過程中應遵循以下注意事項:

(1)在涉及到有關外部地址傳參和調用的情況下,應嚴格校驗傳參地址是否為可信地址。

(2)項目上線前,需要向第三方專業的審計團隊進行智能合約審計。

About Us

SharkTeam 的願景是全面保護Web3世界的安全。團隊由來自世界各地的經驗豐富的安全專業人士和高級研究人員組成,精通區塊鍊和智能合約的底層理論,提供包括智能合約審計、鏈上分析、應急響應等服務。已與區塊鏈生態系統各個領域的關鍵參與者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE 等建立長期合作關係。

官網:https://www.sharkteam.org

SharkTeam
作者文库