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

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 合约。

NBA球星克莱·汤普森推出“Game Recognize Game”NFT集合:3月31日消息,Dapper Labs旗下NBA Top Shot宣布与金州勇士队球星克莱·汤普森合作推出个人定制NFT集合“Game Recognize Game”,该集合将推出941份NFT以纪念克莱·汤普森恢复伤病的941天,其中包含了德里克·罗斯、保罗·乔治、德雷蒙德·格林、德马库斯·考辛斯、扎克·拉文和戈登·海沃德等球星的高光时刻,这些球星都经历过巨大伤病并重回赛场。据悉,“Game Recognize Game”NFT将于4月7日发售。(hypebeast)[2022/3/31 14:30:03]

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

ADAMoracle预言机已通过Certik安全审计:11月16日消息,首个支持广域节点喂价的去中心化预言机ADAMoracle已通过CertiK的安全审计,CertiK是业内知名的专注于区块链安全审计的机构,使用严密且彻底的网络与软件安全技术识别安全漏洞,ADAMoracle预言机通过审计代表着在规避安全漏洞上更具技术能力,有效保障了交易的安全性。

ADAMoracle作为实现跨链并基于硬件服务器提供喂价服务的广域节点预言机网络,其核心功能是链接成千上万的硬件服务器作为喂价节点,构建一个安全、可信、精准、防止女巫攻击、可自我维护的去中心化预言机网络,以图灵智能化取代传统预言机,是业内首个采用“广域节点喂价”机制的去中心化预言机。[2021/11/16 21:55:37]

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

Channels & Pippi Finance 达成战略合作:据官方消息,Channels和Pippi达成深度战略合作,近日双方将推动单币质押,流动性挖矿等合作方案,后期将在社区互动,媒体宣发等多方面继续深度合作。

Channels是Heco链上首发支持LP机池+LP抵押借贷,也是采用去中心化预言机的借贷平台。

Pippi Finance 是一个火币生态链(Heco)驱动的DEX和自动做市机制(AMM)项目,允许任何人高效安全地交换各类Heco货币,同时拥有挖矿池、空投池等功能模块,日前已官宣获得TP Labs和Hoo的战略投资。[2021/4/2 19:41:32]

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

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

链链资讯

Bitcoin金色深核|如何用TEE搭建加密货币网络?

本文是《区块链技术手册》系列的第二篇,目标是为了让读者可以懂得一条链是如何搭建起来的,也可以理解加密货币项目的网络结构。 第二篇选题选择有关TEE,原因是TEE是一个非区块链领域的硬件,但却是我们生活中可用不可知的硬件,例如英特尔2015年后的CPU都有TEE。

比特币先承接UNI的流量 再和YFI合并 探索Sushi的可能性

前几天AC提及Yearn(YFI)和Sushiswap的合并,Sushi再次引起人们的关注。不过,其实Sushiswap一直在DEX领域生存和发展着。 在Uniswap未推出其流动性挖矿之前,Sushiswap曾经分流了其大量的流动性,这迫使Uniswap推出其治理代币UNI,并开启流动性挖矿计划,这导致Sushiswap的流动性大幅下跌。

[0:15ms0-2:805ms