8

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

 3 years ago
source link: https://www.chainnews.com/articles/737703431676.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2021 年 08 月 04 日 10:23 AM,慢雾区情报系统捕获到了 Wault.Finance 的 WUSDMaster 合约疑似被黑的情报,慢雾安全团队第一时间介入分析,以下是分析的详细内容。

事件相关方信息

攻击者地址:0x886358f9296de461d12e791bc9ef6f5a03410c64

攻击者合约地址 A:0xaa895873a268a387e38bd841c51d2804071197a1

攻击者合约地址 B:0x50afa9383ea476bdf626d6fba62afd0b01c8fea1

被攻击的项目:https://app.wault.finance/bsc/#wusd

被攻击的项目地址:0xa79fe386b88fbee6e492eeb76ec48517d1ec759a (Wault.Finance 的 WUSDMaster 合约)

事件相关方背景

攻击者:黑客通过创建了攻击合约地址 A,并在合约的构造函数中发起攻击。

被攻击项目:WUSDMaster 是一个质押 BSC_USDT 换取 WUSD 的合约,可以通过质押 (stake) BSC_USDT 来获得 WUSD, 通过赎回 (redeem) 将 WUSD 燃烧,然后换成 BSC_USDT,在这过程中一部分资金会转给金库 (Treasury), WUSDMaster 会用 WEX 补贴给用户。

攻击事件的核心点

WUSDMaster 合约的 stake 函数中,会在质押的时候 1:1 兑换 BSC_USDT 和 WUSD,但是它还进行了一次 swap 操作,正是因为这个 swap 操作导致可以被黑客利用进行套利。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

核心问题点 :允许数量 1:1 兑换 BSC_USDT 和 WUSD 的同时,WUSDMaster 的 swap 操作会额外导致 WaultSwapPair(BSC_USDT-WEX) 的池子中的代币失衡,从而形成套利空间。

注意:BSC_USDT 和 WUSD 也可以理解为价格上也是 1:1

攻击事件的剖析

攻击的交易 Txid

0x31262f15a5b82999bf8d9d0f7e58dcb1656108e6031a2797b612216a95e1670e

攻击的合约地址

0xaa895873a268a387e38bd841c51d2804071197a1

攻击者地址

0x886358f9296de461d12e791bc9ef6f5a03410c64

被攻击的项目地址

0xa79fe386b88fbee6e492eeb76ec48517d1ec759a (wault.finance 的 WUSDMaster 合约)

我们可以把本次的过程分为 3 个阶段:准备套利资金、构造套利空间、实施套利

第一阶段:通过闪电贷获得初始攻击资金

1、在 WaultSwapPair (BSC_BUSD-WUSD) 中通过闪电贷借了 16,839,004 枚 WUSD;

2、调用 WUSDMaster 合约中的赎回 (redeem) 函数,将闪电贷借到的 WUSD 燃烧掉,换成 BSC_USDT 和 WEX;

3、去 PancakePair (WBNB-BSC_USDT) 中通过闪电贷借了 40,000,000 枚 BSC_USDT;

4、将借到的 23,000,000 枚 BSC_USDT 在 WaultSwapPair (BSC_USDT-WEX) 中换成了 WEX。此时攻击者已经做好了套利的准备。

WEX 的数量:624,440,724 = 106,502,606 + 517,938,118

WEX 的来源:redeem 操作 + WaultSwapPair (BSC_USDT-WEX) 中兑换所得

第二阶段:使 BSC_USDT-WEX 池子失衡形成套利空间

1、 多次 (68 次) 调用 WUSDMaster 合约中的质押 (stake) 函数;

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

2、stake 函数会执行
wswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens 将质押一部分的 BSC_USDT 换成 WEX,这样就会使得 WaultSwapPair (BSC_USDT-WEX) 池子的 WEX 数量减少,价值变高;

3、多次 stake 之后 BSC_USDT-WEX 池子中,BSC_USDT 数量多,WEX 数量少,形成套利空间;

4、且攻击者每次调用 stake 都会以 1:1 的兑换方式使用 BSC_USDT 兑换 WUSD,所以攻击者在这一步的兑换可以无损的情况下就额外的将 BSC_USDT-WEX 池子打失衡了。

第三阶段:进行套利,并偿还闪电贷

1、攻击者将第一阶段准备好的 WEX 在已经失衡的 BSC_USDT-WEX 池子中进行兑换,就可以换出更多的 BSC_USDT;

624,440,724 枚 WEX => 25,930,747 枚 BSC_USDT

2、攻击者将多次 (68 次) 调用 stake 函数所得到的 WUSD 在偿还闪电贷之后,剩余 110,326 枚 WUSD 通过 WaultSwapPair (BSC_BUSD-WUSD) 换成了 BSC_BUSD;

110,326 枚 WUSD => 109,284 枚 BSC_BUSD

3、将所得到的 BSC_USDT 和 BSC_BUSD 还完闪电贷后换成了 BEP_ETH。

MistTrack 分析过程

慢雾 AML 团队分析统计,最终攻击者获利 370 枚 BEP_ETH,并通过 Anyswap 进行资金转移,约损失 93 万美元。

资金流向分析

慢雾 AML 团队分析发现,攻击者相关的钱包地址情况如下:

攻击者地址:

0x886358f9296De461d12e791BC9Ef6F5a03410C64

慢雾 AML 旗下 MistTrack 反洗钱追踪系统分析发现,攻击者首先从 Binance 提币,获得初始资金,接着部署了合约。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

通过三次操作,攻击者将 ETH 兑换为 anyETH,再通过跨链平台将所得 ETH 跨链到以太坊地址 :

0x886358f9296De461d12e791BC9Ef6F5a03410C64。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

值得注意的是:

1.、跨链后的以太坊地址:

0x886358f9296De461d12e791BC9Ef6F5a03410C64 有一笔交易转出到了 Binance。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

2、攻击者获利地址最初的一笔交易是来自混币平台 Tornado.Cash 转入的 100 ETH。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

事件梳理 (UTC)

- 1:25:07 攻击者从 Tornado Cash 提取 100 ETH

- 1:27:09 攻击者充币到币安 1 ETH

- 1:35:24 攻击者从币安提现 2 BNB 到 BSC

- 1:35:27 攻击者从币安提现 0.72213159 Binance-Peg ETH 到 BSC

- 1:43:52 - 1:49:05 攻击者在 BSC 上部署合约实施攻击

截止目前,攻击者获利地址

0x886358f9296De461d12e791BC9Ef6F5a03410C64 共有余额 468.99 ETH。

又一经典的闪电贷套利 —— Wault.Finance 被黑事件分析

总结

本次攻击事件是经典的利用闪电贷进行套利的案例,由于经济模型上的设计缺陷导致的攻击者可以对 WaultSwapPair (BSC_USDT-WEX) 的池子进行套利攻击。项目方在开发之初也要关注经济模型的设计所带来的攻击面,建议让第三方专业的团队或专家对项目在 DeFi 各种场景下的攻击面进行推演,排查可能的攻击面,从经济模型和架构设计上对项目进行优化和加固。

慢雾 AML 团队已经将攻击者地址加入到 AML 系统中进行监控,并且使用了 AML 系统的联动能力尽可能的对攻击者资金进行封堵。

参考攻击交易:

https://bscscan.com/tx/0x31262f15a5b82999bf8d9d0f7e58dcb1656108e6031a2797b612216a95e1670e

来源链接:mp.weixin.qq.com

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻 ChainNews 立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK