织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

详细复盘 Poly Network 被黑 6.1 亿美元过程及原因

时间:2021-08-23 13:51来源:未知 作者:admin 点击:
2021 年 08 月 10 日,据慢雾区消息,跨链互操作协议 Poly Network 遭受黑客攻击,慢雾安全团队第一时间介入分析,并将分析结果分享如下。 攻击背景 Poly Network 是由 Neo、Ontology、Switcheo 基

2021 年 08 月 10 日,据慢雾区消息,跨链互操作协议 Poly Network 遭受黑客攻击,慢雾安全团队第一时间介入分析,并将分析结果分享如下。

攻击背景

Poly Network 是由 Neo、Ontology、Switcheo 基金会共同作为创始成员,分布科技作为技术提供方共同发起的跨链组织。

如下图,通过官方的介绍我们可以清楚的看出 Poly Network 的架构设计:用户可以在源链上发起跨链交易,交易确认后由源链 Relayer 将区块头信息同步至 Poly Chain,之后由 Poly Chain 将区块头信息同步至目标链 Relayer,目标链 Relayer 将验证信息转至目标链上,随后在目标链进行区块头验证,并执行用户预期的交易。

慢雾:详细复盘 Poly Network 被黑 6.1 亿美元过程及原因

以下是本次攻击涉及的具体地址:

慢雾:详细复盘 Poly Network 被黑 6.1 亿美元过程及原因

攻击核心

  1. 源链未对发起的跨链操作的数据进行检查。
  2. 目标链未对解析出的目标调用合约以及调用参数进行检查。
  3. EthCrossChainData 合约的 owner 为 EthCrossChainManager。
  4. bytes4(keccak256(abi.encodePacked(_method, "(bytes,bytes,uint64)"))) 可以被 hash 碰撞。

攻击细节

Poly Network 会在各个链上部署智能合约以便进行跨链互操作(分析将以在以太坊部署的智能合约为例),其中 EthCrossChainManager 合约用于验证 Poly Chain 同步来的区块头以确认跨链信息的真实。EthCrossChainData 合约用于存储跨链数据,中继链验证人 (即 Keeper) 的公钥也存储在这个合约中。LockProxy 则用于资产管理。

本次攻击中,攻击者分两步来完成这次攻击,我们接下来进行详细分析:

首先攻击者通过在其他链调用 crossChain 函数构造数据发起跨链交易。

我们切入此函数进行分析 :

EthCrossChainManager.crossChain

慢雾:详细复盘 Poly Network 被黑 6.1 亿美元过程及原因

从上图我们可以清晰的看出,此函数只是用于帮助用户构造 makeTxParam 并存储了构造后的哈希以便后续验证,其并未对用户传入的跨链操作参数进行任何限制,因此攻击者完全可以通过构造任意想构造的数据而让 Relayer 毫无防备的将其同步至 Poly Chain,通过 Poly Chain 将其同步至以太坊 Relayer。

随后在以太坊上的 Relayer 通过调用 EthCrossChainManager 合约中

的 verifyHeaderAndExecuteTx 函数提交区块头信息来验证这笔跨链信息的真实性。

我们切入此函数进行分析:

EthCrossChainManager.verifyHeaderAndExecuteTx

慢雾:详细复盘 Poly Network 被黑 6.1 亿美元过程及原因 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容