一、事件描述
2022年9月18日,以太坊合并完成后,PoW链遭到PoS链上交易的重放攻击,根本原因是网桥未正确读取并验证区块链的chainid。攻击者首先通过Gnosis链的Omni跨链桥转移了200WETH,然后在PoW链上重放了相同的消息,获得了额外的200ETHW。
SharkTeam对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
二、事件分析
分析 | BTC若开启周线级别调整 回踩这里或是低吸建仓的良机:据行情显示,BTC当前报价7792美元,日内涨幅2.16%。
针对当前的走势,分析师Potter表示,如图为BTC2015至2019长期历史走势,我们发现在BTC上一轮完整的牛市走势中周线EMA21对币价起到关键的支撑作用。BTC在2015全年的探底走势中,第一次小幅放量站上EMA21均线,不过未能站稳币价再次跌落下来,并回落至该均线下方反复震荡洗盘,蓄势后BTC再次放量上攻并直接突破前期均线EMA21压制,成交量也收出连续8周的堆量阳柱,关键阻力位的有效突破引发市场买盘的进一步跟进,从盘面上能看出短期内推动币价进一步快速走高,这比较类似于目前BTC的走势,前期同样是大阳线直接放量突破并快速拉升至9000美元上方,然后触及阶段顶币价拐头向下处于回调走势,同时我们发现从2016年开始BTC一路沿EMA21趋势线震荡上行直至2017年末期的冲顶阶段,而每次币价出现直线拉升导致偏离率较高阶段获利盘较多时,都会下探回落至EMA21均线附近获得支撑,随后再次开启向上拉升走势,对于目前BTC周线级别的回调走势,后续大的走势方向可能也将回踩牛市关键支撑线EMA21,若能站稳不破说明BTC大概率已处于下轮牛市初始阶段,那么在后续的一路涨势中每次回踩EMA21均是低吸建仓的良机。[2019/6/6]
该事件涉及两个不同链的交易hash以及攻击者地址,分别如下:
分析 | BTC月线周线面临上方压力 未站稳谨慎进场:针对当前BTC的走势,分析师Potter表示,从BTC月线2012至2019目前走势可看出,BTC历史走势已出现3轮牛熊走势,而3轮熊市的探底走势分别对应的是图中的3个长期BTC月线级别下降通道,我们发现BTC在18年末期月线向上插针触及3150美元低点后,截止目前这几个月来一直处于抛物线上方持续向上反弹,目前币价已向上贴近通道上边线附近,面临月线级别长期空头抛压,并且月线目前已走出4连阳,上一次超过4连阳的还是在17年牛市下半年的加速阶段,而在15年BTC尝试突破长期下降通道上边线压制时,在连续收出4连阳后第5个月收出一根月度级别调整的阴线,但整体走势仍处于上升抛物线上方运行,大的走势方向已进入下一轮牛市的初始阶段,所以接下来BTC月线一次性有效突破通道上边线的难度较大,大概率将会在上边线附近反复震荡洗盘,让这几个月连续拉升带来的获利盘回吐以及让抄底散户筹码充分换手,从而达到提高散户持仓成本的目的,便于后期的进一步拉升。今天BTC周线收盘在前期压力区间内,并未突破前高,这周量能明显比之前显著放大,属于相对高位放量的情况,BTC在持续上涨后的高位区,币价出现宽幅震荡且长期滞涨的形态,那么主力在此区间出货的可能性就比较大,今天BTC最高涨至8275美元后迎来一波跳水为30分钟的背离拉升所致,说明主力目前做多意愿并不强,后续还要进一步洗盘,并且马上到来的VanEck ETF裁决日将在本月21号,参照以往做法再次延期的可能性比较大,那么将会对短期BTC价格造成影响,后续还是防范风险为主。[2019/5/20]
PoS链交易hash:0xbddb0cc8bc9949321e1748f03503ed1a20dd618fbf0a51dc5734c975b1f8bdf5
声音 | 赵东:大交易所BTC周线还没放量,现在是反弹不是牛市:DGroup创始人赵东发微博称,别激动哈,大交易所(BTC)周线还没放量呢。 现在是反弹,不是牛市。牛会来的,但不是现在,得有耐心。 ????[2019/4/24]
PoW链交易hash:0x9c072551861ce384203516f4d705176a2d2e262d5b571d853467425f1a861fb4
动态 | 警惕以“区块链”名义实施非法集资行为 长沙市天心区端掉一窝点:据湖南日报消息,长沙市天心区端掉一个打着“区块链”旗号从事虚拟货币宣传的非法集资窝点,以“Plus Token区块链钱包”为噱头开展宣讲活动,疑似通过此方式引诱群众投资。该团队来自韩国,宣称投资者存入100万元,复利一年就能赚到700万元。投资者除保本外,每月还能获得10%到30%的收益,直接发展一名下线奖励100%,二层到十层各奖励10%,具备的典型特征。建议广大群众对此类非法金融宣讲活动保持警惕。[2019/3/8]
攻击者地址: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,但是依旧要保持警惕,以防止积少成多,造成更大的损失。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。