木星链 木星链
Ctrl+D收藏木星链
首页 > 中币下载 > 正文

ROO:欧科云链链上卫士: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。

欧科云链OKLink链上天眼已进行全面升级:据官方消息,继欧科云链OKLink链上天眼推出比特币币种后,OKLink于11月9日推出ETH、USDT-ERC20和USDT-Omni等多币种。基于对海量链上数据的深度分析和持续更新,为用户提供USDT和ETH的地址分析功能,本次升级新增数千万条地址标签,满足更多用户数据需求。同时它也是全网首个向所有用户免费开放的链上数据监测和交易行为可视化工具,为用户提供更全面、更丰富、更精准的链上数据监测服务。[2020/11/9 12:06:00]

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

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

港股收盘:欧科云链收跌6.45% 火币科技收涨0.73%:今日港股收盘,恒生指数收盘报24918.78点,收涨0.54%;欧科集团旗下欧科云链(01499.HK)报0.145港元,收跌6.45%;火币科技(01611.HK)报4.130港元,收涨0.73%。[2020/10/23]

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

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

港股收盘:欧科云链收跌0.55% 火币科技收涨0.25%:今日港股收盘,恒生指数收盘报23235.42点,收跌0.32%;欧科集团旗下欧科云链(01499.HK)报0.18港元,收跌0.55%;火币科技(01611.HK)报4.06港元,收涨0.25%。[2020/9/25]

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

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

欧科云链OKLink正式发布ETC区块链浏览器:北京时间2020年5月29日,欧科云链OKLink正式发布ETC区块链浏览器。新上线的ETC浏览器支持ETC链上数据查询,还展示全网算力、难度、建议Gas费用、合约数量等重要数据。此前已经支持BTC、ETH、LTC、BCH、BSV、USDT、OKChain(Test)多个主流币种的链上数据查询与检索,以及BTC全周期、多维度的数据统计。

据悉,欧科云链OKLink区块链浏览器是由区块链大数据上市公司打造的信息服务应用,旨在呈现快速、精准、全面的链上数据。[2020/5/29]

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

欧科云链OKLink与BiYong达成深度战略合作:据悉,欧科云链OKLink与BiYong达成深度战略合作。美元稳定币USDK 接入BiYong,支持数字货币红包和数字货币支付。OKLink区块链浏览器作为第三方应用,入驻BiYong开放平台。未来双方将在社区生态建设及推广等方面展开更深层次的市场合作。BiYong是最大的区块链社交平台,将人们与区块链世界连接在一起。

欧科云链OKLink是全球首家区块链大数据上市公司打造的区块链信息服务网站,旨在利用区块链+大数据技术为用户提供高可用的区块链信息服务。[2020/5/20]

根据上述分析,正常数据组织结构如下,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黑客地址进行风险标签标记,关于此次被盗后续,链上卫士团队将进一步追踪案件细节并及时同步。

标签:ROOPROProofBNBMushroomProtonzkProofSBNB

中币下载热门资讯
TOKEN:一文浅谈理想的代币分配模式

token经济学通常与其饼状图分配相关,其代表了团队、投资者、财库和社区之间的token百分比分配情况。这些数字通常是根据非token投资者分配基准以及团队和投资者之间的双边谈判确定的.

1900/1/1 0:00:00
OIN:稳定币将退出历史舞台?一文解读美国最新稳定币草案

引言对于Crypto来说,数字资产的监管法案并不陌生。今天,众议院公布了一项法案草案,旨在对Stablecoin做出监管,这对于Stablecoin的发行和抵押都会造成影响.

1900/1/1 0:00:00
ART:Arthur Hayes:央行重启印钞之后

人类现在正在两线作战。抗疫战争,以及美欧与中俄之间的大战。当前财政和货币政策的出发点就是试图减轻这两个冲突的经济影响.

1900/1/1 0:00:00
比特币:Bankless:一览比特币DeFi格局发展现状

当前比特币的市值约为4000亿美元。作为OG鼻祖级加密货币,这是相当了不起的。比特币的基本设计孕育了一个安全、去中心化和抗审查的网络,因此受到大众的广泛信任.

1900/1/1 0:00:00
NFT:“零版税”矛盾激化,热门NFT项目QQL将X2Y2加入黑名单

昨日,生成艺术NFT项目QQL通过拍卖QQLmintpassNFT的方式筹集了近1700万美元,并且当天全天交易量持续攀升,至今天占据了Opensea24小时交易排行榜的首位.

1900/1/1 0:00:00
ZER:DeFi平台Zerion完成1230万美元B轮融资,Wintermute Ventures领投

Odaily星球日报译者|念银思唐摘要:-去中心化金融平台Zerion完成1230万美元融资,旨在打破加密钱包的格局.

1900/1/1 0:00:00