值得信赖的区块链资讯!
比推数据  |  比推终端  |  比推英文  |  比推 APP  | 

下载比推 APP

值得信赖的区块链资讯!
iPhone
Android

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

Beosin

原文作者:Beosin

原文来源:Beosin

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

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

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

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

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

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

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

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

详细操作

一些地址别名

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

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

Sender (0×04):负责执行反利用。

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

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

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

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

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

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

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

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

Beosin:Wormhole被盗案后续跟进分析Figure 1 sender transfer

Beosin总结

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

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

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

说明:比推所有文章只代表作者观点,不构成投资建议
原文链接:https://www.bitpush.news/articles/3721156

比推快讯

更多 >>

下载比推 APP

24 小时追踪区块链行业资讯、热点头条、事实报道、深度洞察。

邮件订阅

金融科技决策者们都在看的区块链简报与深度分析,「比推」帮你划重点。