買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > PEPE幣 > 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合約在校驗訂單簽名時存在缺陷,導致攻擊者可以進行惡意掛單,進而將用戶的數字資產低價賣出,擾亂正常的交易秩序。

0x316地址在過去3天內總共使用25萬美元買入17.72萬枚LBR:金色財經報道,據Spot On Chain監測顯示,0x316地址在2小時前以平均1.514美元的價格買入9.907萬LBR(15萬美元),隨后價格上漲 4%。該地址在過去3天內總共使用25萬美元買入17.72萬枚LBR。每次買入后,LBR的價格都會飆升,該地址目前仍持有全部,現值26.7萬美元。

此外,地址0x316也從兩個流行的meme coin賺取了總計約28.9萬美元:從7月24日到7月28日,將9500萬枚RSR (18.8萬美元) 兌換為 2.53億枚RLB (現價值46.1萬美元),從8月10日起,將7.5萬枚USDT兌換為74萬枚BITCOIN(現價值9.1萬美元)。[2023/8/12 16:22:04]

0x協議簡介

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

巨鯨“0xe8c1”在GMX上做空以太坊和比特幣,當前浮盈已達1200萬美元:3月11日消息,Lookonchain監測數據顯示,加密巨鯨“0xe8c1”在GMX上做空以太坊和比特幣,當前浮盈已達到1200萬美元。

歷史數據顯示,該巨鯨在四個月前開始在GMX進行交易,總交易量為45筆,其中獲利交易達到27筆,勝率高達60%,已實現盈利超過534萬美元。[2023/3/11 12:56:28]

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

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

0xD275開頭地址從Bitfinex取出近12萬枚ETH,并通過Aave借出8000萬枚USDC:金色財經報道,Etherscan數據顯示,0xD275開頭地址收到標記為“Bitfinex熱錢包”的地址轉出的超過117,872枚ETH,隨后該地址在Aave上借出8000萬枚USDC。[2022/11/21 7:52:33]

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

漏洞原理分析

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

0xMaki:計劃未來幾個月在Polkadot推出跨鏈SushiSwap:12月16日消息,SushiSwap的聯合創始人0xMaki表示,SushiSwap計劃在未來幾個月里在Polkadot平臺推出。他稱,“如果你在9月底獲得LP,6個月后你還有三分之二的獎勵可用,當我們在Polkadot上推出時你會收到moonSushi。”(Cryptoslate)[2020/12/16 15:22:03]

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

分析 | 0xeba開頭地址清空18.7萬個ETH:據searchain.io數據顯示,今日13:33,0xeba開頭的錢包地址向0x0bf開頭的錢包地址單筆轉入186,964個ETH,折合約37,953,692美元。金色財經分析師發現,0xeba開頭的是一個創建于16年9月的地址,期間一直接收大額ETH的轉賬,僅此次一筆,清空其賬戶所有ETH。至于0x0bf開頭的地址,為今日新建地址。金色財經分析師認為,此次大額轉賬為大戶在遷移代幣,仍需做進一步追蹤。[2018/10/25]

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

組裝簽名具體字段為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去中心化交易所價格計算器去中心化交易所前三

PEPE幣
加密貨幣:一個午宴而已 卻搞得高潮迭起_區塊鏈技術發展現狀和趨勢加密貨幣是什么意思啊

6月4日,孫宇晨發微博稱拍下巴菲特午宴,點燃了大眾看熱鬧的熱情。一個是幣圈炒作高手,一個是價值投資的旗幟,越是不搭,越有看頭.

1900/1/1 0:00:00
BTC:多只貨幣基金修改支付方式為對接互金平臺做準備_NCE

來源:證券時報 今年以來,貨幣基金收益率一路走低,不過,貨幣基金進軍互聯網金融平臺的步伐并未停歇。近期,多只貨幣基金調整收益支付方式,修改基金合同,為對接互聯網平臺做準備.

1900/1/1 0:00:00
CDP:以太坊又堵又跌,做DeFi根本行不通?_DAI幣

近幾日以太坊價格的下跌表明了MakerDAO、DAI以及以此為基礎構建的DeFi生態系統的高度依賴性和弱點.

1900/1/1 0:00:00
NFT:永生說錢系列:我國是最早鑄造使用金屬貨幣的國家嗎?_元宇宙

很多書里都說:我國是世界上最早發明使用紙幣的國家,同時也是最早鑄造使用金屬鑄幣的國家之一。我國是世界上最早發明使用紙幣的國家,世人都無疑義.

1900/1/1 0:00:00
AVE:代銷外幣“連體鈔” 收保證金詐騙數十萬,被告人受審時當庭翻供_Aave BAT

以代為銷售未經裁切的外幣“連體鈔”為由,小郭通過支付保證金、手續費、中介費等借口,從馬阿姨手中騙取了52萬余元。前后被騙支付了14筆費用后,馬阿姨才幡然醒悟。今天上午,本案在石景山法院審理.

1900/1/1 0:00:00
GDP:什么事,讓新聞聯播主播海霞只能“呵呵”兩聲_GDPGDP幣

來源:央視網 又見“呵呵”體,這一次是什么事讓我們主播海霞只能“呵呵”兩聲呢?一起接著往下看 網友如何看? 美國絕活:顛倒黑白 思考人生的單刀:我也呵呵兩聲顧名思義:對美國.

1900/1/1 0:00:00
ads