玩币族移动版

玩币族首页 > 区块链资产 >

黑客获利超700万美元Op链上ExactlyProtocol遭黑客攻击事件分析

2023年8月18日,据Beosin-Eagle Eye态势感知平台消息,Optimism链的DeFi借贷协议Exactly Protocol遭受黑客攻击,黑客获利超700万美元。

攻击发生之后,Exactly Protocol在社交媒体上表示,正在尝试与攻击者沟通,以归还被盗资产,已向警方提交报告。

三天之后的8月21日,Exactly Protocol发文表示协议现已解除,用户可以执行所有操作,也没有发生任何清算。为了明确起见,黑客攻击只影响到使用外围合约(DebtManager)的用户。没有使用该合约的用户没有任何损失,协议仍在正常运行。

Beosin安全团队第一时间对本次事件进行了分析,结果如下。

事件相关信息

●攻击交易

0x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e

0x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad6

0xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585

●攻击者地址

0x3747dbbcb5c07786a4c59883e473a2e38f571af9

●攻击合约

0x6dd61c69415c8ecab3fefd80d079435ead1a5b4d

0x995a24c99ea2fd6c87421d516216d9bdc7fa72b4

●被攻击合约

0x16748cb753a68329ca2117a7647aa590317ebf41

漏洞分析

漏洞合约中的多个Market地址参数可被操控。攻击者通过传入恶意的Market合约地址,成功绕过permit检查,执行了恶意的deposit函数,窃取了用户的抵押品USDC并清算用户资产,最终实现了攻击者的盈利目的。

攻击流程

我们以0x3d6367…这笔交易为例

攻击准备阶段:

1.攻击者创建了多个恶意Market合约

攻击阶段

1.攻击者调用漏洞合约的leverage函数(杠杠函数)传入伪造的market合约地址,由于market地址未校验合法性,permit检查被绕过并将_msgSender更改为受害者地址,这里为步骤3窃取受害者资产做了准备。

2.leverage函数会继续调用恶意market合约中的deposit函数,进而执行攻击者的恶意代码

3.deposit函数中的恶意代码会先创建一个V3 恶意token/USDC的池子,然后再重入进漏洞合约的crossDeleverage函数。由于marketIn和marketOut同样可控,导致crossDeleverage函数计算的V3池子最终为攻击者创建的V3池子。

4.此时由于_msgSender已经修改为了受害者,crossDeleverage函数进一步调用攻击者创建的V3池子的swap函数用作闪电贷,并在回调函数uniswapV3callback中将受害者的资金转入至V3池子中。

5.攻击者移除流动性将受害者资金从V3池子中窃取出来。

6.由于受害者抵押资金被转走,满足清算条件,攻击者进一步清算了受害者的头寸而获得了更多的收益。

资金追踪

截止发文时,被盗资金已通过Optimism bridge和Across Protoco跨链至以太坊。

总结

针对本次事件,Beosin安全团队建议:

建议用作凭证代币的合约地址需要填加白名单功能,以免被恶意操控。目前,Beosin已对Optimism链上多个项目诸如DIPX等进行过安全审计,因此Beosin建议项目上线前,选择专业的安全审计公司进行全面的安全审计,规避安全风险。

查看更多

知识: 以太坊 代币 合约 合约地址