CRV:闪电贷攻击 错误权限配置 2500万美元付诸东流

一、事件概览

美国东部标准时间5月12日上午9:44分,链必安-区块链安全态势感知平台监测显示,DeFi质押和流动性策略平台xToken遭到攻击,xBNTaBancor池以及xSNXaBalancer池立即被耗尽。据统计,此次xToken被黑事件造成约2500万美元的损失。

尽管在事件后,xToken团队第一时间发布声明,并针对被黑原因以及后续补救措施,作出积极回应;但成都链安·安全团队认为此次xToken被黑事件具备相当程度的典型性,涉及到闪电贷攻击、价格操控等黑客常用攻击套路,因此立即介入分析,将xToken被黑事件的攻击流程进行梳理,希望以此为鉴,为广大DeFi项目方敲响警钟。

BSC链上DEX协议JulSwap遭到闪电贷攻击:5月28日消息,PeckShield派盾预警显示,BSC链上DEX协议、自动化的流动性协议的JulSwap遭到闪电贷攻击,$JULB短时跌幅逾95%。[2021/5/28 22:51:36]

二、事件分析

在本次被黑事件中,攻击者共计在同一笔交易中利用了两个典型攻击套路。

其一,黑客利用了闪电贷操作DEX中SNX的价格,进而影响了xSNX中的铸币,旨在达到套利的目的;

其二,黑客利用了xBNT合约中的错误的权限配置,传入预期外的路径地址,从而达到利用空气币完成获利的目的。

PancakeBunny更新代码以防止此前类似闪电贷攻击再次发生:官方消息,PancakeBunny针对此前闪电贷攻击表示,已更改代码,以防止类似闪电贷攻击再次发生,主要包括:1. 函数[PriceCalculatorBSC.sol]已更新,因此代币价格预言机可以使用Chainlink合约;2. 更新代码以便如果Bunny minter的货币对合约中存在不平衡的货币对,协议将对其进行检查,消除过多的不规则(灰尘)并无缝地消除流动性。PancakeBunny已经对该策略进行了回测,并确认它可以阻止潜在的闪电贷攻击。[2021/5/21 22:29:07]

接下来,我们一起来还原一下黑客是如何利用“闪电贷攻击?错误权限配置”,完成了整个攻击流程的。

慢雾发布Value DeFi协议闪电贷攻击简要分析:据慢雾区消息,Value DeFi遭遇闪电贷攻击的分析如下:

1.攻击者先从Aave中借出8万个ETH;

2.攻击者使用8万个ETH在Uniswap WETH/DAI池中用闪电贷借出大量DAI和在Uniswap WETH/DAI兑换大量USDT;

3.用户调用ValueMultiVaultBank合约的deposit合约使用第2步中小部分DAI进行充值,该合约中一共有3种资产,分别是3CRV、bCRV、和cCRV。该合约在铸币时会将bCRV, cCRV转换成以3CRV进行计价,转换完成后,Value Defi合约根据总的3CRV价值和攻击者充值的DAI数量计算mVUSD铸币的数量;

4.攻击者在Curve DAI/USDC/USDT池先使用第二步中剩余的大部分DAI和USDT兑换USDC,拉高USDC/3CRV的价格;

5.攻击者发起3CRV提现,这时会先将合约中的bCRV, cCRV转换成以3CRV计价,由于USDC/3CRV价格已被拉高,导致bCRV, cCRV能换算成更多的3CRV;

6.攻击者使用3CRV换回DAI,并在Uniswap中兑换回ETH,然后归还Aave的闪电贷 。

总结:由于 Value Defi 合约在铸币过程中将合约资产转换成 3CRV 时依赖 Curve DAI/USDC/USDT 池 中 USDC/3CRV的价格,导致攻击者可以通过操控 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的价格来操控 mVUSD/3CRV 的价值,从而获利。[2020/11/15 20:52:09]

???准备工作

1、攻击者首先利用闪电贷借出大量资金;

2、分别利用Aave的借贷功能和Sushiswap的DEX等功能,以获取大量的SNX代币;

3、再在Uniswap大量抛售SNX,进而扰乱SNX在Uniswap的价格;

???攻击开始

4、使用少量的ETH获得大量的xSNX;

原理解释:

此次攻击者利用了xSNX合约支持ETH和SNX进行兑换xSNX的机制。具体而言,当用户传入ETH后,合约会将用户的ETH通过Uniswap兑换为等值的SNX之后再进行xSNX的兑换。由于攻击者在“准备工作”中的1~3的操作,此时Uniswap中的ETH对SNX的价格是被操纵的,这就使得少量的ETH能够兑换大量的SNX,进而再兑换大量的xSNX。

???攻击收尾

5、攻击者在Bancor中售卖获利,由于Bancor中的价格并未受到影响,因此价格彼时仍然是正常的。此时攻击者得以套利,之后归还闪电贷;

???第二次攻击开始

6、再利用获得的利润来兑换大量的xBNT。

原理解释:

此次攻击者利用了xBNT合约支持ETH铸币xBNT的功能,合约会将ETH在Bancor中转化为BNT后进行铸造xBNT,但需要注意的是,此铸造函数可以指定兑换路径,即不需要兑换成BNT也可进行铸造,这就使得攻击者能够任意指定兑换代币的地址。

三、事件复盘

在xToken团队的官方回应中,表达了对此次被黑事件造成的资产损失深感遗憾,并提到在未来即将推出的产品中会引入一项安全功能,以防止此类攻击。但遗憾的是,由于尚未在整个产品系列中引入这一安全功能,由此导致2500万美元资金损失。

针对xToken被黑事件,成都链安·安全团队在此提醒,随着各大DeFi项目的不断发展,整个DeFi世界将越来越多变,新型项目往往会与之前的DeFi项目在各个方面进行交互,如上文提及的Aave和DEX等等。因此,在开发新型DeFi项目之时,不光需要注意自身逻辑的安全与稳定,还要考虑到自身逻辑与利用到的基础DeFi项目的整体逻辑是否合理。

同时,我们建议,各大DeFi项目方也需要积极与第三方安全公司构建联动机制,通过开展安全合作、建立安全防护机制,做好项目的前置预防工作与日常防护工作,时刻树牢安全意识。

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

地球链

USDT比特币:价值币一地鸡毛 先捡一点吧

狂人本着负责,专注,诚恳的态度用心写每一篇分析文章,特点鲜明,不做作,不浮夸!本内容中的信息及数据来源于公开可获得资料,力求准确可靠,但对信息的准确性及完整性不做任何保证,本内容不构成投资建议.

[0:31ms0-0:644ms