宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 中币 > 正文

空手套白狼 —— Popsicle 被黑分析

作者:

时间:1900/1/1 0:00:00

2021年08月04日,据慢雾区消息,跨链收益率平台PopsicleFinance的SorbettoFragola产品遭受黑客攻击,慢雾安全团队第一时间介入分析,并将结果分享如下。

攻击背景

在本次攻击中,攻击者通过创建3个攻击合约来完成对SorbettoFragola的攻击,以下是本次攻击涉及的具体地址:

攻击者:

H1:0x3A9D90eD069021057d9d11E78F142F2C4267934A

H2:0xf9E3D08196F76f5078882d98941b71C0884BEa52

攻击合约:

C1:0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6

C2:0x576cf5f8ba98e1643a2c93103881d8356c3550cf

C3:0xd282f740bb0ff5d9e0a861df024fcbd3c0bd0dc8

SorbettoFragola:

0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48

攻击对象

通过官方的介绍我们可以知道被攻击的SorbettoFragola产品主要是用于帮助用户管理UniswapV3头寸,以避免用户在UniswapV3做市的头寸超出所选定的价格范围。用户可以在SorbettoFragola中存入提供流动性对应的两种代币,SorbettoFragola会给到用户PopsicleLP(PLP)凭证,用户使用此凭证可以获取奖励并取回抵押的流动性资金,同时此凭证也是可以随意转移给其他用户的。

衍生品交易平台Coral Finance将在Nautilus Chain主网集成自身协议:4月29日消息,溢价交易机制链上衍生品交易平台Coral Finance ,将在Nautilus Chain主网集成自身协议,以推动Nautilus Chain链上衍生品板块的发展。Coral Finance是Nautilus Chain上DeFi衍生品协议,为生态项目提供可靠、长期的流动性解决方案,同时提高用户的资本使用效率。 Nautilus Chain有望为Coral Finance用户提供高效、低成本、更为安全的交易体验。

Nautilus建立在Vitalik Buterin提出的L3愿景基础上。L3可以通过对交易进行分批处理来帮助扩展像以太坊这样的L1链,从而将共识和执行层分开。[2023/4/29 14:34:25]

攻击核心

此次攻击的核心在于,SorbettoFragola中通过用户持有的PLP凭证数量来参与计算用户所能获得的奖励,但PLP凭证是可以随意转移给其他用户的,但其凭证转移的过程中没有进行奖励结算转移等操作。这就导致了只要持有PLP凭证就可以立即获取奖励。最终造成同个PLP凭证却能在同个时间节点给多个持有者带来收益。接下来我们对整个攻击细节进行详细分析。

攻击细节

攻击首先通过H1地址创建了攻击合约C1、C2与C3,随后攻击者通过H2地址调用了攻击合约C1开始进行具体的攻击,交易为:

Coinbase:我们的质押服务与证券无关:金色财经报道,加密货币交易所Coinbase:我们的质押服务与证券无关,质押计划没有受到今天新闻的影响,将继续提供质押服务。[2023/2/10 11:58:13]

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc。

通过分析此交易我们可以发现,其先从AAVE中利用闪电贷借出了30,000,000个USDT、13,000个WETH、1,400个WBTC、30,000,000个USDC、3,000,000个DAI、200,000个UNI,为后续在SorbettoFragola中提供流动性获得PLP凭证做准备。

随后攻击者调用SorbettoFragola合约的deposit函数存入提供流动性对应的两种代币(这里以攻击者首次存入的WETH与USDT代币为例),其会先通过checkDeviation与updateVault修饰器分别检查价格与更新奖励。价格检查主要是针对价格是否出现大波动被操控等情况,这里不做展开。而奖励更新就与本次攻击密切相关了,我们切入分析:

可以看到其调用了_updateFeesReward函数进行具体的更新操作,我们跟进此函数:

从上图我们可以很容易的发现其先通过positionLiquidity函数获取tickLower与tickUpper范围内合约所持有的流动性数量。然后通过_earnFees函数从UniswapV3Pool中收取提供流动性奖励。之后再通过_tokenPerShare函数计算每个PLP凭证所能分得的流动性奖励。最后通过_fee0Earned与_fee1Earned函数来计算用户所持有的PLP凭证数量可以获得多少奖励,并使用

