月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 币赢 > 正文

OPTI:重入攻击 + 管理漏洞:2000 万枚 OP 被盗事件分析_OPT

作者:

时间:1900/1/1 0:00:00

2022 年 6 月 9 日消息,据 Optimism 与加密货币做市商 Wintermute 透露,2000 万个 Optimism 代币被黑客盗取。6 月 9 日,Optimism 基金会向 Wintermute 授予了 2000 万枚 OP 代币。

交易发送完成后,Wintermute 发现无法访问这些代币,因为提供的地址是他们尚未部署到 Optimism/L2 的 Ethereum/L1 多签地址。该 Optimism/L2 多签地址由黑客部署,2000 枚 OP 代币也被黑客盗取。

5 月 27 日,Optimism 基金会通过多签合约分两次向 Wintermute 的多签合约地址转账 2000 万 OP 代币,并且在 26 日转账 1 枚 OP 代币,3 笔交易如下:

BlockSec:已确认EraLend遭到只读重入攻击,总损失为340万美元:7月25日消息,BlockSec 表示,其正在协助 EraLend 解决攻击调查问题,并已确定根本原因,即只读重入攻击,总损失为 340 万美元。[2023/7/25 15:57:59]

根据交易时间以及交易中 OP 代币数量,我们分析,在 26 日,Optimism 基金会向 Wintermute 多签合约地址转账 1 枚 OP 代币作为测试,Optimism 基金会在 Wintermute 确认收到代币后将 2000 万枚 OP 代币通过连续的两笔交易发送给 Wintermute 多签合约地址。接收地址是 Wintermute 在 Ethereum/L1 上已部署的多签合约地址,因此 Wintermute 仅仅验证是否接收到了代币,但并没有验证该地址在 Optimism/L2 上的所有权,而此时在 Optimism/L2 上并没有实际部署多签合约,这才给了黑客可乘之机。

以上转账交易中的相关地址如下:

(1)Optimism 基金会在 Optimism/L2 上的多签合约地址:

0x2501c477d0a35545a387aa4a3eee4292a9a8b3f0(简记为0x2501)

NFT金融化协议Omni protocol遭攻击,是由NFT重入引起:7月10日消息,据BlockSec,去中心化NFT金融化协议Omni protocol遭到攻击。

攻击者利用ERC721的重入了清算函数。由于Omni protocol的清算逻辑存在问题,在清算后不正确地清空了攻击者债务,因此攻击者可以获利。[2022/7/10 2:03:47]

(2)Wintermute 在 Ethereum/L1 上的多签合约地址(Wintermute Exploiter Multisig):

0x4f3a120E72C76c22ae802D129F599BFDbc31cb81(简记为0x4f3a)

同时,Optimism/L2 上的 0 x4 f3 a 也是黑客部署的多签合约地址。

接下来,我们将从链上交易的角度详细分析一下黑客的攻击行为以及原理。

首先,我们看一下 Optimism/L2 上的 0 x4 f3 a 合约部署交易:

txHash是0x00a3da68f0f6a69cb067f09c3f7e741a01636cbc27a84c603b468f65271d415b

Gnosis Chain硬分叉成功执行,已升级容易受到重入攻击的代币合约:4月20日消息,Gnosis Chain硬分叉已成功执行,此次硬分叉更新了桥接代币,旨在升级容易受到重入攻击(reentrancyattack)的代币合约(Agave和Pored Finance等)。

此前报道,3月16日Gnosis Chain上Hundred Finance与Agave遭遇闪电贷攻击,损失超1100万美元。[2022/4/20 14:36:20]

注意到,该合约部署时间是 6 月 5 日,其中 Wintermute/OP Exploiter 是黑客的一个地址,简记为 0 x60 b2。

该交易是如何准确生成 0 x4 f3 a 合约地址的呢?

黑客重放了 3 笔交易,尤其是最后的 Gnosis Safe: Proxy Factory 1.1.1 合约创建的交易,如下所示:

(1)Ethereum/L1 上的交易如下:

Akropolis重入攻击事件:攻击者使用自己构造token导致合约使用相同差值铸币两次:11月14日,慢雾发布DeFi协议Akropolis重入攻击事件简析。内容显示:

1. 攻击者使用自己创建的token进行deposit,此时Akropolis合约会先记录一次合约中所有代币的总量;

2. Akropolis合约调用用户自己创建的token的transferFrom函数的时候,攻击者在transferFrom函数中重入Akropolis合约的deposit函数,并转入DAI到Akropolis合约中;

3. 此时在重入的交易中,由于Akropolis合约会先获取合约中所有代币的总量,这个值和第一次调用deposit函数获取的合约代币总量的值一致;

4. Akropolis合约计算充值前后合约中代币总量的差值,攻击者在充值DAI后,会得到一定量的Delphi token,获得token的数量就是充值DAI的数量;

5. 铸币完成后,流程回到第一次deposit往下继续执行,这时合约会再次获取合约中所有代币的总量,这时由于在重入交易时,攻击者已经转入一定量的DAI,所以得到的代币总余额就是攻击者在重入交易完成后的代币总余额;

6. 此时合约再次计算差值,由于第一次deposit的时候合约中所有代币的总量已经保存,此时计算出来的差值和重入交易中计算的差值一致,Akropolis合约再次铸币给攻击者。总结:攻击者使用自己构造的token,对Akropolis合约的deposit函数进行重入,导致Akropolis合约使用相同的差值铸币了两次,但是只触发了一次转账,当攻击者提现的时候,就可以提两倍的收益,从而获利。[2020/11/14 20:48:37]

