慢雾科技2021-05-28 19:45:02
By:yudan@慢雾安全团队
据慢雾区消息,2021 年 05 月 28 日, 币安智能链 (BSC) DeFi 项目 BurgerSwap 被黑,损失达 330 万美元。慢雾安全团队第一时间介入分析,并将结果分享如下:
攻击细节分析BurgerSwap 是一个仿 Uniswap AMM 项目,但是和 Uniswap 架构有所区别。BurgerSwap 架构总体分成【Delegate -> lpPlatForm -> Pair】。其中 Delegate 层管理了所有的 Pair 的信息,并负责创建 lpPlatForm 层。然后 lpPlatForm 层再往下创建对应的 Pair 合约。在整个架构中,lpPlatForm 层充当了 Uniswap 中 Router 的角色,负责将计算交易数据和要兑换的代币转发到 Pair 合约中,完成兑换。
本次事件的根本正是出在这种架构的问题上。通过一步步分析攻击者的交易行为,我们来还原整个攻击过程的核心:
本次攻击开始于 Pancake 的闪电贷,攻击者从 Pancake 中借出了大量的 WBNB,然后将这些 WBNB 通过 BurgerSwap 兑换成 Burger 代币。在完成以上的操作后,攻击者使用自己控制的代币(攻击合约本身) 和 Burger 代币通过 Delegate 层创建了一个交易对并添加流动性,为后续攻击做准备。
在完成代币的创建和准备之后,攻击者立马通过 PaltForm 层的 swapExactTokensForTokens 函数发起了兑换,兑换路径为【攻击者自己控制的代币 -> Burger -> WBNB】
接下来进行了最关键的一次操作。
由于先前攻击者在创建交易对的时候使用的是自己控制的代币,在代币兑换过程中, _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 开发者在移植其他协议的代码时,需充分了解移植协议的架构,并充分考虑移植协议和自身项目的兼容性,且需通过专业安全审计机构的审计后才上线,防止资金损失情况的发生。
以太坊Layer 2必知必会2023-04-26 15:03:27
浅析NFT未来:仅少数项目上涨 出圈项目会成赢家2023-04-26 14:15:26
E-CNY时代来临:当你的工资成为数字人民币2023-04-26 12:43:48
浅谈为什么MEV搜索者矿池并不可行?2023-04-26 12:08:40
"庄家"互撕 曝出加密巨头拉的那些"帮派"2023-04-26 11:59:08
怎样到达Web3世界:使用Web3技术的公司及集成到业务的步骤2023-04-26 11:53:15
稳定币项目 HAI、Starknet 2023 路线图2023-04-26 11:46:35
ChatGPT类产品安全隐患解决?英伟达发布开源工具包2023-04-26 11:26:24
蚂蚁集团发布HOU、AntChainBridge、Web3开放联盟链等多个Web3产品2023-04-26 11:24:46
ChatGPT背后的算力博弈 中国企业亟待打破美国桎梏2023-04-26 10:59:28
简析DWF Labs:出手频繁 颇具争议的加密做市商2023-04-26 10:48:45
NFT 交易平台生存现状研究:后版税战争时代下的龙头之争2023-04-26 09:20:51
以太坊提款功能开启后的带宽使用情况2023-04-26 08:30:24
上海升级提款效应:数据揭示 LSD 项目们的表现2023-04-26 07:28:37
3分钟读懂基于LayerZero的多链抗MEV DEX聚合器Cashmere2023-04-25 20:05:34
对话去中心化流动性质押协议Rocket Pool:如何促进以太坊Staking民主化?2023-04-25 19:02:21
Bankless:欧美都想监管稳定币 他们怎么做?2023-04-25 17:43:44
Coinbase起诉SEC全文:请在合理时间内回应加密规则请愿书2023-04-25 16:43:34
慢雾:Web3 假钱包第三方源调查分析2023-04-25 15:43:36
Binance Sensei介绍:您的Web3 AI导师2023-04-25 13:20:55