Beosin:Wormhole被盗案后续跟进分析_END:NFT

不知道大家是否还记得跨链协议Wormhole于2022年2月遭受黑客攻击这起安全事件,去年Beosin旗下BeosinEagleEye安全风险监控、预警与阻断平台监测显示,?Wormhole?项目方被黑客盗取?12?万枚?ETH,损失金额约3.26?亿美元。

据了解,当时Wormhole协议的开发由交易公司JumpTrading的加密分支JumpCrypto参与,事件发生后,JumpCrypto?宣布投入?12?万枚?ETH?以弥补?Wormhole?被盗损失,支持?Wormhole?继续发展。

此后,Wormhole向黑客提出了1000万美元漏洞赏金和白帽协议方案,以换取资金返还,但黑客似乎并不领情。

而根据blockworks的报道,似乎三天前,这笔资金似乎已经追回,Beosin安全团队也将过程重新梳理与大家分享。

据了解,一直以来Wormhole黑客不断通过各种以太坊应用程序转移被盗资金,最近开设了两个Oasis金库,然而两个保险库都使用了Oasis提供的自动化服务。反制的关键在于Oasis?自动化合约使用可升级的代理模式,这意味着合约所有者可以随时更改合约逻辑。

反制攻击发生于2月21日,当时sender地址(负责执行反制攻击,似乎归Jump所有)被添加为Oasis多重签名的签名者。Sender地址执行了五笔交易用于反制,随后从Oasis多重签名中删除。sender成为合格签名者的时间仅为1小时53分钟。

恢复过程的主要部分发生在第三笔交易中,sender升级了合约,使sender能够将质押物和借款从30100号金库中转移出控制权。Wormhole黑客的错误是将30100号金库的访问权限授予了一个由多方签名控制的可升级代理合同。下面是详细操作。

详细操作

一些地址别名

Oasis多重签名(0x85):拥有Oasis代理合约的12个多重签名中的4个。

Holder(0x5f):目前持有回收的资金。

Sender?(0x04):负责执行反利用。

Jump1(0xf8):用DAI为发送方提供资金以偿还债务并收回抵押品。通常标记为“WormholeDeployer1”,这个钱包被Etherscan、Nansen和Arkham标记为Jump。

Jump2(0xf5):从发送方收到剩余的DAI。通常标记为“JumpTrading”,这个钱包被Etherscan、Nansen和Arkham标记为Jump。

Sender首先初始化一些参数以启动攻击。然后,Sender利用其在OasisMultisig上的特权,通过ServiceRegistry将更改延迟更新为0,从而允许它即时更新代理合约地址。Sender部署了两个新的合约Authorizer和Executor,这些合约用于协议。Sender利用其绕过时间延迟的能力,更新OasisServiceRegistry,使其能够调用Authorizer和Executor代替两个关键的Oasis合约。然后将AutomationExecutor代理地址更新,使Sender完全控制30100金库。

接下来是反攻击的过程。Sender必须关闭30100金库并将其迁移到由OasisMultisig控制的新金库中。

首先OasisMultisig调用AutomationExecutor合约,从而完全控制30100金库。

然后调用Authorizer合约,这会使协议认为30100金库?可以合法地被Sender关闭。Authorizer成功通过验证步骤。

再次调用Executor合约,创建一个新的30231金库,将抵押品和借入的DAI从30100金库迁移到30231金库,并将30231的所有权转移给OasisMultisig。

最后将120,695.43的wstETH抵押品和76.39M的借入DAI从30100金库移动到30231金库。Authorizer合约再次被调用,以验证30100金库已关闭,最后,Sender将代理合约恢复到其原始地址,任务完成。

Figure1?sender?transfer

Beosin总结

Oasis协议的漏洞利用的过程中。Wormhole黑客将30100金库的访问权限交给了由多签控制的可升级代理合约。在整个过程中,Authorizer合约和Executor合约扮演了关键角色,但如果没有通过升级AutomationExecutor代理提供的完全控制,攻击将不可能实现。

一旦Sender完成了反制攻击,它就从OasisMultisig中被移除。仅在30分钟后,Sender就开始从Jump1收到DAI。Jump1总共发送了80MDAI。Sender用78.3MDAI来清算新创建的金库中的贷款,其余部分则发送给Jump2。

在清除DAI债务之后,抵押品从wstETH和rETHVaults中提取并发送给Holder。自从到达Holder的时间以来,这些资产就没有移动过。

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

金宝趣谈

ICPBankless:如何创建一个NFT社区_NFT:WIT

选择你的冒险(和金库堆栈)假设你是一名拥有大约100个持有人的NFT艺术家。你可能对创建一个社区休息室感兴趣,在那里你的持有者可以联系并进行亲密对话,并获得关于你工作的未来更新.

[0:46ms0-6:515ms