事件的最初
2022年2月2日18:24:13+UTC,一名神秘的攻击者在Solana区块链上发起了一次攻击。
攻击者的地址是https://solscan.io/account/CxegPrfn2ge5dNiQberUrQJkHCcimeR4VXkeawcFBBka
而攻击的目标是 Wormhole 跨链桥。最终,攻击者成功地从 Solana 链上获取了120000 WETH,并将其通过跨链桥转移到了以太坊上。具体的原因不再赘述,我们知道他已经成功将获得的 WETH 转移到了他们在以太坊上的地址。
其中最大的一笔转移价值93750个 WETH,地址为:https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a。
随后,攻击者发出了最后一笔交易,用于提取存在 WETH 合约中的 WETH。
最大的一笔交易,地址为:https://etherscan.io/tx/0xacd309b02e4b533484d148de9ab0adf367ed4e70ed751d1ff036152dc3bc0479,获取了80000 ETH。此后,攻击者再也没有出现过,留下了这个令人震惊的事件...
最近发生的事情
2月21日,120000ETH被找回来了,它是怎么做到的?
我们接着继续说:经过将近一年的静默,攻击者突然再次活跃起来它的首笔交易是一个简单的转账交易:https://etherscan.io/tx/0x467a992fbfa162f3c83b21a9e150aae1c566360d82e9ea4883752901c66dc02c。
接着,攻击者使用手中的93750个ETH,通过交易:https://etherscan.io/tx/0x5b7a789deafa61792c62e17f2b18e8a76ca995b77853ba54d20d755a98120a5b在 OpenOcean(https://etherscan.io/address/0x6352a56caadc4f1e25cd6c75970fa768a3304e64)上将其兑换为95677个stETH。
随后,攻击者将手中的95677个stETH,通过交易 https://etherscan.io/tx/0x38a32f29629676d3485f341aec0d59317246763ba01e6d1202aef4ba8e462220在 Lido 的兑换合约(https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84)将95677个stETH兑换为了85673个wstETH。攻击者手中还剩下约25000ETH,也将其兑换为wstETH。
这样,攻击者将自己手中获利的大部分ETH兑换为了85673个wstETH。那么,什么是wstETH,以及 Oasis Vault 的运作原理呢?我们需要理解这些概念才能更好地理解钱是如何被拯救回来的。
什么是Oasis Vault?
Oasis.app 成立于 2019 年,使用户能够与 Maker 协议进行交互。去中心化金融 (DeFi) 平台允许其用户借入 Dai 并充分利用其加密资产。在这之中,任何人都可以打开一个Vault,并进行抵押wstETH,借出DAI来进行资金操作,在Oasis.app的官网https://kb.oasis.app/help/why-open-a-vault中,它们对这种运行机制给出了许多优点,包括增加风险敞口,增加资金流动性、增加被动收入等等
Oasis Vault有什么设计上的特点?
Oasis有一个有趣的功能,即自动购买和自动销售https://kb.oasis.app/help/what-is-auto-buy-and-auto-sell在功能的描述中,自动购买和自动出售可自动管理保险柜的抵押率。只需单击几下,您就可以创建一个在预配置的触发点执行的自动化策略,将保管库的抵押率移动到此目标值。
与攻击有什么关系?
在攻击者打开Vault仅仅9分钟后,攻击者似乎想要避免在这个动荡的加密货币市场不受到意外损失,它打开了自动交易模式,而为了实现这个特点,Oasis采用了AutomationBot的方式,我们以攻击者打开的Vault 30100为例,它的地址如下:https://etherscan.io/address/0x4288382dd4e559dc79dc62595ff27251c7c7a2f2#code他打开了一个Vault,想要实现其自动购买,自动出售,也就是自动止盈止损的功能,则需要另外一笔交易,而攻击者在打开这个Vault9分钟后,便开启了这个功能,打开Vault的交易是:https://etherscan.io/tx/0xbb0dee4a7f682dc5d8778c0f842b25f937f02663f6b3764813abac72956c31ae而开启这个自动功能的交易是:https://etherscan.io/tx/0xf11f1225b61fcce8e7fc49097e3e09a50dce65f46b7178054005841d831d8ae2
这个自动交易,会对这个Vault做哪些事情?
在这之中,有一个关键角色是AutomationBot合约,它的代理合约是https://etherscan.io/address/0x4288382dd4e559dc79dc62595ff27251c7c7a2f2#code,它的逻辑合约是https://etherscan.io/address/0x6e87a7a0a03e51a741075fdf4d1fcce39a4df01b#code,只要自动交易功能的添加,都会调用AutomationBot合约首先,开启功能的交易会调用AutomationBot的addTriger功能,在其合约中添加所支持的Vault同时,最关键的是,AutomationBot所对应的代理合约会获得对Vault的访问权限而一个可升级的代理合约意味着,它的逻辑可以被替换.
核心步骤
一系列操作做完后,攻击者的钱被存在了vault中,获得了dai,同时授予给了AutomationBot这样一个可升级合约以Vault的资金访问权限那么,钱是如何救回来的?我们直接看关键交易,核心的挽救交易发生在https://etherscan.io/tx/0x4f4117317a9f69915cbd060dc649c91bdc2963ea326ede46b14a2d8ef9007617,在分析这个交易之前,我们首先要知道,挽救的最初始交易发生在https://etherscan.io/tx/0x1c50b75828613d94082c64affb9fb03e2d0566353b38d304a1a9963161b1b1dc,在这个最初始交易中,owner被添加了
具体而言,这笔最初始交易的作用是为Oasis Multisig添加一个签名者,用来后续的准备工作那么核心挽救交易是如何运作的,我们来看一下:
- 第一个核心点在于,AutomationBot的逻辑地址更新为了Oasis Multisig,同时这一步发生在
- 第二个核心点是,获取权限后,将原有的Vault资金转移到新Vault,并将权限转移给0x85f...
我们查看一下更新的这个挽救资金的合约的合约代码,虽然并没有公开源代码,但我们可以从反编译的结果中窥见到逻辑:
对应实际交易中的
具体而言,它将120695个wstETH由Vault 30100转移到了Vault 30231
以此核心步骤,就完成了攻击者的资金的反向盗取当然,反向盗取后,原来的Vault30100依然需要恢复原样,如下:
最终,我们的资金被拯救回来了
总结
这是一个由多签权限作为基础,代理合约升级作为核心,Vault资金转移作为手法的资金反向获取手段
发生了什么有趣的事情?
在攻击者沉寂一年之后操作的这一个月内,攻击者收到了几条信息,其中一条是wormhole官方发给他的,在交易https://etherscan.io/tx/0x63d83b510a744b00f8e33470873ce4e53a5551e39ece35e45a5ca202b471a913中,经过解析后,它的内容是:We would like to reiterate our previous offer of a $10 million bounty for the total return of all the stolen funds. You can reach out to us at [email protected] or reply on chain.不过,看起来攻击者并没有理会这又一次的bounty机会在一天后,也就是交易https://etherscan.io/tx/0x3d675cec5255b7b60f761af0b7690685c801da7a5586caa311a607b39b95155d中,攻击者又收到了一条消息,经过解析后,它的内容是:Hello. Would you please consider supporting my project? There are several ways to do so. You could purchase tokens on Uniswap, you can mint our digital collectibles in the very near future, or you can simply send ETH to this wallet address. Any amount would be greatly appreciated (of course, 100 ETH would be amazing though LOL). Whale support would mean a great deal for our project, and would change the lives of everyone involved and the lives of their families. The website for the project and the contract address for the token are below:ªWebsite: https://ethmonarchclub.comªToken Contract Address: 0x15ea036F8540d4c7aDA666Ea4F07617b4DA8dF5C
- Sign-up:https://app.metatrust.io/sign-up
- Sign-in:https://app.metatrust.io/sign-in
Twitter: https://twitter.com/MetatrustLabs
所有评论