莱特币网络已累计处理1.28亿笔交易:9月18日消息,据官方消息,莱特币(Litecoin)网络已累计处理1.28亿笔交易,中位数费用为0.001美元。[2022/9/18 7:04:31]

user.token0Rewards与user.token1Rewards变量进行记录,如下图所示:

但由于此时攻击者刚进行充值操作,还未获得PLP凭证,因此其user.token0Rewards与user.token1Rewards变量最终记录的自然是0。

看到这里你可能已经意识到问题所在了,既然user.token0Rewards与user.token1Rewards变量记录的奖励是根据用户持有的PLP凭证进行计算的,且PLP凭证是可以转移的,那么是否只要持有PLP凭证再去触发此变量记录奖励就可以让我们获得奖励。答案自然是肯定的。我们继续看deposit函数:

在奖励更新之后通过liquidityForAmounts函数计算出在目标价格区间内用户提供资金所占的流动性然后调用UniswapV3Poolmint函数注入流动性。随后通过_calcShare计算出SorbettoFragola所需要铸造给用户的PLP凭证数量。

在攻击者获得PLP凭着后也正如我们所想的那样将PLP凭证转移给其他地址,并调用SorbettoFragola合约collectFees函数来进行奖励记录。

通过上图的PLP凭证链上转移记录我们可以看到,在攻击合约C1获得PLP凭证后,将其转移给了攻击合约C2,随后调用了collectFees函数。之后攻击合约C2再将PLP凭证转移给攻击合约C3再次调用了collectFees。最后攻击合约C3将PLP凭证转移回攻击合约C1。我们切入collectFees函数进行分析:

Jack Dorsey资助过的比特币非营利组织?trust增加一位创始成员:7月21日消息,比特币非营利组织 ?trust 增加一位创始成员 Vladimir Fomene,Fomene 是一位喀麦隆软件工程师,擅长 JavaScript 和 Rust 领域,将在 ?trust 主要致力于比特币开发工具包(BDK)。?trust 最初由 Jack Dorsey 和 Jay-Z 于 2021 年 2 月捐赠 500 枚比特币资助,旨在通过教育和奖励比特币开发人员来去中心化比特币软件开发。(CoinDesk)[2022/7/21 2:29:50]

通过上图我们可以很容易的看出此函数也有updateVault修饰器,而经过上面的分析我们可以知道updateVault修饰器用于奖励更新,因此在攻击合约C2持有PLP凭证的情况下调用collectFees函数触发updateVault修饰器则会根据其持有的PLP凭证数量来计算应分得的奖励,并记入用户的token0Rewards与token1Rewards变量。需要注意的是此时对于此类PLP凭证持有者缓存的tokenPerSharePaid变量是0,这直接导致了用户可以获得PLP凭证持有奖励。

我们从链上状态的变化也可以看出:

随后攻击合约C2也如法炮制即可获得奖励记录。

最后PLP凭证转移回到攻击合约C1,并调用了SorbettoFragola合约的withdraw函数燃烧掉PLP凭证取回先前存入的WETH与USDT流动性。并且攻击合约C2、C3分别调用collectFees函数传入所要领取的奖励数量以领取奖励。这样攻击者在同个区块中不仅拿回了存入的流动性还额外获得多份流动性提供奖励。

The Sandbox与巴西链游公会BAYZ达成合作进军南美市场:金色财经报道,The Sandbox宣布与巴西链游公会BAYZ达成合作,将进军南美市场,BAYZ 将支持 The Sandbox 将更多本地游戏玩家引入元宇宙,并在虚拟世界中引入巴西文化和多样性。巴西是在世界上拥有加密资产投资人口比例最高国家排名中位列第 12 名,2021 年约有 1000 万巴西人拥有加密货币,占到该国总人口的 4.88%。[2022/7/12 2:07:13]

随后攻击者开始利用其他的代币对如法炮制的薅取奖励,如下图所示:

攻击流程

1、攻击者创建多个攻击合约,并从AAVE中利用闪电贷借出大量的代币;

2、攻击者使用借来的代币存入SorbettoFragola合约中获得PLP凭证;

3、攻击者利用SorbettoFragola合约的奖励结算缺陷问题将获得的PLP凭证在其创建的攻击合约之间进行转移并分别调用了SorbettoFragola合约的collectFees函数来为各个攻击合约纪录奖励;

