闪电贷攻击 + 错误权限配置,2500万美元付诸东流 | xToken被黑事件简析_SNX:ETH

一、事件概览

美国东部标准时间5月12日上午9:44分,链必安-区块链安全态势感知平台监测显示,DeFi质押和流动性策略平台xToken遭到攻击,xBNTaBancor池以及xSNXaBalancer池立即被耗尽。据统计,此次xToken被黑事件造成约2500万美元的损失。尽管在事件后,xToken团队第一时间发布声明,并针对被黑原因以及后续补救措施,作出积极回应;但成都链安·安全团队认为此次xToken被黑事件具备相当程度的典型性,涉及到闪电贷攻击、价格操控等黑客常用攻击套路,因此立即介入分析,将xToken被黑事件的攻击流程进行梳理,希望以此为鉴,为广大DeFi项目方敲响警钟。

一MEV机器人通过闪电贷借用1.8亿美元攻击Sashimi Swap,赚约3500美元:6月1日消息,加密情报平台Arkham监测显示,昨晚,一个 MEV 机器人(0xb2…2B96 为 MEV bot 调用合约,0xb4…0343 为单次使用的 MEV bot)通过闪电贷借用了 9.5 万枚 WETH(价值近 1.8 亿美元)以攻击 Sashimi Swap,该机器人卷走了 Sashimi 的投资合约和 slETH 合约中剩余的最后一笔钱,但仅约 3,500 美元。据悉,Sashimi Swap 曾在 2021 年 12 月遭到攻击损失了 21 万美元,随后该项目被放弃。[2023/6/1 11:52:56]

安全团队:New Free DAO (NFD) 项目遭遇数次闪电贷攻击:9月8日消息,CertiK天网监测到New Free DAO (NFD) 项目遭遇了数次闪电贷攻击。漏洞在NFD项目部署的一个未经验证的奖励合约中,攻击者利用闪电贷借入NFD代币,并将其发送到攻击合约,而攻击合约则调用未经验证的奖励合约,向攻击者发送更多的NFD代币。攻击者在3次攻击中重复这个过程,获得了4481个WBNB,价值约125万美元。[2022/9/8 13:16:17]

二、事件分析

在本次被黑事件中,攻击者共计在同一笔交易中利用了两个典型攻击套路。其一,黑客利用了闪电贷操作DEX中SNX的价格,进而影响了xSNX中的铸币,旨在达到套利的目的;其二,黑客利用了xBNT合约中的错误的权限配置,传入预期外的路径地址,从而达到利用空气币完成获利的目的。

Cream Finance遭到闪电贷攻击原因系AMP代币合约存在可重入漏洞:8月30日,PeckShield派盾发推表示,CreamFinance遭闪电贷攻击是因为AMP代币合约引入了一个可重入漏洞。AMP是一种类似erc777的代币,在更新第一次借款之前,它被用来在转移资产的过程中重新借入资产。在tx示例中,黑客进行了500ETH的闪电贷,并将资金存入作为抵押品。然后黑客借了1900万美元AMP并利用可重入漏洞在AMPtokentransfer()中重新借入了355ETH。然后黑客自行清算借款。黑客在17个不同的交易中重复上述过程,总共获得5.98KETH(约1880万美元)。资金仍存放在以0xCE1F的地址中。派盾正在积极监控此地址的任何移动。据此前报道,抵押借贷平台CreamFinance遭遇闪电贷攻击,损失1800万美元。[2021/8/30 22:47:08]

flash.sx闪电贷智能合约遭攻击,项目方发起提案更改黑客EOS账号权限以转回资产:官方消息,EOS Nation旗下闪电贷被黑客攻击后,项目方发起提案直接更改了黑客EOS账号权限转回资产。据悉,项目方发起的提案,把黑客地址权限改成了BP,BP通过后执行。此前消息,flash.sx闪电贷智能合约遭攻击,120万EOS和46.2万USDT被盗。[2021/5/15 22:05:44]

接下来,我们一起来还原一下黑客是如何利用“闪电贷攻击+错误权限配置”,完成了整个攻击流程的。准备工作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项目方也需要积极与第三方安全公司构建联动机制,通过开展安全合作、建立安全防护机制,做好项目的前置预防工作与日常防护工作,时刻树牢安全意识。

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

水星链

[0:15ms0-0:858ms