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

By:慢雾安全团队

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

攻击细节分析

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

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

美SEC拟修改规则:投资者更容易就不良投资行为起诉VC:1月9日消息,美国证券交易委员会正在对一项规则进行最后修改,该规则将使投资者更容易就不良行为、疏忽或鲁莽行为起诉风险投资公司,该提案最早可能在本季度完成。这条规则不仅仅适用于风险投资,它还将涵盖私募股权公司、对冲基金和某些房地产投资公司等任何已经受到 SEC 监管的私人投资基金。全国风险投资协会负责政府事务的高级副总裁贾斯汀·菲尔德表示,这将“让风险投资家面临所有类型的诉讼风险”。(politico)[2023/1/9 11:02:29]

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

美SEC主席:FTX崩盘表明“加密公司不能做所有事情”:金色财经报道,美国证券交易委员会主席 Gary Gensler 昨日接受雅虎财经独家专访时首次公开谈到了 FTX 破产事件,虽然他拒绝详细解释 FTX 和 SBF 与监管机构的关系,但表示美国证券交易委员会已经制定基本的披露和治理要求,以追究数字资产公司的责任。

Gary Gensler 补充说:“FTX 的崩盘表明,在客户资金和投资业务之间没有隔离墙的情况下,运行一个全球平台是很危险的。加密公司不能做所有事情,如果脱离在公共政策规范之外,你的业务肯定不会持续太久。”(coindesk)[2022/12/8 21:30:55]

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

美SEC主席:希望将加密货币“纳入公共政策框架”:金色财经报道,美国证券交易委员会(SEC)主席根斯勒(Gary Gensler)周二表示,他希望将加密货币“纳入公共政策框架”,希望确保加密货币处于监管范围内并满足政策目标,这样这一快速增长的行业就不会“破坏系统的稳定性”。Gensler表示,在该领域的现阶段,制定投资者和消费者保护措施至关重要。SEC的权限包括证券市场的投资者保护,但Gensler表示,为了涵盖加密,该机构需要对其使命采取广泛的立场。Gensler重申了他对加密平台的密切关注。根据Gensler的说法,如果发现加密平台支持证券,那么它们就需要受到证券法的约束和美国证券交易委员会的授权。Gensler还表示,在稳定币领域,监管机构可能需要与银行业监管机构进一步合作,因为“稳定币可能具有投资合同的属性,具有银行产品等的一些属性”。Gensler暗示国会可能需要采取行动来帮助跨机构合作,以便在任何“溢出”之前控制加密货币。[2021/9/22 16:56:36]

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

雄安推出数字人民币文明积分:金色财经报道,中国人民银行雄安新区营业管理部、雄安新区改革发展局与容东管理委员会联合指导工商银行河北雄安分行推出数字人民币文明积分。截至2022年11月末,数字人民币文明积分发放范围已覆盖容东片区18个社区,共发放4期,发放金额13.48万元。[2022/12/20 21:56:01]

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

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

加密鲸鱼Cobie向被BitBoy起诉的YouTuber捐赠10万美元:金色财经报道,一位名叫Cobie的知名加密货币交易员向一位名叫Erling Mengshoel(被称为Atozy)的YouTube主播捐赠了100,000美元,以帮助抵御另一位名叫Ben Armstrong(被称为BitBoy Crypto)的YouTube主播提起的诉讼。Mengshoel要求他的Twitter追随者为筹款活动捐款或直接捐款。

早些时间报道,BitBoy Crypto起诉另一位youtube用户Atozy诽谤。(the block)[2022/8/24 12:46:15]

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

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

总结

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

攻击交易参考:

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

往期回顾

代币闪崩,差点归零-PancakeBunny被黑简析

慢雾科技xFireEye,赋能区块链安全

慢雾科技与虎符智能链HSC达成战略合作

CoinEx入驻慢雾区,发布「安全漏洞与威胁情报赏金计划」

开心做聚合,无奈被攻击——Rari被黑事故分析

慢雾导航

慢雾科技官网

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/10021896.html

免责声明:

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

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

上一篇:

1700是以太坊主要的压力位、短期可以突破吗?

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

链链资讯

[0:15ms0-3:133ms