比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > XMR > Info

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

Author:

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

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

背景

北京時間2019年07月13日,去中心化交易所0x協議項目方稱其發現嚴重安全漏洞,并緊急關閉了0xExchangev2.0合約,隨后部署了修復后的合約。受此影響,基于0x協議的交易所及錢包,包括RadarRelay,Tokenlon,StarBit等緊急暫停了相關交易服務。PeckShield安全人員跟進分析發現,0xExchange合約在校驗訂單簽名時存在缺陷,導致攻擊者可以進行惡意掛單,進而將用戶的數字資產低價賣出,擾亂正常的交易秩序。0x協議簡介

數據:0xFC9開頭巨鯨地址于2小時前從Binance提幣74.4萬枚RNDR、102萬枚MATIC:7月17日消息,據Lookonchain監測,0xFC9開頭巨鯨地址于2小時前從Binance提幣744,762枚RNDR(約合147萬美元)和102萬枚MATIC(約合79.3萬美元)。據悉,該地址過去十筆交易總共導致其實現約280萬美元虧損。目前仍持有265萬枚RNDR(約合524萬美元)、977萬枚FET(約合238萬美元)。[2023/7/17 11:00:09]

0x協議是一個基于以太坊的開放協議,實現鏈上資產的點對點交易。它期望在以太坊上創建一種標準協議,使得任何人能夠基于此協議運行去中心化交易所,實現以太坊上的代幣之間的交易。0x協議上的交易特點是鏈下訂單撮合,鏈上結算,其中為用戶交易提供訂單服務的參與者稱為中繼者。0x項目發行了自己的代幣ZRX,一方面作為去中心化治理投票權的證明,同時也被作為交易服務費,用于建立在0x協議之上的中繼者提供服務的收益。0x協議受到不少去中心化交易所和錢包的青睞,從Etherscan的DEX過去七天交易份額的餅圖中能看到,排名靠前的RadarRelay和Tokenlon都是基于0x協議:

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]

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

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

本次漏洞共涉及isValidWalletSignature()和isValidValidatorSignature()兩個相似的漏洞,由于兩者出問題的代碼是相似的,本文只以前者為例說明。isValidWalletSignature(bytes32,address,bytes)函數用于驗證給定的Wallet合約所定義的簽名信息與給定的簽名是否一致,用于確保Order是由正確的Maker/Taker執行的交易。但是0xExchange合約在驗證的過程中,存在著比較嚴重的問題:

0xScope:某EOA地址現持有約5900萬枚ARB,或為Upbit熱錢包地址:3月31日消息,Web3知識圖譜協議0xscope在社交媒體上發文表示,某EOA地址在過去一日內收集了大量ARB,目前已持有約5900萬枚,價值約合8440萬美元。0xScope補充表示,據活動數據顯示,0xScope認為該地址可能是Upbit熱錢包地址,若推測是正確的,那么Upbit平臺持有的ARB數量將僅次于Binance。

此前報道,韓國加密交易平臺Upbit昨日表示將上線ARB,設有ARB/KRW以及ARB/BTC交易對,計劃于北京時間3月30日14:00開始交易。[2023/3/31 13:37:05]

上圖是這一函數的全部邏輯,分為兩部分:組裝簽名具體字段為ABI編碼格式;根據組裝的ABI編碼內容計算簽名值正確性。其中,第2步的邏輯,在0xv2合約代碼中是用匯編實現的:引入cdStart指針,指向calldata中對應的位置;對WalletAddress調用staticcall()OpCode計算簽名正確性,注意觀察代碼,其中的input和output都為cdStart這一指針,即復用input/output的內存;檢驗步驟2.2中的結果是否正確。WalletAddress為合約的前提下,這樣子的流程沒有問題。先來看下EVM中合約的執行流程是怎樣的,PeckShield安全人員查閱EVM源碼的時候發現:

0xScope:某地址將200萬枚SAND轉入Binance,過去數日已合計轉入800萬枚:12月28日消息,0xScope鏈上監測數據顯示,某地址在半小時前將200萬枚SAND(約82萬美元)轉入了Binance。據悉,這筆SAND是該地址在12天前收到的1000萬枚SAND中的一部分,該地址已將1000萬枚SAND中的800萬枚轉移到了Binance,地址內尚余有最后200萬枚SAND。

同期,SAND的價格從0.58美元跌到了0.41美元。[2022/12/28 22:12:50]

當被調用的合約沒有code,也就是EOA賬號的情況下,什么都沒有的執行,直接返回。因此,對應到isValidWalletSignature(bytes32,address,bytes)函數來說,其中的cdStart所對應的內存內容在調用staticcall()前后并沒有變化,而后面在判斷簽名是否正確的isValid取值的時候,也就取到了錯誤的值。用戶通過fillOrder(Order,uint256,bytes)函數完成Token買賣,PeckShield安全人員發現,這一函數的三個參數可以由用戶自由配置:

Coinfirm:以太坊首個被挖出ETH流向0x05開頭地址:區塊鏈分析和反洗錢公司Coinfirm最近發現以太坊首個區塊挖出的ETH流入地址是0x05a56e2d52c817161883f50c441c3228cfe54d9f,該地址共收到5枚ETH付款,之后隨著時間的推移,這個地址一共累積了265.63 ETH。自第一個區塊開采出來之后,以太坊在網絡和資產價格方面已經發生重大變化,現在正朝ETH 2.0邁進。本文撰寫時,ETH價格已經突破350美元,為353.13美元,24小時漲幅6.49%,市值達395.48億美元。[2020/8/1]

分別為:代表訂單信息的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:CHA0x協議ALLXCHCHAL價格minifootball幣燃燒嗎IndexChain

XMR
為什么比特幣萊特幣會有“減半”這件事?_比特幣

圈內有這么一種說法“比特金,萊特銀”,萊特幣的地位可見一斑。而且不止萊特幣,明年比特幣也會迎來減半,那么比特幣和萊特幣為什么要有“減半”這件事呢?萊特幣減半之后有什么變化呢?我們今天跟大家講一講.

1900/1/1 0:00:00
海外周報 | 美國監管機構或將對加密貨幣出臺新規定;MakerDAO欲將穩定費率下調至18.5%(7.22—7.28)_加密貨幣

Odaily星球日報出品作者|王也編輯|盧曉明 海外重磅播報 美國財長:美國監管機構或將對加密貨幣出臺新規定美國財長StevenMnuchin表示,美國監管機構可能會對加密貨幣出臺新規定.

1900/1/1 0:00:00
保險巨頭安聯開發代幣支付,梳理其五年區塊鏈布局之路_ITA

文|周文怡編輯|Tong來源|PANews近日,據《福布斯》報道,德國保險業巨頭安聯全球企業及特殊風險有限公司正在開發一種基于代幣的區塊鏈,該系統有望簡化企業客戶的國際保險支付流程.

1900/1/1 0:00:00
看上了中國的“韭菜”?Polkadot瘋狂中國行背后的真相_DOT

2019年上半年瘋狂的1EO熱潮退去之后,跨鏈技術已經在蓄力其中。今年被稱為是“跨鏈元年”,Staking經濟快速崛起,Cosmos和Polkadot兩個跨鏈項目鋒芒畢露,業內大量的極客和投資者.

1900/1/1 0:00:00
Libra聽證會第二場:Calibra短期不考慮盈利,槍口直指支付寶、微信支付_CEB

編者按:本文來自鏈得得,編輯:肆歌,Odaily星球日報經授權轉載。美東時間7月17日上午10點,關于Facebook的加密貨幣項目Libra的眾議院聽證會如期舉行.

1900/1/1 0:00:00
區塊鏈的騙子是更高級的空手套_RAM

區塊鏈項目宣傳、造勢、營銷非常重要,好的營銷能帶來更大的市場聲量、更多的關注,更多的關注意味著更多的潛在用戶、二級市場更多的潛在購買者、更好的流動性,營銷的重要性無可否認.

1900/1/1 0:00:00
ads