一、事件概览
美国东部标准时间5月12日上午9:44分,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)监测显示,DeFi质押和流动性策略平台xToken遭到攻击,xBNTa Bancor池以及xSNXa Balancer池立即被耗尽。据统计,此次xToken被黑事件造成约2500万美元的损失。
尽管在事件后,xToken团队第一时间发布声明,并针对被黑原因以及后续补救措施,作出积极回应;但成都链安·安全团队认为此次xToken被黑事件具备相当程度的典型性,涉及到闪电贷攻击、价格操控等黑客常用攻击套路,因此立即介入分析,将xToken被黑事件的攻击流程进行梳理,希望以此为鉴,为广大DeFi项目方敲响警钟。
安全团队:Journey of awakening项目遭受闪电贷攻击,攻击者获取大量ATK代币:金色财经报道,据Beosin EagleEye Web3安全预警与监控平台监测显示,Journey of awakening(ATK)项目遭受闪电贷攻击。攻击者通过闪电贷攻击的方式攻击了ATK项目的策略合约(0x96bF2E6CC029363B57Ffa5984b943f825D333614),从合约中获取了大量的ATK代币。
Beosin安全团队分析发现攻击者已把全部获得的ATK代币兑换为约12万美元的BSC-USD,目前被盗资金已经在0xf2ade5950cdfb43b47fdb0a7bf87e9c84467981f地址被兑换成BNB并且全部转移到龙卷风地址,Beosin安全团队将使用Beosin Trace对被盗资金进行持续追踪。[2022/10/12 10:32:20]
Grim Finance遭遇闪电贷攻击,损失超3000万美元:12月19日消息,据官方消息,Fantom链上复合收益平台GrimFinance遭遇闪电贷攻击,目前损失已超3000万美元。攻击者使用GrimFinance的保险库策略中名为「beforeDeposit()」的函数进行攻击,输入恶意Token合约。目前GrimFinance已经暂停所有的金库,提醒用户立即撤回所有资产。[2021/12/19 7:49:10]
二、事件分析
在本次被黑事件中,攻击者共计在同一笔交易中利用了两个典型攻击套路。
其一,黑客利用了闪电贷操作DEX中SNX的价格,进而影响了xSNX中的铸币,旨在达到套利的目的;
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
其二,黑客利用了xBNT合约中的错误的权限配置,传入预期外的路径地址,从而达到利用空气币完成获利的目的。
Cream Finance遭遇闪电贷攻击,损失1800万美元:据Peckshield推特消息,抵押借贷平台Cream Finance遭遇闪电贷攻击,损失1800万美元。[2021/8/30 22:46:46]
接下来,我们一起来还原一下黑客是如何利用“闪电贷攻击?+ 错误权限配置”,完成了整个攻击流程的。
?? ?准备工作
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项目方也需要积极与第三方安全公司构建联动机制,通过开展安全合作、建立安全防护机制,做好项目的前置预防工作与日常防护工作,时刻树牢安全意识。
Spring现在向网红提供Logan Paul数百万美元NFT销售额背后的Bondly技术 Spring与TikTok.
1900/1/1 0:00:00(图片来源于网络)V神(以太坊的创始人Vitalik)12号在Uniswap治理论坛上发了一个提案。提案立意新颖,脑洞大开,令社群击节赞叹。消息一出,UNI(Uniswap治理代币)大幅上涨.
1900/1/1 0:00:00此处特别感谢 Dankrad Feist 和 Aditya Asgaonkar 的校对工作。分片是以太坊可扩展性的未来,是让以太坊生态系统实现每秒数千笔交易的关键,这样大部分人才能以负担得起使用.
1900/1/1 0:00:00山寨币在上周创下近1.5万亿美元的综合市值记录后,市场占有率已经上升到三年来新高。当比特币再次因埃隆·马斯克的推特发言而暴跌时,山寨币的主导地位已经飙升至大约三年来的最高水平.
1900/1/1 0:00:001.金色观察 | 每隔7天共5次 波卡平行链插槽拍卖即将启动?月 18 日,波卡先行网 Kusama 官方发文,已成功部署首个平行链 Shell.
1900/1/1 0:00:00DeFi数据1.DeFi总市值:987.44亿美元 市值前十币种排名数据来源DeFiboxDeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:151.
1900/1/1 0:00:00