以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 比特幣 > Info

DEX:0x協議漏洞原理剖析:惡意掛單可擾亂正常交易秩序

Author:

Time:1900/1/1 0:00:00

昨天,去中心化交易所協議0x項目方稱其發現嚴重安全漏洞。PeckShield安全人員跟進分析發現,0xExchange合約在校驗訂單簽名時存在缺陷,導致攻擊者可以進行惡意掛單,進而將用戶的數字資產低價賣出,擾亂正常的交易秩序。所幸項目方及時發現并修復問題,截至目前,尚未有真實攻擊發生,并沒有產生數字資產損失。

背景

北京時間2019年07月13日,去中心化交易所0x協議項目方稱其發現嚴重安全漏洞,并緊急關閉了0xExchangev2.0合約,隨后部署了修復后的合約。受此影響,基于0x協議的交易所及錢包,包括RadarRelay,Tokenlon,StarBit等緊急暫停了相關交易服務。

PeckShield安全人員跟進分析發現,0xExchange合約在校驗訂單簽名時存在缺陷,導致攻擊者可以進行惡意掛單,進而將用戶的數字資產低價賣出,擾亂正常的交易秩序。

0xSwap API與Matcha已集成Liquidity Book:5月15日消息,去中心化交易平臺Trade Joe發推稱,去中心化交易基礎設施0xSwap API與DEX聚合器Matcha已集成集中性AMM Liquidity Book,交易員可在Arbitrum與Avalanche上體驗低成本與零滑點交換,即將支持BNBChain。[2023/5/15 15:02:57]

0x協議簡介

0x協議是一個基于以太坊的開放協議,實現鏈上資產的點對點交易。它期望在以太坊上創建一種標準協議,使得任何人能夠基于此協議運行去中心化交易所,實現以太坊上的代幣之間的交易。0x協議上的交易特點是鏈下訂單撮合,鏈上結算,其中為用戶交易提供訂單服務的參與者稱為中繼者。0x項目發行了自己的代幣ZRX,一方面作為去中心化治理投票權的證明,同時也被作為交易服務費,用于建立在0x協議之上的中繼者提供服務的收益。

Cream Finance攻擊者已將50萬枚DAI換成ETH并轉移到0xdeCE開頭的地址:金色財經報道,據派盾預警監測,Cream Finance閃電貸攻擊者已將50萬枚DAI換成278.71枚ETH,并將其轉移到標記為中介的0xdeCE...3c3的地址。

此前今日上午報道,Cream Finance攻擊者將100萬枚DAI換成555.4枚ETH并轉至TradeOgre。

此前去年10月消息,DeFi協議Cream Finance遭閃電貸攻擊,損失超1.3億美元。[2023/3/22 13:19:38]

0x協議受到不少去中心化交易所和錢包的青睞,從Etherscan的DEX過去七天交易份額的餅圖中能看到,排名靠前的RadarRelay和Tokenlon都是基于0x協議:

跨鏈橋Wormhole向白帽黑客satya0x支付1000萬美元漏洞賞金:金色財經消息,跨鏈橋Wormhole今日發布博客表示,在2月24日,化名satya0x的白帽黑客披露了以太坊Wormhole核心橋接合約中的一個嚴重漏洞,這個錯誤是一個可升級的代理實現自毀錯誤,有助于防止潛在的用戶資金鎖定。

Wormhole在報告的同一天驗證并修復了問題,沒有任何用戶資金損失。為此,Wormhole向satya0x支付了創紀錄的1000萬美元的漏洞賞金。[2022/5/21 3:31:33]

另外,從DAppTotal的DEX24小時交易額排名中也能看到它們的排名:

由于Ethereum平臺上大量的DEX都使用了0x協議,而作為最根本的TokenTranfer主合約出問題,這對于整個DEX領域來說,都是比較重大的事件。

Polygon、0x提供1050萬美元以推動以太坊DeFi開發者:金色財經報道,去中心化交換協議0x和以太坊可擴展性平臺Polygon背后的團隊今天宣布,他們將斥資1050萬美元以使更多用戶使用Polygon網絡。該資金旨在使開發人員更容易通過以太坊在Polygon上構建DeFi基礎設施。[2021/6/11 23:29:07]

漏洞原理分析

本次漏洞共涉及isValidWalletSignature和isValidValidatorSignature兩個相似的漏洞,由于兩者出問題的代碼是相似的,本文只以前者為例說明。

isValidWalletSignature(bytes32,address,bytes)函數用于驗證給定的Wallet合約所定義的簽名信息與給定的簽名是否一致,用于確保Order是由正確的Maker/Taker執行的交易。但是0xExchange合約在驗證的過程中,存在著比較嚴重的問題:

動態 | 去中心化交易協議 0x 出現漏洞,暫無資金損失但合約已被停用:去中心化交易協議 0x 的創始人 Will Warren 今日發布博客稱 0x v2.0 Exchange 合約中出現漏洞,目前團隊已經暫停該合約使用,尚未發現造成財產損失。不過這也意味著當前部署的 0x 合約目前不能處理交易,也不能使用。目前團隊正在檢查其他已經發布的智能合約,確保其他合約并沒有出現同類型漏洞。Will Warren指出,這一漏洞并不會影響ZRX代幣,因此用戶不必擔心出現資產損失。據悉:0X 是一種基于以太坊的開源協議,用于去中心化的交易。 該交易由以太坊智能合約系統執行,允許公開訪問,目前是免費使用,任何DApp都可以連接該合約。[2019/7/13]

上圖是這一函數的全部邏輯,分為兩部分:

組裝簽名具體字段為ABI編碼格式;根據組裝的ABI編碼內容計算簽名值正確性。其中,第2步的邏輯,在0xv2合約代碼中是用匯編實現的:

引入cdStart指針,指向calldata中對應的位置;對WalletAddress調用staticcallOpCode計算簽名正確性,注意觀察代碼,其中的input和output都為cdStart這一指針,即復用input/output的內存;檢驗步驟2.2中的結果是否正確。WalletAddress為合約的前提下,這樣子的流程沒有問題。先來看下EVM中合約的執行流程是怎樣的,PeckShield安全人員查閱EVM源碼的時候發現:

當被調用的合約沒有code,也就是EOA賬號的情況下,什么都沒有的執行,直接返回。因此,對應到isValidWalletSignature(bytes32,address,bytes)函數來說,其中的cdStart所對應的內存內容在調用staticcall前后并沒有變化,而后面在判斷簽名是否正確的isValid取值的時候,也就取到了錯誤的值。

用戶通過fillOrder(Order,uint256,bytes)函數完成Token買賣,PeckShield安全人員發現,這一函數的三個參數可以由用戶自由配置:

分別為:

代表訂單信息的Order類型;用戶為此訂單付出的Token數量;Order對應的簽名信息signature其中比較關鍵的是Order及對應的signature信息的一致性正是通過上面的isValidWalletSignature類函數校驗,因此,當攻擊者精心構造signature為SignatureTypeWallet時,可『跳過』簽名合法性檢查,從而使得用戶在不經意之間被惡意掛單,從而被攻擊者順利吃單,由于這一訂單信息是由攻擊者直接傳入合約的,因此這一訂單信息在線下的中繼者也無法查詢。

漏洞影響分析

基于上述分析發現,曾在0x協議Exchange上做過授權轉賬的普通用戶帳號都將受到影響:

攻擊者可偽造用戶掛單,低價獲得用戶代幣。

鑒于此安全漏洞的危害性,PeckShield安全人員發現0x項目方在漏洞被發現的時候先緊急關閉了0xExchangev2.0合約的Tokentransfer功能,將所有的ERC20、ERC721、以及MultiAsset的Transfer功能全部下線;隨后部署了修復后的合約,同時告知用戶及使用了0xExchange的所有DEX及Relayer,相關的遷移升級工作正在進行中。受此影響,基于0x協議的交易所及錢包,包括RadarRelay,Tokenlon,StarBit等緊急暫停了交易服務。

PeckShield安全人員通過漏洞特性分析鏈上數據發現,從0xExchange2018-09上線至今,并沒有因此安全漏洞造成的用戶直接資產損失。

對于使用了0x的DEX及錢包來說,當前的階段需要暫停交易服務,如無法暫停交易服務的話,可將對應的0xExchange合約地址變更為當前已經修復的合約地址。

結語

0x協議本次出現漏洞的合約代碼,主要是內聯匯編代碼編寫簽名驗證功能出現的問題,直接編寫匯編代碼雖然在編譯器無法優化合約代碼的情況下非常有用,可控性更強且能提高執行效率,減少Gas消耗,但是編寫Solidity匯編代碼需要對EVM運行機制有非常熟悉的理解,不然EVM的某些特性可能導致編寫的合約無法正常運行,同時也缺少了Solidity提供的多種安全機制。

PeckShield安全人員在此提醒廣大開發者及時排查合約的相關代碼,避免類似問題可能造成的安全風險,對于DEX等DeFi類項目,項目方在上線前需要找有資質的安全公司審計安全風險。

Tags:DEX去中心化交易所中心化交易所DEX幣DEX價格去中心化交易所違法嗎LFG去中心化交易所去中心化交易所英文單詞去中心化交易所算證券么dex去中心化交易所價格計算器去中心化交易所前三

比特幣
nem:9月VR/AR行業投融資報:全球完成16筆,總金額超75億人民幣

據統計,本月全球的投融資筆數,國內外共計完成16筆,國內占3筆、國外占13筆;全球總融資額超75億人民幣,國內共計1.1億人民幣、國外累計10.3億美元.

1900/1/1 0:00:00
ICON:推特網友發現Apple新圖標集添加比特幣符號

圖片版權所屬:站長之家據bitcoinist報道,6月3日,網友@brandnanthny在推特上表示,Apple的新圖標集(ICONSET)包括比特幣符號.

1900/1/1 0:00:00
ALA:魔獸世界納沙塔爾稀有古樹彩蛋 還可獲得保鏢經驗和聲望道具

在新地圖納沙塔爾中有四棵隱藏精英古樹:奧洛努、柳藻、烏爾杜、阿尼莫納。在未激活時這些古樹就像是地圖飾物般不可被選中,每棵古樹都需要通過特定方式激活,激活后每棵古樹大約有500+萬的血.

1900/1/1 0:00:00
比特幣交易:被邊控、被全球流放,交易所創始人是幣圈最危險職業

一周前,波蘭第二大加密貨幣交易所Bitmarket的共同所有人TobiasNiemiro頭部中槍,死在了自己的故鄉;7月中旬,因美國商品期貨委員會調查.

1900/1/1 0:00:00
API:「翻譯轉載」無所不在的連接為何至關重要

摘要: 紅茶移動欄目內容覆蓋通信、蜂窩網絡連接、物聯網、5G等TMT領域,旨在為行業及客戶提供一個了解學習交流優質英文文章的窗口.

1900/1/1 0:00:00
BOSS:東非6國之烏干達觀感

到烏干達主要是出差,最近幾年每年總要去那么幾次,每次去都感覺不一樣,他們這幾年發展挺快的。但是每次去到后發現他們的人民都是發自內心的微笑,感覺烏干達人民是東非幾個國家里面幸福感最強的.

1900/1/1 0:00:00
ads