警惕以太坊合并后的重放攻击:Omni跨链桥被攻击事件分析

一、事件描述

2022年9月18日,以太坊合并完成后,PoW链遭到PoS链上交易的重放攻击,根本原因是网桥未正确读取并验证区块链的chainid。攻击者首先通过Gnosis链的Omni跨链桥转移了200WETH,然后在PoW链上重放了相同的消息,获得了额外的200ETHW。

SharkTeam对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

金融稳定委员会将在2023年初制定监管加密行业的步骤措施:12月13日消息,即将卸任的金融稳定委员会(FSB)秘书长Dietrich Domanski表示,FSB将在2023年初制定监管加密货币行业的步骤,并迅速颁布这些措施。

接下来的几个月,FSB打算为全球监管机构制定一个时间表,以实施其关于全球加密监管的首批建议,并详细说明政策制定者在制定规则之前可以“更清晰”受益的领域,Domanski表示“FSB的目标是建立一个制度,如果加密服务提供商提供与银行相同的服务,将遵守与银行相同的标准”。(英国金融时报)[2022/12/13 21:41:15]

二、事件分析

该事件涉及两个不同链的交易hash以及攻击者地址,分别如下:

NFT市场Magic Eden计划集成Polygon:11月22日消息,NFT 市场 Magic Eden 宣布正在与 Polygon 集成以发展区块链游戏和 NFT 生态系统。Magic Eden 将为 Polygon 链上游戏开发者和创作者生态系统提供支持,包括在 Polygon 网络上托管的 Web3 游戏项目和游戏发行商,比如 Ubisoft、Atari、Animoca Brands、Decentraland、The Sandbox 等。Magic Eden 联合创始人兼首席运营官 Zhuoxun Yin 透露,双方还将在下个月上线加密孵化器。(TechCrunch)[2022/11/22 7:57:04]

PoS链交易hash:0xbddb0cc8bc9949321e1748f03503ed1a20dd618fbf0a51dc5734c975b1f8bdf5

Web3期权协议Volare Finance完成种子轮融资,Huobi Ventures等参投:10月18日消息,Web3期权协议Volare Finance宣布完成种子轮融资,Master Ventures Investment Management (MVIM)领投,GSR、Arrington XRP Capital、Spark Digital Capital、GSR Markets、Huobi Ventures等参投,但本轮融资的具体金额暂未披露。Volare Finance帮助投资者采用标准期权策略或定制期权策略组合来对冲、投机和提高收益,旨在减少交易者在期权交易中面临的摩擦。此前,Volare Finance已在Fuji协议上推出测试网,该团队继续推动为加密期权交易提供透明、可信赖和方便的去中心化机制。(benzinga)[2022/10/18 17:30:58]

数据:美联储已实现缩表逾2000亿美元,降幅为2.3%:10月14日消息,据美联储官方信息,自今年4月美联储资产负债表达到峰值8.965万亿美元以来,美联储已实现缩表逾2064.34亿美元,降至8.759万亿美元,降幅为2.3%(数据截至10月4日)。[2022/10/14 14:27:35]

PoW链交易hash:0x9c072551861ce384203516f4d705176a2d2e262d5b571d853467425f1a861fb4

Crypto.com App已上线UNFI和WOO:6月18日消息,加密货币交易所Crypto.com近日在其App上线Unifi Protocol DAO(UNFI)、WOO Network(WOO)。(The Daily Hodl)[2022/6/18 4:36:50]

攻击者地址:0x82FaEd2dA812D2E5CCed3C12b3baeB1a522DC677

首先,我们对比发现两笔交易访问的合约相同,并且inputdata完全相同,即调用了同一个合约的同一个函数并且参数相同,根据相同的方法签名ID?0x23caab49可知,黑客调用safeExecuteSignaturesWithAutoGasLimit函数。

因此,攻击者通过OmniBridge转移200WETH,然后在PoW链上重放了相同的Inputdata,获得了额外的200ETHW。

此时,我们对这里的重放操作抱有怀疑态度。因为,以太坊网络在硬分叉之前强行执行EIP-155,这就说明ETHPoS链上交易不能在PoW链上重复交易。在正常的交易中,我们通过nonce来进行排序交易,避免重复交易。在跨链中,我们会根据chianid进行识别链的类型,比如以太坊主网的chainid是1,ETHW主网的chainid是10001。

对此,我们分析了OmniBridge相应的源码。我们查看一下OmniBridge验证chainid的逻辑,发现chainid的来源于unitStorage中存储的值,而不是通过操作码CHAINID直接读取的链上chainid。

unitStorage是合约EternalStorage中的状态变量,sourceChainId()函数所在的合约BasicAMB继承了BasicBridge和VersionableAMB。其中,BasicBridge陆续继承了合约EternalStorage。这里保存的chainid是预先存储好的,如果发生区块链的硬分叉而chainid又没有重新设置或者chainid人为设置有误,从合约层面上来说,由于不是通过操作码获取的chainid,不会正确验证跨链消息的实际chainid。这样的漏洞,容易被攻击者利用。

问题分析总结:主要是Omni使用的solidity版本是0.4.24,采用的是手动存储和更新chainid的方式,并未通过EIP-1344中规定的CHAINID操作码进行实际chainid获取。

三、安全建议

引发本次安全事件的原因是在PoW升级PoS过程中,OmniBridge对chainid未及时处理。导致过旧的solidity版本中,存在历史遗留问题。建议在后续项目迭代中,及时应对新问题,采取必要的代码优化措施。虽然Gnosis链上OmniBridge有每日最大转移代币数量限制250个WETH,但是依旧要保持警惕,以防止积少成多,造成更大的损失。

来源:金色财经

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

银河链

USDT从网络估值看以太坊为何处于增长态势

作者:IvanBakrac,SimranJagdev来源:ConsenSys下周,世界上最大的可编程区块链以太坊将经历一场巨大的变革。以太坊网络将从能源密集型的工作量证明共识机制过渡到可持续的权益证明(PoS)共识机制.

[0:15ms0-1:549ms