宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > TRX > 正文

欧科云链链上卫士:BNBChain遭攻击事件深度解析

作者:

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

事件背景

北京时间2022年10月7日凌晨,BNBChian跨链桥BSCTokenHub遭遇攻击。黑客利用跨链桥漏洞分两次共获取200万枚BNB,价值约5.66亿美元。漏洞分析

BSCTokenHub是BNB信标链和BNB链之间的跨链桥。BNB链使用预编译合约0x65验证BNB信标链提交的IAVL的Proof,但BNB链对提交的Proof边界情况处理不足,它仅考虑了Proof只有一个Leaf的场景,对多个Leaves的处理逻辑不够严谨。黑客构造了一个包含多Leaves的Proof数据,绕过BNBChain上的校验,从而在BNB链造成了BNB增发。以其中一次攻击交易为例:0xebf83628ba893d35b496121fb8201666b8e09f3cbadf0e269162baa72efe3b8b黑客构造输入数据payload和proof,输入参数通过validateMerkleProof校验,返回值为true。

在后续IApplication(handlerContract).handleSynPackage处理中,合约给黑客增发100万个BNB。

港股收盘:欧科云链收涨8.33%,火币科技收涨6%:今日港股收盘,恒生指数收盘报29880.420,收涨2.70%;欧科集团旗下欧科云链(01499.HK)报0.780港元,收涨8.33%;火币科技(01611.HK)报22.100港元,收涨6%。[2021/3/3 18:11:09]

函数调用过程交易首先调用CrossChain合约0x2000的handlePackage函数:

handlePackage会进一步调用MerkleProof.validateMerkleProof对输入的proof进行校验:

欧科云链李炼炫:人民币数字化将助力人民币国际化:欧科云链研究院首席研究员李炼炫表示,人民币的数字化无疑将提高交易便捷性,从而方便跨境支付和交易,提高了人民币境外流通普及度,助力人民币国际化。除了相关部门在技术操作层面需要与海外金融机构、海外金融监管部门做好对接,还需两个国家拥有双边货币互换协议,从而确保央行法定数字货币能实现有效的回流与兑换。所幸的是,目前不少中小国家都希望引入官方数字货币解决本国货币流通透明度不高、资金流向难跟踪等问题,从而为央行法定数字货币境外流通创造一定的机遇。(21世纪经济报道)[2020/10/14]

MerkleProof相关代码可以看到,实际的验证逻辑是使用预编译合约0x65完成:https://github.com/bnb-chain/bsc-genesis-contract/blob/master/contracts/MerkleProof.sol#L66

系统预编译合约0x65对应iavlMerkleProofValidate功能:https://github.com/bnb-chain/bsc/blob/f3fd0f8bffb3b57a5a5d3f3699617e6afb757b33/core/vm/contracts.go#L81

欧科云链副总裁张超:区块链+大数据有望破解金融科技安全挑战:10月13日,欧科云链副总裁张超在第三届数字中国建设峰会上指出,当前金融科技安全挑战不断。一方面,基于区块链等新型技术手段的犯罪,学习认知门槛高;另一方面,缺乏传统金融案件的相关侦查调查工具及相关机构配合。欧科云链于今年9月发布区块链大数据产品“链上天眼”,可追踪数字货币流向、明确重点侦察方向、提高侦察效率。张超表示,欧科云链一直致力于区块链技术研发和应用,后续将继续深耕区块链+大数据产品的研发,力争开启金融安全“天眼”。[2020/10/13]

系统合约0x65实现代码如下,主要逻辑为使用DecodeKeyValueMerkleProof解码输入参数,并调用Validate进行校验:https://github.com/bnb-chain/bsc/blob/master/core/vm/contracts_lightclient.go#L106

欧科云链OKLink同聚合产品币coin达成DeFi生态战略合作:据悉,欧科云链OKLink同知名的区块链聚合产品币coin达成DeFi生态战略合作。OKLink为币coin用户提供快捷精准的DeFi信息服务,用户可以通过APP入口进入OKLink浏览器查询,了解实时DeFi总锁仓量等数据。未来双方将在DeFi生态建设及链上信息分析等方面展开更深层次的市场合作。币coin是一款为币圈合约用户提供合约数据、KOL实盘、信息提醒以及聚合交易的工具型产品。

欧科云链OKLink区块链浏览器是由全球首家区块链大数据上市公司打造的信息服务应用,目前已上线DeFi版块,为用户提供呈现快速、精准、全面的链上数据服务。[2020/8/5]

IAVL代码问题

IAVL的Proof校验过程中,Hash计算存在漏洞,导致黑客可以在Proof添加数据,但计算Hash时并没有用到添加的数据。详细分析如下:在len(pin.Left)不为0的分支中,计算Hash并没有使用pin.Right数据。黑客利用该处漏洞构造数据,添加proof.LeftPath.Right数据,但是该数据并不参与Hash计算。https://github.com/cosmos/iavl/blob/master/proof.go#L79-L93

港股收盘:欧科云链收涨1.45% 火币科技收涨1.85%:今日港股收盘,恒生指数报24253.29点,收涨2.12%;欧科集团旗下欧科云链(01499.HK)报0.210点,收涨1.45%;火币科技(01611.HK)报3.30点,收涨1.85%。[2020/4/7]

根据上述分析,正常数据组织结构如下,proof.LeftPath.Right为空值,计算得到正确的Hash。proof.LeftPath=len(2)proof.LeftPath是一个正常数据,proof.LeftPath.Left是一个正常数据,proof.LeftPath.Right空值proof.InnerNodes=len(0)proof.Leaves=len(1),proof.Leaves是一个正常数据黑客构造攻击数据结构如下,添加proof.LeftPath.Right数据,且该数据不参与Hash计算。proof.LeftPath=len(2)proof.LeftPath是一个正常数据,proof.LeftPath.Left是一个正常数据,proof.LeftPath.Right是一个伪造数据proof.InnerNodes=len(1),InnerNodes=nilproof.Leaves=len(2),proof.Leaves是一个正常数据,proof.Leaves是一个伪造数据且proof.LeftPath.Right=COMPUTEHASH(proof.Leaves)IAVL的Proof校验代码如下,主体逻辑为COMPUTEHASH递归调用。由于lpath.Right也为黑客输入数据,使得黑客构造的数据能够通过bytes.Equal(derivedRoot,lpath.Right)的校验,并返回上一轮COMPUTEHASH通过proof.Leaves计算的结果,该结果为正常数值,从而绕过了IAVL的Proof校验。https://github.com/cosmos/iavl/blob/master/proof_range.go#L222-L309

黑客攻击构造的数据中,包括了IAVL:V和multistore相关数据,multistore数据也是基于IAVL进行操作,原理是一样的,不再进行详细分析。这次IAVLProof暴露的问题在于,数据局部的变化无法反应到整体,使得校验发生错误。在Cosmos生态中,IBC使用ICS23来做数据的校验处理,ICS23与IAVLProof校验不同点在于,ICS23会对所有的“叶子节点”的值进行数据校验,最后计算得出的根Hash再与链上数据进行校验,OKC采用的是ICS23的Prove,因此不存在BNBChain这次遇到的安全漏洞。测试验证代码

利用黑客攻击交易数据,基于BNBChain单元测试代码,增加了基于黑客攻击交易的测试用例,可以完整复现黑客的攻击交易。单元测试代码利用iavlMerkleProofValidate.Run接口验证输入数据,即相当于调用预编译合约。https://github.com/BananaLF/bsc/blob/bsc-hack/core/vm/contracts_lightclient_test.go#L99-L100

利用黑客攻击交易数据,构造新的payload数据为value:=byte(“okctesthack”),并对proof相应数据进行了修改,即修改proof.LeftPath.Right和proof.Leaves对应的数据,新构造的数据可以通过okcIavlMerkleProofValidate校验,即修改了黑客数据也能通过校验。另外,如下单元测试代码对原始黑客数据和修改后的数据两种case都进行了校验,且校验都能成功,从而说明如下测试代码利用本文所述漏洞成功进行了复现。https://github.com/BananaLF/bsc/commit/697c5cd73a755a7c93c0ed6c57d069e17f807958

事件过程

被攻击全过程可查看上一篇文章:链上卫士:BNBChain遭攻击时间轴梳理。OKLink多链浏览器已对BNBChain黑客地址进行风险标签标记,关于此次被盗后续,链上卫士团队将进一步追踪案件细节并及时同步。

标签:ROOPROProofBNBgROOTDrEE ProjectEvident Proof Transaction Token游戏名《TogetherBnB》

TRX热门资讯
起底跨界网红GaryVee的成长史,VeeFriends为何能成功?

海外知名网红GaryVee创建的知名NFT项目VeeFriends将于10月17日推出实体的毛绒和塑料玩具,并在梅西百货及玩具零售商Toys「R」Us上架.

1900/1/1 0:00:00
星球日报 | Uniswap Labs完成1.65亿美元融资;Curve DAO提案启用更容易的CRV奖励通证(10月14日)

头条 CurveDAO提案启用更容易的CRV奖励通证,获得96%选票支持通过Odaily星球日报讯Curve治理论坛的民意调查结果显示,一项在第三方应用程序上启用来自Curve奖励的提案获得通过,超过96%的选票同意该提案.

1900/1/1 0:00:00
Web3 3A卖楼花,杠杆化的研发模式会是高成本游戏的曙光么?

3A与房地产有着某种程度的类似,建设耗时耗钱,牵涉的利益相关方众多。怎么让各方的利益都能被满足,都能被incentivized,提高资金的周转效率,或许Web3这一许多从业者怀抱理想的领域有自己的解决方案.

1900/1/1 0:00:00
超话社区 | Lifeform:视觉DID新生引领者

Lifeform专注于视觉DID的集成方案研发,已获币安种子轮投资。其核心产品包含3D超写实虚拟人编辑器,可视化DID协议,安全的智能合约套件,原生去中心化身份SaaS系统服务,以及适用于Web3跨应用开发的元宇宙底层引擎.

1900/1/1 0:00:00
新项目 | Lit Protocol:可以设置链上访问条件的密钥管理协议

LitProtocol是一个运行在EVM、Cosmos和Solana上,可以为各类协议提供密钥管理和配置的程序。使用LitProtocol服务的协议,可以预先设置链上条件,然后网络将为满足这些条件的用户提供签名和解密服务.

1900/1/1 0:00:00
一文速览亚洲区块链游戏黑客松8个获奖项目

近日,亚洲最大的Web3盛会TOKEN2049加密货币周在新加坡正如火如荼地进行。期间,韩国版「微信」Kaokao旗下公链Klaytn联合ABGA举办的BlockchainGamingHackathon2022,经过了100支队伍的激.

1900/1/1 0:00:00