一、事件概览
美国东部标准时间5月12日上午9:44分,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)监测显示,DeFi质押和流动性策略平台xToken遭到攻击,xBNTa Bancor池以及xSNXa Balancer池立即被耗尽。据统计,此次xToken被黑事件造成约2500万美元的损失。
尽管在事件后,xToken团队第一时间发布声明,并针对被黑原因以及后续补救措施,作出积极回应;但成都链安·安全团队认为此次xToken被黑事件具备相当程度的典型性,涉及到闪电贷攻击、价格操控等黑客常用攻击套路,因此立即介入分析,将xToken被黑事件的攻击流程进行梳理,希望以此为鉴,为广大DeFi项目方敲响警钟。
CertiK:EFVault的代理合约ENF ETHLEV经历了一次闪电贷攻击:金色财经报道,据CertiK官方推特发布消息称,EFVault的代理合约ENF_ETHLEV经历了一次闪电贷攻击。据悉,攻击者进行了多笔利用攻击,获利528,000美元。[2023/8/9 21:34:23]
二、事件分析
在本次被黑事件中,攻击者共计在同一笔交易中利用了两个典型攻击套路。
其一,黑客利用了闪电贷操作DEX中SNX的价格,进而影响了xSNX中的铸币,旨在达到套利的目的;
BSC链上项目xWin 遭到闪电贷攻击:北京时间 6月25日,PeckShield派盾预警显示,DeFi 协议 xWin遭到闪电贷攻击。[2021/6/25 0:05:15]
其二,黑客利用了xBNT合约中的错误的权限配置,传入预期外的路径地址,从而达到利用空气币完成获利的目的。
接下来,我们一起来还原一下黑客是如何利用“闪电贷攻击?+ 错误权限配置”,完成了整个攻击流程的。
“Value DeFi遭闪电贷攻击”系该协议中基于AMM的预言机bug导致:据PeckShield分析,“Value DeFi遭闪电贷攻击”是由于该协议中基于AMM的oracle(即Curve)中的一个bug。攻击步骤如下:
1.黑客从Aave进行了8万枚ETH的闪电贷;
2.在UniswapV2用WETH兑换了1.16亿枚DAI;
3.在UniswapV2将从Aave获得的8万枚ETH兑换成3100万USDT;
4.将2500万枚DAI存入Vault DeFi,铸造2490万枚pooltoken(给攻击者),以及2495.6万枚新3crv(由Vault DeFi托管);
5.在Curve将9000万枚DAI兑换为9028.5万枚USDC;
6.在Curve将3100万枚USDT兑换为1733万枚USDC;
7.销毁2490万枚铸造的池代币,以赎回3308.9万枚3crv代币,而不是24.956万枚(喂价被操纵)。
8.在Curve将1733万枚USDC兑换回3094万枚USDT;
9.在Curve将9028.5万枚USDC兑换回9092.7万枚DAI;
10.通过销毁33.089万枚3crv来赎回3311万枚DAI,从3pool中清除流动性。[2020/11/15 20:52:13]
?? ?准备工作
MakerDAO就利用闪电贷操纵治理投票发出警告:金色财经报道,MakerDAO就DeFi协议团队利用闪电贷操纵治理投票发出警告。具体来说,B Protocol的团队希望被列入白名单,以便访问MakerDAO的价格预言。因此,他们提交提案以便于10月23日获得批准。三天后,多项交易被创建并处理。首先是借入ETH,然后将其用作抵押品以借入价值700万美元的MKR。新借来的MKR被用于投票,然后返回其被借出的市场。MakerDAO表示,这一事件为社区提供了一个例子,即闪电贷可能会影响系统治理,并强调需要积极监控MKR市场流动性。[2020/10/29]
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项目方也需要积极与第三方安全公司构建联动机制,通过开展安全合作、建立安全防护机制,做好项目的前置预防工作与日常防护工作,时刻树牢安全意识。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。