猖獗黑客“薅”交易所羊毛? FTX交易所遭到Gas竊取攻擊事件分析

2022年10月13日,據據Beosin EagleEye Web3安全預警與監控平台的輿情消息,FTX交易所遭到gas竊取攻擊,黑客利用FTX支付的gas費用鑄造了大量XEN TOKEN。

金色財經邀請Beosin安全團隊第一時間對事件進行了分析,結果如下:

1、事件相關信息

其中一部分攻擊交易:

0xc96b84cd834655290aa4bae7de80a3c117cc19d414f5bcf2fb85b8c5544300890x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d690x6bada8e084f8d3b62311f0b6eda10f2690e7542dab75a0de436a640036bccf94

其中一個攻擊者地址0x1d371CF00038421d6e57CFc31EEff7A09d4B8760其中一個攻擊合約0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3被攻擊地址0xC098B2a3Aa256D2140208C3de6543aAEf5cd3A94(FTX熱錢包地址)

2、攻擊流程

以其中一筆攻擊交易為例(0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69)
第一步,攻擊者先在鏈上部署攻擊合約(0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3)
第二步,FTX熱錢包地址會向攻擊合約地址轉入小額的資金,利用攻擊合約(0xCba9…7FD3)進行批量創建子合約。由於整個攻擊中創建了大量合約,並且每次執行完子合約之後,子合約都會自毀,所以以下圖為例部分展示。

V268DNQ4qOZ44zD6ks26uuIf8ZEcPjFWiDoy7Vl9.png 第三步,接下來子合約fallback()函數去向Xen合約發起鑄幣請求,如下函數,claimRank()函數傳入一個時間期限(最小1天)進行鑄幣,鑄幣條件是只用支付調用gas費,並無其他成本,並且claimMintRewardAndShare()函數為提取函數,該函數只判斷是否達到時間期限(本次黑客設置的時間期限為最小值1天),便可無條件提取到任何非零地址。但在此次調用過程中,交易發起者為FTX熱錢包地址,所以整個調用過程的gas都是由FTX熱錢包地址所支付,而Xen鑄幣地址為攻擊者地址。

HmiRpdj39BO78rAX7x4PQpTGCj7ElNMyTD7aJVTW.png

AP8oNNr22zyczh2c7z6QotAY37NxOJL5MucUY6it.pnggwFFmTeLfJz1LpbFzrRaDrXxGkgTDS7Eu1jrq8QG.png

bEbKbEI1BwMf7JO9ouVLY2CAzc6wGTv6rLRILXwH.png

前三個步驟,重複多次,並且每次重複過程中都會將已到期的代幣提取出來,並且同時發起新的鑄幣請求,黑客達成他的目標。

3、漏洞分析

本次攻擊主要利用了FTX項目沒有對接收方為合約地址進行任何限制,也沒有對ETH的gas Limit進行限制,導致攻擊可以利用合約來鑄造XEN代幣進行獲利。
截止發文時,Beosin安全團隊通過Beosin Trace對被盜資金進行追踪分析,FTX交易所損失81ETH,黑客通過DODO,Uniswap將XEN Token換成ETH轉移。
4PDqXUOXODQcyfKoPTVwi9OtE8DD6HNBKkjcmEBl.png

Beosin Trace資金追踪圖

4、事件總結

針對本次事件,Beosin安全團隊建議:
1.對錢包接收為合約的地址進行限制。 2.對業務中存在gas風險的業務對gas limit進行足夠小的限制。

Total
0
Shares
Related Posts