假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

2021-06-30 18:06:53

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

據慢霧區消息,2021 年 6 月 29 日,去中心化跨鏈交易協議 THORChain 發推稱發現一個針對 THORChain 的惡意攻擊,THORChain 節點已作出反應並進行隔離和防御。慢霧安全團隊第一時間介入分析,經分析發現,這是一起針對跨鏈系統的“假充值”攻擊,結果分享如下:

什么是“假充值”?

當我們在談論“假充值”攻擊時,我們通常談的是攻擊者利用公鏈的某些特性,繞過交易所的充值入账程序,進行虛假充值,並真實入账。

隨着 RenVM、THORChain 等跨鏈服務的興起,跨鏈節點充當起了交易所的角色,通過掃描另一條公鏈的資產轉移情況,在本地公鏈上生成資產映射。THORChain 正是通過這種機制,將以太坊上的代幣轉移到其它公鏈。

漏洞分析

我們從業務邏輯入口去追蹤分析此漏洞的成因。

首先看到在處理跨鏈充值事件時,調用了 getAssetFromTokenAddress 方法去獲取代幣信息,並傳入了資產合約地址作為參數:

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

getAssetFromTokenAddress 方法裏,我們看到它調用了 getTokenMeta 去獲取代幣元數據,此時也傳入了資產合約地址作為參數,但在此處有一個定義引起我們的警覺,在初始化代幣時,默認賦予了代幣符號為 ETH,這就是漏洞的關鍵點之一:asset := common.ETHAsset,如果傳入合約地址對應的代幣符號為 ETH,那么此處關於 symbol 的驗證將被繞過。

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

繼續驗證我們的猜測,我們看到當代幣地址在系統中不存在時,會從以太坊主鏈上去獲取合約信息,並以獲取到的 symbol 構建出新的代幣,此時所有的漏洞成因都已經顯現:

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

- bifrost/pkg/chainclients/ethereum/tokens_db.go

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

總結一下,首先是由於錯誤的定義,如果跨鏈充值的 ERC20 代幣符號為 ETH,那么將會出現邏輯錯誤,導致充值的代幣被識別為真正的以太幣 ETH

還原攻擊真相

我們來看一筆攻擊交易的執行過程,可以提取出充值的代幣合約地址:

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

我們在 Etherscan 上查看這個代幣合約地址:

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

發現這個地址對應的合約的代幣符號正是 ETH,攻擊者正是通過部署了假幣合約,完成了這次跨鏈假充值。

漏洞修復

漏洞補丁:

假幣的換臉戲法:技術拆解 THORChain 跨鏈系統“假充值”漏洞

項目方在發現攻擊後快速對代碼進行了修復,刪除了默認的代幣類型,使用 common.EmptyAsset 進行空代幣定義,並在後續邏輯中使用 asset.IsEmpty() 進行判斷,過濾了沒有進行賦值的假充值代幣。

總結

幸運的是項目方及時發現了本次攻擊,未造成巨額財產損失,但作為跨鏈系統,未來可能聚集巨額的多鏈資金,安全性不容忽視,因此慢霧安全團隊建議在進行跨鏈系統設計時應充分考慮不同公鏈不同代幣的特性,充分進行“假充值”測試,做好狀態監控和預警,必要時可聯系專業安全公司進行安全審計。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

解析五大交易所上幣:什麼賽道最受歡迎?上架效應有多強?

小 寫 Nerio 自上線幣安以來,已斬獲超 20 倍漲幅,一方面展現了幣安的上幣效應,另一方面打...

odailynews
2 7小時前

Fed降2碼》比特幣突破6.2萬、以太坊衝高2400美元,但鮑爾一句話美股收黑

比 特幣昨(18)日持續在接近 6 萬美元水平處窄幅震蕩,直到聯準會清晨兩點宣布降息兩碼之後,在三...

Joe
2 7小時前

Fed降息2碼,對加密市場有何影響、比特幣將迎新一輪大漲?

聯 準會在臺灣時間今(19)日凌晨 宣布 ,將基準利率下調 0.5 %(2 碼)至 4.75% 到...

James
2 7小時前

斯諾登 Token2049 演講:言論自由的新挑战

演講:愛德華·斯諾登 整理:善歐巴,金色財經 2024 年 9 月 18 日,曾揭露「棱鏡門」事件...

金色財經
2 7小時前

Neiro與NEIRO同上幣安,Meme幣賽道迎來轉折點?

Meme 幣 Neiro 的“大小寫之爭”再次將幣安推上風口浪尖。 但這次,幣安聯創何一的回應卻難...

星球日報
2 7小時前

美聯儲宣布降息50基點,加密市場蓄勢待漲?

4 年來,美聯儲終於在今晨會議上宣布首次降息 50 基點。沉悶已久的加密市場行情利率決議公布之後,...

星球日報
2 7小時前