以小博大 简析SushiSwap攻击事件始末

2020年11月30日,据慢雾区情报,以太坊AMM代币兑换协议SushiSwap遭遇攻击,损失约1.5万美元。慢雾安全团队第一时间介入分析,并以简讯的形式分享,供大家参考。

背景提要

SushiSwap项目中SushiMaker合约的作用是用于存放SushiSwap中每个交易对产生的手续费。其中手续费会以SLP(流动性证明)的形式存放在合约中。SushiMaker合约中有一个convert函数,用于将从每一个交易对中收集的手续费通过调用各自交易对的burn函数获得对应的代币,然后将这些代币转换成sushi代币,添加到SushiBar合约中,为SushiBar中抵押sushi代币的用户增加收益,而此次的问题就出在SushiMaker合约。

Solana期权协议Cega将在以太坊主网启动:金色财经报道,Solana期权协议Cega将在以太坊主网启动。该协议将提供杠杆期权金库(LOV)策略,预计将在第二季度推出,该策略将在Solana区块链上已经可用的产品之上提供。LOV是一种期权结构性产品,Cega Finance联合创始人Arisa Toyosaki表示,它将解决DeFi中的资本效率低下问题,因为它“不需要通过赎回用户资助的保证金或超额抵押来获得额外的流动性”。[2023/4/1 13:38:40]

攻击流程

FTX CEO确认遭受黑客攻击并与执法部门合作:金色财经报道,FTX新任首席执行官约翰-雷周六在Twitter上证实,上周五申请破产保护的FTX及其美国子公司FTX US昨晚遭到黑客攻击,该攻击使交易所的钱包中数亿美元的加密货币被抽出。在通过FTX的总法律顾问Ryne Miller在Twitter上发表的声明中,Ray表示FTX US和FTX.com \"继续尽一切努力确保所有资产的安全,无论位于何处\"。(coindesk)[2022/11/13 12:57:17]

1、攻击者选中SushiSwap中的一个交易对,如USDT/WETH,然后添加流动性获得对应的SLP(USDT/WETH流动性证明,以下简称SLP),使用获得的SLP和另外的少量WETH创建一个新的SushiSwap交易对,然后得到新代币池的SLP1(WETH/SLP(USDT/WETH)流动性证明,以下简称SLP1)转入?SushiMaker合约中。

colletID完成350万美元融资,SeventySix Capital等参投:11月10日消息,基于NFT的实体产品身份识别公司colletID宣布已完成350万美元融资,美国体育行业风投公司 SeventySix Capital、欧洲体育投资公司Hellen』s Rock Capital、以及瑞士和日本加密银行Sygnum/SBI等参投,该公司于2021年12月进行了种子轮融资,目前仍处于pre-A轮融资阶段。

colletID为实体产品开辟了数字维度,通过将小型NFT标签放入实体产品中,让每一个产品获得唯一身份,然后再将这个唯一身份通过智能合约存储为非同质化代币,也就是区块链上的NFT,继而为每个产品创建出一个数字孪生身份。[2022/11/10 12:41:46]

2、调用SushiSwap的convert函数,传入的token0为第一步获得的SLP,token1为WETH。调用convert函数后,SushiMaker合约会调用token0和token1构成的代币池的burn函数燃烧SLP1,燃烧掉攻击者在第一步中打入SushiMaker合约中的SLP1,得到WETH和SLP。

3、SushiMaker合约的convert函数紧接着会调用内部的_toWETH函数将burn获得的代币转换成WETH,由于在第二步SushiMaker合约通过burn获得了SLP和WETH。其中WETH无需转换,只需转换SLP。此时,转换将会通过调用SLP/WETH交易对进行转换,也就是攻击者在第一步创建的交易对。由于SushiMaker合约在转换时会将所有的balanceOf(token0)转换成WETH,这里传入的token0为SLP,于是合约将合约中所有的SLP通过SLP/WETH交易对进行兑换(兑换的SLP包含USDT/WETH交易对每次swap产生的收益和在第二步合约通过burn函数获得的SLP)。而SLP/WETH代币池是攻击者创建的,攻击者只需在初始化的时候添加少量的WETH,就可以在SushiMaker交易对进行兑换的过程中,用少量的WETH换取SushiMaker合约中对应交易对的所有的SLP。

4、攻击者使用burn函数在SLP/WETH交易对中燃烧掉自己的SLP1,拿到大量的SLP和小量的WETH,并继续对其他流动性池重复该过程,持续获利。

总结

攻击者使用SLP和WETH创建一个新的代币池,使用新代币池的SLP1在SushiMaker中进行convert,使用少量的SLP将SushiMaker合约中的所有SLP转到自己创建的代币池中,即将对应交易对一段时间内的所有手续费收入囊中。并对其他交易对重复这个过程,持续获利。

By:??慢雾安全团队

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

银河链

火必APP区块链联盟推出可交易的碳信用代币

稳定币先驱Uphold声称已经推出了第一个可交易的零售碳代币。由Uphold牵头并包括BittrexGlobal,Ledger,Certik和Infinigold在内的区块链公司组成的联盟通用协议联盟周二宣布推出通用碳令牌.

[0:15ms0-1:824ms