以小博大 简析SushiSwap攻击事件始末_SLP:3X Short Sushi Token

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

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

数据:币安目前持有TUSD 90%的供应量,金额接近27亿美元:7月7日消息,数据跟踪器DeFiLlama称币安与其共向了一批更新的地址后,币安在DeFiLlama上的TUSD持有量似乎大幅上升,周三币安持有的TUSD金额不足5亿美元,截止周四,币安持有的TUSD金额接近27亿美元,而TUSD的流通供应量约为30亿美元,这说明币安目前持有TUSD 90%的供应量。

此外,根据加密货币研究公司Kaiko的说法,TUSD的交易量“几乎完全集中”在币安上。2023年第二季度去中心化交易所的TUSD平日交易量约为200万美元,在币安的日交易量约为20亿美元。在流通的30亿美元TUSD中,超过22亿美元在Tron区块链上。另外7亿美元在以太坊上。[2023/7/7 22:23:44]

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

美联储FOMC声明:进一步收紧政策可能是合适的:金色财经报道,美联储FOMC发表声明,表示进一步收紧政策可能是合适的,最近的发展将导致信贷环境趋紧。将考虑累积政策收紧和滞后性的影响,目前通胀仍然高企。[2023/3/23 13:20:20]

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

美国国会议员对SEC主席实施的加密生态系统监管策略表示担忧:金色财经报道,美国国会议员Tom Emmer发推表示,过去一年主要交易所和生态系统(FTX、Celsius、Voyager和Terra)的大幅下滑,美国加密法规的有效性受到质疑。国会议员Tom Emmer对美国证券交易委员会(SEC)主席Gary Gensler对加密生态系统实施的监管策略表示担忧。

此外,Emmer还表示,“国会不应该通过进步出版物中编造的故事来了解SEC监管议程的细节,我们期待GaryGensler在金融委员会面前的公开证词”。[2022/11/26 20:48:17]

数据:Crypto.com公布冷钱包地址之前从币安热钱包转入1.2亿枚USDT:11月13日消息,Web3知识图谱协议0xScope统计过去一周从币安热钱包转入Crypto.com钱包的资金流动数据,共计1.2亿枚USDT,均发生在Crypto.com公布冷钱包地址之前。

在11月8日-10日,共计7200万枚USDT从Binance 17地址(0x56eddb7aa87536c09ccc2793473599fd21a8b17f)转入Crypto.com 2钱包。

11月11日,3000万枚USDT从Binance 16地址(0xdfd5293d8e347dfe59e90efd55b2956a1343963d)转入Crypto.com 2钱包。

11月9日,1800万枚USDT从 Binance 14地址(0x28c6c06298d514db089934071355e5743bf21d60)转入Crypto.com 2钱包。

据此前报道,11月11日,Crypto.com首席执行官Kris Marszalek公布其平台约30亿美元储备的多个冷钱包地址,包括约53024枚BTC、391564枚ETH以及其他资产。Kris Marszalek补充说,这只是Crypto.com储备资金的一部分,未来几周内Crypto.com将提供完整的经过审计的储备证明,确认所有客户资产的全部1:1储备。[2022/11/13 12:58:26]

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

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

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

By :??yudan@慢雾安全团队

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

水星链

[0:15ms0-2:41ms