以太网融合后的重放攻击警戒:跨Omni链桥攻击事件分析_期货基金_转赚网

以太网融合后的重放攻击警戒:跨Omni链桥攻击事件分析

转赚网 0 0

警惕以太网融合后的重放攻击:跨Omni链桥攻击事件分析SharkTeam刚二、事件分析

此事件涉及两条不同链的交易hash和攻击者地址

(1) PoS连锁交易hash:0xb DDB 0cc 8bc 9949321 e 1748 f 03503 ed 1a 20 DD 618 fbf 0a 51d c 5734 c 975 B1 F8 BDF5[ xy 002 ]

(2)2) PoW链交易hash:0x9c 072551861 ce 384203516 f4d 705176 a2d 2e 262 D5 b 571 d 853467425 f1 a 861 fb4 [ xy 002 ]

(3攻击者地址:0x 82 FAE d2d a 812 d2e5cced 3c 12 B3 baeb 1a 522 DC 677 [ xy 002 ] [ xy 001 ]首先,两个交易访问合同相同且输入数据完全相同这意味着,如果调用同一合同中的同一函数,使用相同参数和相同方法签名ID0x23caab49,黑客将调用safeexecutesignatureswithautogaslimit函数。

因此,攻击者在Omni Bridge上传输200WETH,然后在PoW链上播放相同的Inputdata,获得了额外的200 ETHW。

此时,我们对这里的播放操作持怀疑态度。 这是因为以太网在硬叉之前强制执行EIP-155,这表明在ETH PoS链上的交易不能在PoW链上重复交易。 在普通交易中,通过nonce进行排序交易,避免重复交易。 交叉链内,通过chianid识别链的类型。 例如,以太网主chainid为1,ETHW主chainid为10001。 对此,我们分析了与Omni Bridge相对应的源代码。 从Omni Bridge验证chainid的逻辑来看,chainid不是直接用操作码chainid(0x46 )读取的链上的chainid,而是来自unitStorage中保存的值[ xy 002 ] [ xy001 ]单元存储是合同外部存储的状态变量具有,sourceChainId () )函数的合同BasicAMB继承了BasicBridge和VersionableAMB。 其中,BasicBridge相继继承了合同EternalStorage。 这里保存的chainid是预存的。 如果出现了块链硬叉,并且没有重新设置chainid,或者chainid的人为设置有误,则在合同级别上这不是从操作码中获取的chainid、链间消息的实际chainid无法正确验证。 这样的漏洞容易被攻击者利用。

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

三、安全建议

引起此次安全事件的原因正在PoW的PoS升级中,Omni Bridge对chainid没有及时处理。 在过于陈旧的索力版中,存在历史遗留的问题。 建议在后续项目迭代中及时应对新问题并采取必要的代码优化措施。 对于Gnosis链上的Omni Bridge,每天最大传输令牌数限制为250Weth,但为了防止乘积增多,导致更大的损失必须警惕。

相关内容

标签: 链上 事件分析 chainid

以太网融合后的重放攻击警戒:跨Omni链桥攻击事件分析文档下载: PDF DOC TXT