链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 火币下载 > 正文

SWAP:我竟了我自己?—— BurgerSwap 被黑分析_CoinsPaid

作者:

时间:

By:yudan@慢雾安全团队

据慢雾区消息,2021年05月28日,币安智能链(BSC)DeFi项目BurgerSwap被黑,损失达330万美元。慢雾安全团队第一时间介入分析,并将结果分享如下:

攻击细节分析

BurgerSwap是一个仿UniswapAMM项目,但是和Uniswap架构有所区别。BurgerSwap架构总体分成。其中Delegate层管理了所有的Pair的信息,并负责创建lpPlatForm层。然后lpPlatForm层再往下创建对应的Pair合约。在整个架构中,lpPlatForm层充当了Uniswap中Router的角色,负责将计算交易数据和要兑换的代币转发到Pair合约中,完成兑换。

REvil要求提供7000万美元的比特币换取通用解密器:勒索软件团伙REvil要求提供价值7000万美元的比特币,以换取为超过一百万受感染系统提供的通用解密器。此前消息,与俄罗斯有关联的黑客组织REvil攻击了至少200家美国公司,并要求这些公司使用门罗币(Monero)支付约45000美元的赎金。拜登下令对此事进行调查。(u.today)[2021/7/5 0:27:44]

本次事件的根本正是出在这种架构的问题上。通过一步步分析攻击者的交易行为,我们来还原整个攻击过程的核心:

历史上的今天 | 维基解密创始人阿桑奇被判入狱50周:2019年5月1日,荷兰央行(DNB)支付和市场基础设施主管Petra Hielkema表示,采用区块链和人工智能等新技术将成为DNB支付战略2018-2021的关键方向,因此将继续试验区块链技术。

2019年5月1日,接受加密货币捐赠的“维基解密”网站创始人朱利安·阿桑奇(Julian Assange)5月1日在英国被判入狱50周,罪名是他7年前违反保释条例进入厄瓜多尔驻英使馆寻求庇护。[2020/5/1]

本次攻击开始于Pancake的闪电贷,攻击者从Pancake中借出了大量的WBNB,然后将这些WBNB通过BurgerSwap?兑换成Burger代币。在完成以上的操作后,攻击者使用自己控制的代币(攻击合约本身)和Burger代币通过Delegate层创建了一个交易对并添加流动性,为后续攻击做准备。

声音 | 维基解密:Craig Wright伪造了证明其为比特币创造者的文件:据bitcoinist报道,在2月12日的一系列推文中,维基解密再次公开批评自称为比特币的创造者Craig Wright。Craig Wright被证明是连续造假者,伪造了称其为比特币创造者的文件。[2019/2/13]

在完成代币的创建和准备之后,攻击者立马通过PaltForm层的swapExactTokensForTokens函数发起了兑换,兑换路径为

以BCH为目标的勒索软件已经出现 支付赎金后无法解密文件:根据Bleeping Computer公司发布的报告,勒索软件已开始要求使用BCH进行赎金支付,该软件名为Thanatos。根据Bleeping Computer的报告,即使支付赎金,被勒索软件加密的文件也无法打开。安全研究人员建议用户定期以安全可靠的方式备份他们的文件,并使用合适的安全软件,同时在发件人未知时不要打开附件。[2018/3/2]

接下来进行了最关键的一次操作。

由于先前攻击者在创建交易对的时候使用的是自己控制的代币,在代币兑换过程中,_innerTransferFrom函数会调用攻击者控制的代币合约,于是攻击者可以_innerTransferFrom函数中重入swapExactTokensForTokens函数。为什么攻击者要这样做呢?

通过对PlatForm层的swapExactTokensForTokens函数进行代码分析,我们不难发现,合约在调用_innerTransferFrom函数时首先计算了用户的兑换数据,然后在_innerTransferFrom函数的操作后使用预先计算的数据来转发到底层进行真正的代币兑换。从这个函数层面来看,就算攻击者重入了swapExactTokensForTokens函数,底层调用的swap函数也是独立的,咋一看并没有什么问题,但是链上的一个行为引起了慢雾安全团队的注意:

我们惊讶地发现,在重入的兑换过程中,兑换的数量竟然没有因为滑点的关系而导致兑换数量的减少。这究竟是什么原因呢?看来关键是底层的Pair合约的问题了。我们又进一步分析了底层调用的Pair合约,代码如下:

通过分析Pair的代码,我们再次惊讶地发现在swap的过程中,合约竟然没有在兑换后根据恒定乘积公式检查兑换后的数值!!也就是说,Pair合约完全依赖了PlatForm层的数据进行兑换,导致了本次事件的发生。由于Pair层本身并不做恒定乘积的检查,在重入的过程中,PlatForm层的兑换数据预先进行了计算,在_innerTransferFrom函数完成后,Pair的更新数据也没有反映到PlatForm层中,导致重入交易中的兑换产生的滑点并不影响下一次的兑换,从而造成了损失。用图来看的话大概如下:

总结

本次攻击属于BurgerSwap架构上的问题,由于Pair层完全信任PaltForm层的数据,并没有自己再做一次检查,导致攻击的发生。最近DeFi安全事件频发,针对越来越密集的DApp攻击事件,慢雾安全团队建议DApp开发者在移植其他协议的代码时,需充分了解移植协议的架构,并充分考虑移植协议和自身项目的兼容性,且需通过专业安全审计机构的审计后才上线,防止资金损失情况的发生。

攻击交易参考:

https://bscscan.com/tx/0xac8a739c1f668b13d065d56a03c37a686e0aa1c9339e79fcbc5a2d0a6311e333

标签:SWAPFORAIRPAISingle Dog Swap TokenFORM币Bear BillionaireCoinsPaid

火币下载热门资讯
比特币:为什么Uniswap V3大大增加了LP的做市风险?_POSI币

在UniswapV3上线初期,很多最早加入为V3做市的LP们享受了极高的手续费收益率。但是好景不长,整个加密市场在5月下旬遭遇了价格的大幅下跌,许多V3的LP们发现,自己持有的做市头寸,不但全部.

ART:金色趋势丨知史鉴今 牛市低吸机会?_BEES币

目前BTC是否已经见牛市终极大顶?我们可以看看BTC长期走势,下方为对应的RSI曲线走势,研究可以看出,在BTC历史上前三轮牛市中,2011年、2013年和2017年牛市,每一轮牛市.

比特币:解密NFT艺术品:虚拟世界给艺术交易带来泡沫还是机会?_POSI

最近,成都画家李建勋拍卖个人画作,获得人民币77554元。画家卖画本是寻常,可李建勋这次卖画的奇特在于——他卖出的不是可悬挂在家中的画,而是这些画的数字编码号及实物的100%精度数码扫描文件.

SWAP:随机数在区块链中的应用_PAI

近日,OG无涯社区联合创始人红军大叔受邀在PlatON中文Telegram群参加快闪活动,向社区成员分享了关于随机数的小知识,我们将其分享内容奉上以餮读者.

SWAP:金色观察 | 马斯克VS孙宇晨:“心碎”比特币与抄底护盘_AI Fairy

特斯拉CEO埃隆·马斯克第N次发布比特币相关推特,并在后面附上“心碎”的表情。数小时前,马斯克在社交平台更新动态,发布了比特币心碎的表情,配发图文中还是一段情侣分手的文字.

MINE:金色前哨|Kusama公投已通过 插槽拍卖下周开始吗?_TEM价格

金色财经讯,北京时间6月3日凌晨3点,波卡先行网Kusama的Shell升级为Statemine公投114已经通过,通过后,会将Shell存储设置为Statemine的创世,接下来.