区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Ethereum > 正文

ENS:我竟了我自己?—— BurgerSwap 被黑分析_FOR

作者:

时间:

By:yudan@慢雾安全团队

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

攻击细节分析

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

数据:2022年超6万名Web3开发者加入加密行业,环比增加25.8%:1月18日消息,据Electric Capital最新报告中数据显示,2022年共计61,127名Web3开发人员加入加密行业,创下历史记录,比2021年增加25.8%。其中,全职开发人员(对76%Github提交做出贡献的开发者)增加15.2%,人数超过7000人。每月活跃Web3开发者人数增加5.4%,超过23,300人。

以太坊仍主导开发者活动,其全职开发者人数增加了9%至1,873人,这超过了接下来三个最多生态开发者人数的总和:Polkadot(752名)、Cosmos(511名)和Solana(383名)。此外,Electric Capital表示,因部分项目为闭源,预估实际Web3开发者数量要远超于此。[2023/1/18 11:18:37]

币安澳大利亚CEO:加密行业迫切需要更明确的监管制度:6月14日消息,币安澳大利亚(Binance Australia)首席执行官Leigh Travers认为,由于几个原因,加密行业已经领先于传统的金融监管制度,他认为,新的监管法规应该反映这一点,加密行业希望看到监管有充分的理由。从事加密领域工作的人希望证明他们对自己的要求比人们想象的更高。

Travers表示,加密货币行业与传统金融的不同之处在于,BTC和ETH等加密货币不容易被纳入任何现有的财产或金融产品分类。加密货币目前在澳大利亚被归类为财产。随着去中心化程度的提高,加密货币和其他资产之间的区别可能会随着时间的推移而扩大,并补充说加密货币适用于不同的产品,这只会增加对其进行负责任监管的难度。(Cointelegraph)[2022/6/14 4:25:34]

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

美国SEC委员:Gary Gensler若成功当选SEC主席,将利好加密行业:美国证券交易委员会(SEC)委员、“加密妈妈”Hester Peirce最近接受采访时表示:“我认为我们(美国)在加密领域有点错失良机。这很大程度上是因为监管缺乏清晰度。现在我们有机会推进这一工作。SEC很可能会有一位新主席Gary Gensler,他已经在参议院举行了听证会,这是过程中的一步。如果Gensler最终投票通过并加入SEC担任主席,他将带来对这一资产类别的深刻了解。”

此前消息,美国参议院银行委员会以14票赞成、10票反对的结果通过Gary Gensler的美国证券交易委员会(SEC)主席的提名。Gensler还需面对全体参议院的最终投票。此前,Gensler在3月2日举行的参议院确认听证会上称加密货币为“变革催化剂”。(Cointelegraph)[2021/3/11 18:36:53]

声音 | Ran NeuNer:加密行业的重大缺陷之一是难以解释:CNBC主持人Ran NeuNer发布推文称,?加密货币行业的最大缺陷之一是很难向外行人快速解释。当人们让我向他们解释比特币时,我知道他们至少需要一个小时才能真正了解比特币。[2019/9/10]

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

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

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

由于先前攻击者在创建交易对的时候使用的是自己控制的代币,在代币兑换过程中,_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

标签:SWAPENSFORPAIStackswapKITTENS价格antiqueplatformPAID Network

Ethereum热门资讯
比特币:买了虚拟币却卖不出去 央视揭秘“百倍币”局_区块链技术通俗讲解图

原标题:买了虚拟币却卖不出去!总台记者独家揭秘“百倍币”局 卖不掉的虚拟币 这并不是国家第一次这么大力度来监管虚拟币了.

COIN:金色观察 | 狗狗币的又一次胜利:Coinbase、 LocalBitcoins上线狗狗币_币换天下区块链

狗狗币再下一城,Coinbase终于要开始接受狗狗币了。6月2日凌晨,Coinbase开始向Pro版用户提供狗狗币的交易服务.

OIN:加密行业如何走向环保?碳中和比特币基金来报到_狗狗币2024年4到5美元

剑桥替代金融中心称,目前比特币每年消耗约110TWh。《哈佛商业评论》的一篇文章也进一步指出,这相当于全球电力生产的0.55%,约为一个小县城的电力生产.

ENS:观点 | 电力之外 —— PoS 不是救世主_AIR

密码学货币圈子内外,越来越多人寄希望于权益证明既能为我们贡献密码学货币的优点、又能避免工作量证明的耗能属性.

DEFI:金色荐读|旧神与新王:DeFi如何让金融业向下一形态跃迁_Position Token

货币产生于人们对于价值的共识,金融则建立在这种共识基础之上。过去2000年间,金融从无到有,又在过去200年里快速发展,以至于身浸其中的我们天然认为以银行和各种中介机构为流通、交换节点的体系是金.

MAT:金色观察|Matcha发布2.0版本 速览最新功能_TCHA

2021年6月4日,DEX聚合器Matcha在官方博客宣布正式上线2.0版,并称Matcha2.0是Matcha有史以来最大的更新。金色财经带你速览Matcha2.0最新功能.