4、攻击者燃烧PLP凭证取回在SorbettoFragola合约中存入的流动性资金,并通过各个攻击合约调用SorbettoFragola合约的collectFees函数来获取纪录的奖励;

5、不断的循环上述操作攻击各个流动性资金池薅取奖励;

6、归还闪电贷获利走人。

MistTrack分析过程

慢雾AML团队分析统计,本次攻击损失了约4.98MUSDT、2.56KWETH、96WBTC、5.39MUSDC、159.93KDAI、10.49KUNI,接近2100万美元。

资金流向分析

慢雾AML旗下MistTrack反追踪系统分析发现,攻击者H1地址首先从Tornado.Cash提币获取初始资金随后部署了三个攻击合约:

攻击获利后通过UniswapV3将获得的代币兑换成ETH再次转入了Tornado.Cash:

目前攻击者账户余额仅为0.08ETH,其余资金均已通过Tornado.Cash进行转移。

总结

本次漏洞的核心在于由于奖励更新记录缺陷导致同个PLP凭证能在同个时间节点给多个持有者都带来收益。针对此类漏洞,慢雾安全团队建议在进行凭证转移前应处理好奖励结算问题,记录好转移前后用户的奖励缓存,以避免再次出现此类问题。

参考攻击交易:

https://etherscan.io/tx/0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc

往期回顾

科普|加密货币,你中招了吗?(下)

慢雾招募令,加入未来的安全独角兽

梅开二度——PancakeBunny被黑分析

科普|加密货币,你中招了吗?(上)

假币的换脸戏法——技术拆解THORChain跨链系统“假充值”漏洞

慢雾导航

慢雾科技官网

https://www.slowmist.com/

慢雾区官网

https://slowmist.io/

慢雾GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

币乎

https://bihu.com/people/586104

知识星球

https://t.zsxq.com/Q3zNvvF

火星号

http://t.cn/AiRkv4Gz

链闻号

https://www.chainnews.com/u/958260692213.htm

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

慢雾科技

现已在非小号资讯平台发布68篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10225373.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

比尔·盖茨再谈ChatGPT:将改变我们的世界!

标签:BETSORETTFRASBETsorare币价格Bettex Coinfrax币怎么涨

中币热门资讯
PoS 节点技术服务提供商 SNZ POOL 加入 Celer 状态守卫者网络以及 cBridge 流动性桥接网络

链闻消息,PoS节点技术服务提供商SNZPool宣布加入Celer状态守卫者网络。作为SGN验证人节点,SNZPool将与Celer共同维护其二层扩容网络的可用性和安全性,并持续提供安全的验证人节点服务与质押服务,帮助Celer维护网.

1900/1/1 0:00:00
XT关于即将上线 DYDX 的公告

尊敬的XT用户: XT即将上线DYDX,并在创新区开放DYDX/USDT交易对。具体开通时间,请关注后续公告。dYdX是一套允许任何金融产品发行和交易ERC20令牌的协议。dYdX采取离链订单和链上撮合,以创建有效的市场.

1900/1/1 0:00:00
关于云服务商临时故障造成异常亏损的公告

亲爱的PandaFe熊猫用户:2021年8月7日1:45(UTC8)云服务商出现临时故障,导致永续合约数据无法加载,相关交易操作无法进行。经过技术人员的紧急修复,APP端已于2021年8月7日3:35(UTC8)恢复正常使用.

1900/1/1 0:00:00
币海鹰眼:以太坊白盘震荡蓄力,美盘破位走新,后市如何布局

我一直以为时间是最好的偏方,可突然发现治好的全是皮外伤。信任,不是在盈利之后疯狂的呐喊,而是错误之后的下一次跟随或者执行。你以为你以为的就是你以为的吗?别让曾经导致亏损致命的习惯再继续,未来的结果取决限现在的决定.

1900/1/1 0:00:00
Tbit八大优势

Tbit是全球首家双重激励交易所,平台由全球衍生品精英团队共同开发制作,立志成为全球最专业的合约衍生品交易平台.

1900/1/1 0:00:00
关于WDC关闭充值的公告

尊敬的WBF用户: ????因项目社区维护,WDC现已暂时关闭充币,恢复时间以公告为准,给您造成的不便敬请谅解,如有疑问,请咨询WBF官方客服.

1900/1/1 0:00:00