By:yudan@慢雾安全团队
据慢雾区消息,2021年05月28日,币安智能链(BSC)DeFi项目BurgerSwap被黑,损失达330万美元。慢雾安全团队第一时间介入分析,并将结果分享如下:攻击细节分析
BurgerSwap是一个仿UniswapAMM项目,但是和Uniswap架构有所区别。BurgerSwap架构总体分成。其中Delegate层管理了所有的Pair的信息,并负责创建lpPlatForm层。然后lpPlatForm层再往下创建对应的Pair合约。在整个架构中,lpPlatForm层充当了Uniswap中Router的角色,负责将计算交易数据和要兑换的代币转发到Pair合约中,完成兑换。本次事件的根本正是出在这种架构的问题上。通过一步步分析攻击者的交易行为,我们来还原整个攻击过程的核心:
过去24小时ETH链上手续费收入突破800万美元:金色财经报道,Cryptofees.info数据显示,过去24小时,以太坊链上手续费收入为8214906.2美元,Bitcoin链上手续费收入为1236261.83美元、Uniswap链上手续费收入为784294.12美元,BSC链上手续费收入为534274.56美元、SushiSwap链上手续费收入为272692.68美元、AAVE链上手续费收入为235770.65美元。[2023/5/1 14:36:55]
近24小时有3,332.39枚BTC流出交易所钱包:金色财经报道,数据显示,近24小时有3,332.39枚BTC流出交易所钱包,近7天有19,970.64枚BTC流出交易所钱包,近30天有28,701.68枚BTC流出交易所钱包。截至发稿时,交易所钱包余额合计为1,891,838.77枚BTC。[2023/4/2 13:39:44]
本次攻击开始于Pancake的闪电贷,攻击者从Pancake中借出了大量的WBNB,然后将这些WBNB通过BurgerSwap兑换成Burger代币。在完成以上的操作后,攻击者使用自己控制的代币(攻击合约本身)和Burger代币通过Delegate层创建了一个交易对并添加流动性,为后续攻击做准备。
德意志银行:将Block的目标价格从155美元降至95美元,维持买入评级:10月6日消息,德意志银行分析师Bryan Keane在一份研究报告中告诉投资者,最近几个月,Block在连接其三个主要的生态系统,即Square、Cash App和Afterpay方面不断取得进展。该分析师认为,最大的机会来自于将Cash App Pay的接受范围扩大到更多的商户,从而创造出另一个广泛使用的数字钱包,其功能类似于支付宝或微信。他称Cash App Pay是“潜在的沉睡巨”。Keane称,Cash App Pay的加入可能会使Cash App的毛利润增长率每年远远超过20%。[2022/10/6 18:40:47]
ENS核心开发者:ENS定价现阶段很难改变,V神提议未考虑可访问性:9 月 11 日,本周以太坊联合创始人 Vitalik Buterin 在其个人网站发表文章讨论 ENS 域名是否应该引入基于需求的经常性费用。他认为目前 ENS 域名十分廉价,由此引发了产权强度和公平性之间的权衡问题,而且 ENS 二级市场的高度投机性也无法确保市场的有效性。
对此,ENS 核心开发者 Jeff Lau 在社交媒体上进行了回应。他指出由于想不出有什么办法,可以在不干预的情况下让定价系统自我延续,以及创造一个无法作弊的定价系统,因而 ENS 最终决定保持价格的可接受性,但对较短的域名仍收取更多费用。允许动态定价/续期可能会有帮助,但现在为时已晚。当前的 ENS 系统运行良好,定价也足够合理,能够看到一些域名到期的情况。V 神的论文更多关于域名空间的拥塞问题(可以通过子域名解决),以及更多资金给到 ENS DAO 以资助公共产品,但可访问性没有得到足够的重视。虽然 ENS 的定价被设计成可以改变,但现阶段很难改变。[2022/9/11 13:22:40]
在完成代币的创建和准备之后,攻击者立马通过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
Uniswap从V1迭代到现在的V3,一直在给人惊喜。UniswapV3的更新包括聚合流动性的粒度控制、范围订单、多级费率、高级预言机等,赋予了用户更多的自主权.
1900/1/1 0:00:00山雨欲来风满楼,CBDC粉墨登场,官方把矛头对准另一个世界的敌人似乎不可避免。对于加密货币交易员和矿工而言,坏消息最近几天接踵而至,市场持续破防,跌幅屡创新低,极度的恐慌,横盘的失望,像极了熊市.
1900/1/1 0:00:00本文来自TheBlock、推特,原文作者:MichaelMcSweeney等Odaily星球日报译者|余顺遂亿万富翁投资者AlanHoward支持的数字资产对冲基金OneRiver已正式申请创建.
1900/1/1 0:00:00经Odaily星球日报不完全统计,5月24日-5月30日当周公布的海内外区块链融资事件共34起,已披露的融资总金额高达8.08亿美元.
1900/1/1 0:00:00坏账处理问题一直以来是所有DeFi协议面临的最棘手的问题之一,传统金融如银行针对无法处理的坏账往往采取由政府进行兜底的处理方式.
1900/1/1 0:00:00近期波卡生态系传来许多令人振奋的消息,尤其是关于Kusama测试网平行链插槽竞拍开启的消息更是吸引了产业内许多人的眼球,许多项目也对本次竞拍摩拳擦掌,为未来接入平行链做好准备.
1900/1/1 0:00:00