宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 非小号 > 正文

0x协议漏洞原理剖析:恶意挂单可扰乱正常交易秩序

作者:

时间:1900/1/1 0:00:00

昨天,去中心化交易所协议0x项目方称其发现严重安全漏洞。PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资产低价卖出,扰乱正常的交易秩序。所幸项目方及时发现并修复问题,截至目前,尚未有真实攻击发生,并没有产生数字资产损失。

背景

北京时间2019年07月13日,去中心化交易所0x协议项目方称其发现严重安全漏洞,并紧急关闭了0xExchangev2.0合约,随后部署了修复后的合约。受此影响,基于0x协议的交易所及钱包,包括RadarRelay,Tokenlon,StarBit等紧急暂停了相关交易服务。PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资产低价卖出,扰乱正常的交易秩序。0x协议简介

0x推出用于链上治理的新智能合约系统ZEIP:2月21日消息,去中心化交易基础设施0x将推出用于完全链上绑定治理的新智能合约系统ZEIP。ZEIP可以完全控制0x协议、金库和治理,并计划推出在0x协议治理中激励积极的链上投票参与(单独和委托)的正式计划。

此外还将推出0x协议安全理事会,并计划推出0x协议Grants,更新并扩大0x协议的成功实验,以帮助管理社区拥有的金库,旨在使0x协议成为全球价值交换的标准结算层。[2023/2/21 12:18:31]

0x协议是一个基于以太坊的开放协议,实现链上资产的点对点交易。它期望在以太坊上创建一种标准协议,使得任何人能够基于此协议运行去中心化交易所,实现以太坊上的代币之间的交易。0x协议上的交易特点是链下订单撮合,链上结算,其中为用户交易提供订单服务的参与者称为中继者。0x项目发行了自己的代币ZRX,一方面作为去中心化治理投票权的证明,同时也被作为交易服务费,用于建立在0x协议之上的中继者提供服务的收益。0x协议受到不少去中心化交易所和钱包的青睐,从Etherscan的DEX过去七天交易份额的饼图中能看到,排名靠前的RadarRelay和Tokenlon都是基于0x协议:

泰国暹罗商业银行旗下SCB 10X任命Mukaya Panich担任新CEO以领导加密投资业务:8月4日消息,泰国暹罗商业银行(SCB)旗下风投部门、SCB集团的控股公司SCB 10X表示,已任命其首席风险和投资官Mukaya Panich接替前首席执行官Arak Sutivong,Panich将负责领导Web3、DeFi和区块链投资。

SCB 10X称,Panich还将继续担任首席投资官。SCB10X还表示,已将其合作伙伴兼战略规划负责人Pailin Vichakul提升为首席运营官。(Blockworks)[2022/8/4 12:01:55]

另外,从DAppTotal的DEX24小时交易额排名中也能看到它们的排名:

由于Ethereum平台上大量的DEX都使用了0x协议,而作为最根本的TokenTranfer主合约出问题,这对于整个DEX领域来说,都是比较重大的事件。漏洞原理分析

0x4093开头地址在Aave上偿还696万USDT,并将5500枚ETH转至币安:7月18日消息,据派盾监测,0x4093开头地址(0x4093FBe60aB50AB79a5Bd32Fa2adEC255372f80E)已经在Aave上偿还约696万USDT,同时取出约5500枚ETH(约750万美元)并转至币安。[2022/7/18 2:20:09]

本次漏洞共涉及isValidWalletSignature()和isValidValidatorSignature()两个相似的漏洞,由于两者出问题的代码是相似的,本文只以前者为例说明。isValidWalletSignature(bytes32,address,bytes)函数用于验证给定的Wallet合约所定义的签名信息与给定的签名是否一致,用于确保Order是由正确的Maker/Taker执行的交易。但是0xExchange合约在验证的过程中,存在着比较严重的问题:

BitMEX母公司100x集团任命詹伟坚为独立非执行董事:2月1日消息,加密货币衍生品交易所BitMEX母公司100x集团任命詹伟坚为100x集团的独立非执行董事,以及最近任命首席执行官AlexanderH?ptner在今天一同加入董事会。詹伟坚具有30多年的国际银行业务、公司治理、风险管理和合规经验,他曾在渣打银行、中国银行和德意志银行等大型金融机构担任高级职务。[2021/2/1 18:37:01]

上图是这一函数的全部逻辑,分为两部分:组装签名具体字段为ABI编码格式;根据组装的ABI编码内容计算签名值正确性。其中,第2步的逻辑,在0xv2合约代码中是用汇编实现的:引入cdStart指针,指向calldata中对应的位置;对WalletAddress调用staticcall()OpCode计算签名正确性,注意观察代码,其中的input和output都为cdStart这一指针,即复用input/output的内存;检验步骤2.2中的结果是否正确。WalletAddress为合约的前提下,这样子的流程没有问题。先来看下EVM中合约的执行流程是怎样的,PeckShield安全人员查阅EVM源码的时候发现:

暹罗商业银行旗下风投SCB 10X涉足DeFi领域:泰国最大商业银行Siam Commercial Bank(暹罗商业银行)的风险投资部门SCB 10X正在为Alpha Finance Labs提供支持,以吸引DeFi的新用户。Alpha Finance Labs的第一个DeFi产品“Alpha Homora”可利用用户在收益耕作池中的头寸。据悉,SCB 10X还曾投资过Ripple和BlockFi。(Decrypt)[2020/10/29]

当被调用的合约没有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类项目,项目方在上线前需要找有资质的安全公司审计安全风险。

标签:0x协议ALLCHASCBitokenwallet授权tchain币上线哪些交易所BSCB价格

非小号热门资讯
BTC周报| 多头连续7日押注上涨;周内流入资金涨超170%(7.29-8.4)

大额转账下跌18.5%;新增、活跃地址数骤增100%;比特币算力突破72E创历史新高,难度今日还将上涨11%;F2pool、蚁池算力分别大涨20%.

1900/1/1 0:00:00
网游大佬朱骏竟是Telegram ICO 的早期投资人

Odaily星球日报出品译者|王也编辑|卢晓明7月25日,据Cointelegraph报道,根据提交给美国证券交易委员会的一份文件显示,中国网络游戏运营商第九城市是参与TelegramICO的第一家外国公司.

1900/1/1 0:00:00
行情周报:整体交易量下滑近三成,平台币表现亮眼

周报摘要上周全球数字货币资产日均市值为2709.66亿美元,下跌3.68%,日均交易量522.00亿美元,下跌29.10%。上周市值TOP200资产整体下跌7.49%。本周新上市交易对27个.

1900/1/1 0:00:00
听说孙宇晨被限制出境,巴菲特怎么看?

据财新网报导,TRONFoundation创始人孙宇晨已经被限制出镜,同时中国互联网金融风险专项整治小组办公室已就孙宇晨涉嫌非法集资、、涉黄、涉等问题,建议机关对其立案调查.

1900/1/1 0:00:00
靴子落地,火币推出稳定币HUSD Token

作者|秦晓峰编辑|卢晓明出品|Odaily星球日报据火币官网公告,火币将于近日对此前的稳定币解决方案HUSD进行第三次升级,推出锚定美元的稳定币HUSDToken。今年1月,火币首席财务官李书沸就曾透露将推出火币自己的稳定币.

1900/1/1 0:00:00
交易所“黑马”制造

:"\u003Cp\u003E\u003Cimgalt=\"交易所“黑马”制造\"src=\"https:\u002F\u002Fpiccdn.0daily.

1900/1/1 0:00:00