@BinanceChain
、@ethereum
和 @0xPolygon
上遭到了黑客攻击,黑客利用区块链跨链协议 Poly Network
的技术漏洞盗取了超过6亿美金价值的数字货币。这是有史以来Defi(中心化金融)
遭到的最大黑客攻击。Poly Network
是一个用于在多个区块之间开展代币交换的协议,由包括 Neo
、Ontology
和 Switcheo
在内的多个区块链平台背后的团队联合组建。其架构设计如下图:
(图片来自 SlowMist)
之后Poly Network
发布推文称:经过初步调查,造成该事情的原因是黑客利用了智能合约调用之间的漏洞。
(图片来自Poly Network 推特)
同时,Poly Network
团队还在推特上称将采取法律手段,要求黑客尽快归还被盗的数字货币。
(图片来自Poly Network 推特)
在攻击当天不久,黑客公开表示要归还所盗的数字货币,动机不明,黑客称“我对钱不是很感兴趣”,“为了好玩”。
在攻击发生几个小时内,SlowMist
团队称通过区块链追踪关联发现了攻击者的邮箱、IP 及设备指纹等信息。这可能是黑客归还所盗资产的原因之一,黑客随后陆续进行了归还的操作。
(图片来自Poly Network 推特)
目前黑客已经归还了超过一半的被盗数字货币。
根据SlowMist
团队分析的攻击过程,涉及攻击的地址如下:
(图片来自 SlowMist)
根据SlowMist
团队的分析,被攻击的原因有:
1、源链没有检查发起的跨链操作
2、目标链没有检查解析的目标调用合约和调用参数
3、EthCrossChainData
合约的所有者是EthCrossChainManager
4、bytes4(keccak256(abi.encodePacked(_method,“(bytes,bytes,uint64)”)))
可以被哈希碰撞攻击
攻击过程:
1、攻击者在源链上精心构造一个操作来修改目标链的Keeper
2、使用官方Relayer正常提交目标链数据,替换Keeper
3、攻击者使用被替换的Keeper地址来签署操作,并将其提交给'EthCrossChainManager'进行验证。
4、验证Keeper是否未被攻击者替换的地址。如果是,则将资产转移到攻击者指定的地址。
5、获利
此次攻击主要是因为EthCrossChainData
合约的keeper
可以被EthCrossChainManager
合约修改,EthCrossChainManager
合约的verifyHeaderAndExecuteTx
函数可以执行用户通过_executeCrossChainTx
函数传入的参数,因此,攻击者利用该函数传入精心构造的参数来修改EthCrossChainData
合约的keeper
。
根据SlowMist
团队的分析,本次攻击总损失超过 6.1 亿美元,详情如下:
(图片来自 SlowMist)
这次Poly Network
攻击主要是智能合约的漏洞造成的,虽然区块链本身很安全,但是智能合约却存在各种安全问题。
智能合约是被部署在区块链上可自动执行的数字化协议,也是可按照预设合约条款自动执行的计算机程序,主要包含相关代码和数据集。通过智能合约可以灵活嵌入各种数据和数字资产,安全高效地交换信息、管理资产。
智能合约存在的漏洞有:缓冲区溢出、随机数问题、合约本身的漏洞、合约函数漏洞、合约重入等。
在最近几年发生的 ETH DApp攻击事件中,大部分就是智能合约漏洞造成的:
(图片来自:计算机学报《智能合约的合约安全和隐私安全研究综述》)
参考链接:
SlowMist 团队 :The Analysis and Q&A Of Poly Network Being Hacked
https://slowmist.medium.com/the-analysis-and-q-a-of-poly-network-being-hacked-8112a35beb39
推荐实验:区块链安全入门最佳实践 :通过本课程你将学习到区块链,以太坊,智能合约的相关知识,以及区块链安全相关知识。
课程链接:https://www.hetianlab.com/cour.do?w=1&c=CCID122c-64cf-481b-97fc-0892ce21c317