🔥 距離 Gate.io WCTC S7 正式開賽僅剩 7 天
世界加密貨幣交易大賽即將開啓,總獎池高達 $5,000,000
👉🏻 立即報名:https://gate.io/competition/wctc/s7?pid=APP&c=moments_gatePost&ch=druYjDaF
報名參賽,不僅有機會贏取高達百萬美元的個人獎勵,更有 Gate.io 專屬週邊大禮等你來拿
全球頂尖交易員正在集結,一場交易盛宴即將開啓
🔗 活動詳情: https://www.gate.io/announcements/article/44440
SharkTeam:Tornado.Cash 提案攻擊原理分析
撰文:SharkTeam
北京時間2023 年5 月20 日,Tornado.Cash 遭受提案攻擊,攻擊者已獲利約68 萬美元。 SharkTeam 對此事件第一時間進行了技術分析,並總結了安全防範手段,希望後續項目可以引以為戒,共築區塊鏈行業的安全防線。
一、事件分析
攻擊者地址:
0x092123663804f8801b9b086b03B98D706f77bD59
0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9
攻擊合約:
0xAF54612427d97489707332efe0b6290F129DbAcb
0x03ecf0d22f9ccd21144a7d492cf63b471916497a
0x7dc86183274b28e9f1a100a0152dac975361353d(部署合約)
0xc503893b3e3c0c6b909222b45f2a3a259a52752d(假提案合約)
被攻擊合約:
0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce
發起提案交易:
0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d
攻擊交易:
0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d
攻擊流程:
(1)首先,攻擊者(0x08e80ecb)先向被攻擊合約(0x5efda50f)發起了一個提案,並宣稱此提案是16 號提案的補充
(2)但提案中實際上存在一個額外的自毀函數。
(3)很遺憾的是社區並沒有發現此提案中存在問題,大多數成員都投票通過了這次提案。
(4)攻擊者創建了很多個合約來實行代幣的轉移
(5)攻擊者(0x08e80ecb)銷毀了提案合約(0xc503893b)和他的創建合約(0x7dc86183)。隨後在相同的地址重新部署了攻擊合約(0xc503893b)。
(6)修改完提案合約後,攻擊者(0x08e80ecb)執行提案並將自己所控制的合約地址的代幣鎖定量都修改為10000。
(7)提案執行完成後,攻擊者(0x08e80ecb)將代幣轉移到自己的地址,並獲得被攻擊合約的所有權。
漏洞分析:由於提案合約(0xc503893b)的創建合約(0x7dc86183)是通過creat2 進行部署的,所以兩個合約銷毀之後,在同一地址上可以部署新的邏輯合約,並且提案執行是通過delegatecall 的形式調用,攻擊合約可任意修改被攻擊合約中的值。
事件總結:本次事件發生原因是由於社區在檢查提案時未能發現提案中存在的風險,並沒有認真核實提案合約的代碼是否存在安全漏洞。
二、安全建議
針對本次攻擊事件,我們在開發過程中應遵循以下注意事項: