AIN:CertiK:PolyNetwork攻击事件分析-ODAILY

“黑客拿着房主证明找物业拿钥匙,证明是假的,却从物业那里拿到了真的钥匙”

事件回顾

2021年8月10日,PolyNetwork遭受了跨链攻击,被转移了6亿美金的加密资产。攻击者在多条公链上进行了攻击交易,并通过跨链管理合约和中继器组件完成了攻击。

用上面物业的例子来解释的话,黑客用假房主证明,从物业那里拿到了真的钥匙(AllianceChain上经过签名的Merkle证明)。

Cere Network将为Lithium Finance提供数据隐私保护:9月23日消息,私有资产数据预言机协议Lithium Finance宣布与波卡生态去中心化数据云平台Cere Network达成合作,以加强数据隐私保护,并保护所有智慧节点(Wisdom Nodes)的定价数据。

据了解,Cere Network是首个基于波卡 Polkadot 构建的去中心化数据云平台,针对服务数据集成、数据协作进行了优化。Lithium Finance是一个私有资产数据预言机协议,旨在为DeFi协议提供如pre-IPO股票价格、私募股权价格等无法立即兑现的资产价格定价。[2021/9/23 17:01:37]

攻击解析

一、黑客在源链上初始化了一个本应是无效的攻击交易。

二、攻击交易在没有被充分检查的情况下被写入源链,之后被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。

HOGT-DEX生态已通过Certik代码审计:据官方消息,HOGT-DEX生态已通过美国Certik代码审计。

CertiK区块链网络安全公司,由耶鲁大学与哥伦比亚大学计算机学教授共同创立。旨在使用最严密和最彻底的网络与软件安全技术来识别并消除安全漏洞。截至目前,CertiK已进行了超过700次审计,审计了超过39.6万行代码,保护了超过300亿美元的资产免受损失。

HOGT是基于火币生态链的综合性DeFi生态服务平台,融合聚合收益、DEX、借贷等多板块业务,致力于建设DeFi全生态服务系统。[2021/6/9 23:23:24]

三、黑客在目标链上用步骤二的有效Merkle证明,调用PolyNetwork的ECCM合约,将keepers改成黑客控制的公钥。

四、获得keepers权限后,黑客就可以在多条公链上任意解锁资产了。

Balancer完成2425万美元融资:金色财经报道,Balancer完成了2425万美元的融资,由Blockchain Capital、Fintech Collective、LongHash Ventures、Fenbushi Capital、Continent Capital和DeFi协议Synthetix的创始人Kain Warwick领投。这些资金将用于加强Balancer作为DeFi市场的核心基础设施提供商的地位。[2021/5/28 22:51:25]

这里值得注意的是,PolyNetwork在有些链上的中继器没有通过攻击交易,所以即使智能合约相似,某些目标链上资产并未受影响。

Balancer通过将AMPL流动性挖矿上限提高至1000万美元的投票:据官方消息,DeFi协议 Balancer (BAL)提升AMPL代币流动性挖矿上限的提案已投票通过,根据该提案,AMPL代币流动性挖矿的上限将从300万美元提高至至1000万美元。[2020/12/14 15:06:10]

细节分析

一、黑客于北京时间2021年8月10日17:32:32在源链发起了一笔攻击交易。

https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#

动态 | NBA篮球运动员Spencer Dinwiddie将继续推进其合同代币化的计划:此前消息,NBA篮球运动员Spencer Dinwiddie有意将其合同代币化,但遭到NBA拒绝。昨日,Dinwiddie连发多条推文表示,不管NBA意见如何,他都将继续推进此事。Dinwiddie声称他将于10月21日启动该计划,也就是在原计划启动日期(14日)的一周后,以便给NBA足够的时间进行回应。Dinwiddie认为,他与NBA之间争论的焦点是合同条款。NBA引用了Dinwiddie的合同,声明“任何球员不得将他从球队获得补偿的权利转让或以其他方式转让给第三方”。但Dinwiddie坚称其计划不构成“转让”,因为它没有赋予他的球迷或代币持有者篮网队或整个NBA的权利。(Decrypt)[2019/10/15]

我们对交易进行了解码,得到了以下参数映射。

二、此攻击交易调用了一个method"66313231333138303933",其对应的签名等于0x41973cd9。这笔交易应该是无效交易,可是却被写入源链并被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。Merkletree是用来证明交易是否真实存在的。其产生的跨链交易如下:

https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80

三、跨链交易在目标链上调用了PolyNetwork合约的EthCrossChainManager.verifyHeaderAndExecuteTx(),第一个参数包含了Merkle证明,解析如下:

四、这个函数解析了Merkle证明,发现证明是有效的,此攻击交易确实存在于已被签名的Merkletree中。之后调用了EthCrossChainManager._executeCrossChainTx()函数去执行此交易,即调用toContract指向合约(0xcf2afe102057ba5c16f899271045a0a37fcb10f2)中的method(0x6631313231333138303933),传入参数args(010000000000000014a87fb85a93ca072cd4e5f0d4f178bc831df8a00b)。而这个method指向putCurEpochConPubKeyBytes(bytes),因为其函数签名与步骤二中提到的method签名相同(均为0x41973cd9,此处为哈希碰撞),所以被顺利执行,将keepers的公钥改成了黑客的公钥。以太坊上的交易如下:

https://etherscan.io/tx/0xb1f70464bd95b774c6ce60fc706eb5f9e35cb5f06e6cfe7c17dcda46ffd59581

五、黑客改变公钥后,即可以随意解锁资产。

事件总结

此次攻击是由一连串交易构成的,其攻击根源分析如下:

一、攻击交易在没有充分检查的情况下被写入源链。

二、中继器会接收任意含有"makeFromOntProof"事件的交易。

三、中继器将步骤一中的交易发布到了AllianceChain上。

四、在步骤二中,此攻击交易被纳入到AllianceChain的Merkletree上,产生了有效的Merkle证明。

五、原链上的ECCM合约通过步骤二产生的Merkle证明,验证了该交易在源链上“确实存在”,原始数据并未被破坏、未被修改。不过需要强调的是,在构建将被发送到目标链的Merkle证明之前,应该对交易进行全面验证。正如设计文档中所示。

“ThemanagementcontractfetchestheblockheadersfromchainA,verifieswhetherornotthecrosschainparametersandtheproofarevalid,andthentransmitsthenecessaryinformationtochainBintheformofanevent;”

"管理合约从A链获取区块头,验证跨链参数和证明是否有效,然后将必要的信息以事件的形式传送给B链;"

因此,目标链应使用Merkle证明来验证所收到的信息是未被破坏和未被改变的,而交易信息应在发送至目标链之前进行全面验证。

附:Merkletree定义如下:哈希树可以用来验证计算机中和计算机之间存储、处理和传输的任何种类的数据。它们可以帮助确保从点对点网络中的其他对等体收到的数据块是未被破坏和未被改变的,甚至可以检查其他节点是否撒谎和发送假块。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

TUSDNFT:AutographNFT:为NFT做数字身份证明-ODAILY

7月15日,财新传媒发表公开声明,声明中指出:有用户将文章《显影|中国告别比特币“挖矿”》中的图片“捧着矿机的藏族妇女”经改编后上传到OpenSea等代币交易平台进行NFT售卖.

[0:31ms0-0:981ms