以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

0x協議漏洞原理剖析:惡意掛單可擾亂正常交易秩序_中心化交易所:去中心化交易所

Author:

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

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

背景

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

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

數據:早期買家0x025在5小時前出售2630億枚PEPE,換回22.6萬枚DAI:金色財經報道,據Spot On Chain監測顯示,早期買家0x025(之前為pepeworldorder.eth)在5小時前以0.0000008591美元的價格出售了2630億枚PEPE,換回22.6萬枚DAI,在52天后以虧損17.4萬美元(-43.4%)結束了他的第二筆PEPE交易。

盡管如此,該交易者還是從第一個周期中賺取了1414枚ETH(261萬美元)。[2023/8/31 13:08:36]

0x協議簡介

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

0xDAO:感謝Cobo團隊發現其合約漏洞:3月31日消息,Fantom生態DeFi協議0xDAO發推表示,感謝Cobo的安全團隊和聯合創始人神魚發現其合約的重大安全漏洞。Cobo回應稱,Cobo自成立以來始終秉承安全至上的原則,協同行業的各方力量構建安全環境,為行業貢獻力量。[2022/3/31 14:29:46]

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

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

0xMaki在Sushi治理論壇發起提案,建議集成Stargate跨鏈橋:3月22日消息,Sushi社區經理Tangle和Sushi前負責人0xMaki共同在Sushi治理論壇發起提案,建議讓Sushi集成Stargate以促進Omnichain原生資產建議和網絡之間的轉移。通過允許用戶在資產和網絡之間自由移動,將實現更好的跨多個網絡建議的用戶體驗,這將有助于釋放Sushi的力量。該提案表示,Stargate將幫助Sushi社區免費實現這種整合。

據悉,Stargate跨鏈橋由互操作性協議LayerZero開發,近日上線并推出SGT代幣,目前TVL已達到10.3億美元。0xMaki去年宣布離開Sushiswap,并于近日宣布加入LayerZero擔任首席戰略顧問。[2022/3/22 14:10:41]

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

DeFi巨鯨0xb1向DeBank打賞5 ETH:DeFi巨鯨用戶0xb1向DeBank的以太坊地址debanker.eth打賞5 ETH,以感謝debank資產總覽功能快速集成多個DeFi協議。

此前消息,交易員Nick Chong根據地址“0xB1AdceddB2941033a090dD166a462fe1c2029484”扒出DeFi巨鯨0xb1 ,0xb1的DeFi代幣持倉占比高達99%,該地址自創建以來幾乎每天都會進行數百筆合約交互,迄今為止該地址在交易費(gas fee)上已經花掉了價值111,000美元的以太坊。[2021/1/11 15:51:39]

漏洞原理分析

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

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

動態 | 0x v3升級提案正式通過,所有功能將于兩周后正式生效:據官方消息,0x宣布 v3協議功能升級的提案ZEIP-56已通過投票被正式通過,本次投票從11月4日持續至11月11日,共有 6,608,613ZRX參與,贊成票占99%,反對票數1%。兩周后,0x v3將聯通到0x AssetProxies 合約,這意味著v3升級的所有新功能將在各 DeFi 應用、中繼者和交易者生效。[2019/11/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去中心化交易所價格計算器去中心化交易所前三

歐易交易所app下載
2019年區塊鏈產業發展回顧及2020年展望:中國或將啟動中央銀行數字貨幣(附圖表)_比特幣:區塊鏈技術發展現狀和趨勢比特幣中國官網聯系方式

中商情報網訊:區塊鏈技術作為一種通用性術,從數字貨幣加速滲透至其他領域,和各行各業創新融合。未來區塊鏈的應用將由兩個陣營推動.

1900/1/1 0:00:00
以比特幣為首的數字貨幣市場,黑客才是最大贏家_BTC:比特幣最新價格行情走勢BTCs是不是黃了

熙熙攘攘的網絡世界里,各種便捷快速的獲利通道吸引著黑客趨之若鶩,無論線上所屬的哪個行業,只要有暴利空間存在就會引來這一群體攻擊.

1900/1/1 0:00:00
新研究:預防心臟病發作及死亡 藥物與手術效果一樣好_MAR:BitMart Coin

美國一項大規模研究顯示,與只用藥物治療相比,心臟支架手術和搭橋手術更能緩解動脈堵塞造成的心臟疼痛感,但對降低心臟病發作或與心臟病相關死亡的風險,兩種手術和藥物治療所起作用差不多.

1900/1/1 0:00:00
幣圈癲狂三年:給炒幣客“扎針”的交易所如今人心惶惶_比特幣:40億比特幣能提現嗎

小新一位回老家的朋友上周返滬,結合上海和老家的見聞,她談到,老家連菜場的阿姨都在手機里安裝了數字貨幣交易所的App,很有熱情地學習如何炒幣.

1900/1/1 0:00:00
原力協議發布“和鏈”供應鏈金融聯盟鏈解決方案_原力協議:原力協議幣是什么幣

來源:經濟日報 近日,區塊鏈金融服務平臺原力協議發布“和鏈”供應鏈金融聯盟鏈解決方案。這一方案可以有效解決傳統供應鏈金融的痛點,助推區塊鏈技術服務中小企業發展,探索創新鏈、應用鏈、價值鏈的融合,

1900/1/1 0:00:00
主流PoS挖礦幣群雄逐鹿,為何VSYS更有可能問鼎中原?_VSYS:VSYS價格ETH錢包地址

PoS挖礦會是2019年幣圈的一個重要風口,而Staking經濟則會成為幣圈一種新的商業模式,改變交易所、錢包、礦場和用戶的投資邏輯和投資習慣,成為繼比特幣PoW挖礦后的又一次財富盛宴.

1900/1/1 0:00:00
ads