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

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

背景提要

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

美国司法部:FTX对国际平台和FTX.US的广告没有区别:金色财经报道,美国司法部周五晚间提交的一份文件称,以喜剧演员Larry David和美国橄榄球运动员Tom Brady为主角的FTX广告显示,FTX的美国业务和国际业务之间的界限越来越模糊。

SBF的律师表示,由于指控涉及国际业务,因此应在法律上划分出独立的美国业务。政府表示,这种区别并不那么明确,美国司法部文件援引一则超级碗广告称,广告中出现了名人,将FTX描述为“一种安全、简单的进入加密货币的方式”,并向客户展示了使用显示FTX徽标而不是FTX.US徽标的设备。内部文件表明,FTX对国际平台和FTX.US的广告没有区别。[2023/9/4 13:16:48]

攻击流程

美国司法部对四起加密货币相关案件被告提起刑事指控:7月1日消息,美国司法部与联邦执法合作伙伴宣布对 Baller Ape Club、EmpiresX、TBIS 和 Circle Society 四起不同案件中的六名被告提起刑事指控,指控涉嫌参与加密货币相关欺诈。报告指出,Baller Ape Club NFT 系列在公开发售后进行了 Rug Pull,Le Anh Tuan 和其同谋共从投资者那里获得了大约 260 万美元。加密货币投资平台 Titanium Blockchain Infrastructure Services(TBIS)首席执行官和创始人 Michael Alan Stollery 被指控参与涉及 TBIS 首次代币发行的加密货币欺诈计划,该计划从美国和海外投资者那里筹集了约 2100 万美元。加密货币投资平台 Circle Society 所有者 David Saffron 以欺诈方式从投资者那里筹集到约 1200 万美元。[2022/7/1 1:43:40]

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

美国司法部指控新奥尔良加密货币卖家经营未经许可的汇款业务:金色财经报道,美国司法部周四表示,已指控位于新奥尔良的加密货币卖家Michael Yusko经营未经许可的汇款业务。检察官指控Yusko经营多个商业银行账户以支持加密货币的销售,称他在2017年8月至2019年6月期间向客户出售了“比特币、以太坊和其他加密货币”。“然而,Yusko并未在金融犯罪执法网络将任何这些公司注册为汇款业务。如果被定罪,Yusko可能会被处以最高5年的监禁、最高25万美元的罚款等。[2021/6/25 0:04:54]

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:??慢雾安全团队

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

大币网

[0:0ms0-3:731ms