动态 | DAO损失1.2亿美金的“重入漏洞” 重现江湖:近日,降维安全实验室(johnwick.io)监测到成人娱乐系统spankchain支付通道(payment channel)关联的智能合约LedgerChannel遭到了重入攻击。某黑客发现了该支付通道合约的重入漏洞(Reentrancy),并于北京时间2017年10月7日上午8时许创建了恶意攻击合约,随后成功从该合约窃取了165.38 ETH,约合3.8万美元价值的以太币。[2018/10/10]

(2)Optimism/L2上的交易:

通过重放交易,黑客在 Optimism/L2 上面创建了跟 Ethereum/L1 上完全相同(地址与合约代码相同)的 Gnosis Safe: Proxy Factory 1.1.1 合约,其中创建代理合约函数如下:

Gnosis Safe: Proxy Factory 1.1.1 合约使用的是 0.5 版本的 Solidity,使用 new 来创建合约时使用的是 create 命令,而不是 create2。使用 create 命令创建合约,合约地址是 msg.sender 以及 nonce 来计算的。在 Ethereum/L1 上面,创建多签合约 0 x4 f3 a 的 msg.sender 就是 Gnosis Safe: Proxy Factory 1.1.1 的地址,黑客在 Optimism/L2 通过重放交易来创建于 Gnosis Safe: Proxy Factory 1.1.1 合约的主要目的就是为了保证在 Optimism/L2 上创建合约 0x4f3 a 的 msg.sender 与在 Ethereum/L1 上一致,那么黑客可以很方便的通过智能合约(合约 0 xe714)调用 createProxy 函数来创建出地址是 0 x4 f3 a 的合约。在该交易中创建过程如下所示:

另外,合约0xe714的部署是在6月1日的以下交易中完成的:

txHash: 0x69ee67800307ef7cb30ffa42d9f052290e81b3df6d3b7c29303007e33cd1c240

发起交易地址是0x8bcfe4f1358e50a1db10025d731c8b3b17f04dbb(简记为0x8bcf),这也是黑客所持有的地址。同时,这笔交易也是0x8bcf发起的第一笔交易,资金来源于Tornado:

整个过程从时间上看,

(1)5 月 27 日,Optimism 地址 0 x2501 向 Optimism/L2 上的 0 x4 f3 a 地址转账 2000 万 OP,0 x4 f3 a 地址在 Ethereum/L1 上是 Wintermute 的多签合约地址,但此时在 Optimism/L2 上面并没有部署合约;

(2)6 月 1 日,黑客地址 0 x8 bcf 部署合约 0 xe714。

(3)6 月 5 日,黑客通过重放 Ethereum/L1 上的交易创建了 Gnosis Safe: Proxy Factory 1.1.1 合约,其地址与 Ethereum/L1 上一样;然后地址 0x60b2 通过合约 0 xe714 部署了多签合约 0 x4 f3 a,合约所有权归黑客所有,因此 5 月 27 日转入的 2000 万 OP 被黑客盗取。

(4)6 月 5 日,多签合约 0 x4 f3 a 在接收到 2000 万 OP 后,将 100 万 OP 转账给黑客地址 0 x60 b2,然后将 100 万 OP 兑换成了 720.7 Ether。

(5)6月9日,合约0x4f3a将其中的100万OP转账给了账户地址0xd8da,

其他的1800万OP仍然在合约0x4f3a中。

引发本次安全事件的根本原因是交易重放、Solidity旧版本漏洞以及主链和侧链交易签名验证等综合因素,并不是因为项目方合约代码存在漏洞。

另外,针对本次事件,项目方反应不及时、对合约管理不严格等也给了黑客可乘之机;从攻击时间线和攻击准备上看,也不排除OP内部有内鬼串通作案的可能。

标签:OPTITIMIOPTOptimismOptimism DogeOptimism DogeOPTCMOptimism BOB

币赢热门资讯
JOE:深入了解波卡跨共识消息 XCM(2)_mobileradiostation

在近期的 Zero Knowledge 播客节目中,Parity 联合创始人 Rob Habermeier 分享了 XCM 如何允许平行链相互通信。本文是该播客的第二部分.

1900/1/1 0:00:00
元宇宙:元宇宙将为数百万人创造就业机会_Infinity Arena

传统上,创造就业机会是由家们设计的,他们急切地让国家恢复工作,刺激经济发展。从大萧条时期的就业创造计划到美国总统巴拉克·奥巴马(BarackObama)的《美国就业法案》,就业计划有着漫长而.

1900/1/1 0:00:00
ETH:金色观察 | stETH脱锚?分析称可能由于恐慌、杠杆等原因导致价格下跌_STE

近期stETH脱锚事件愈演愈烈,数据显示,stETH 脱锚,价值一度跌至0.95 ETH,不少分析认为可能会由于恐慌、杠杆等原因导致价格下跌.

1900/1/1 0:00:00
WEB:红杉资本Web3布局(附项目深度解读)_web3域名有什么用

风投资金正不断涌入“Web3”。伴随着去年元宇宙概念的走红,Web3也成为了今年最火的名词。小到币圈的创业者,大到顶级的VC,无不都在谈论有关Web3的话题.

1900/1/1 0:00:00
区块链:金色趋势丨市场底可能还需要时间_以太坊

目前5月已收线,可以看到BTC月线实体跌破颈线35000,那么这里将成为趋势压制区,月线在未重新有效突破前,建议逢高减仓,目前月线刚有效跌破,反弹后注意再次下探风险.

1900/1/1 0:00:00
EFI:Cointelegraph:2022年GameFi报告_MEFI

如果你不熟悉Cointelegraph,那么你一定对加密货币非常陌生。这是因为Cointelegraph是目前最受欢迎的加密新闻网站之一.

1900/1/1 0:00:00