事件背景 BurgerSwap是一个币安智能链上带有治理激励机制的自动做市商(AMM),BURGER代币是该平台的原生BEP-20治理代币,用户可以通过对平台提供流动性以获得BURGER奖励。 零时科技区块链安全情报平台监控到消息,北京时间2021年5月28日,BurgerSwap官方推文称遭到闪电贷攻击,已暂停Swap和BURGER功能,零时科技安全团队及时对该安全事件进行复盘分析。 事件分析 攻击信息 通过初步追踪分析,分析出攻击信息如下: 攻击者钱包地址:https://bscscan.com/address/0x6c9f2b95ca3432e5ec5bcd9c19de0636a23a4994 攻击者合约地址:https://bscscan.com/address/0xae0f538409063e66ff0e382113cb1a051fc069cd 攻击者第一笔交易:https://bscscan.com/tx/0xac8a739c1f668b13d065d56a03c37a686e0aa1c9339e79fcbc5a2d0a6311e333 DemaxPlatform合约地址:https://bscscan.com/address/0xbf6527834dbb89cdc97a79fcd62e6c08b19f8ec0#code DemaxPair合约地址:https://bscscan.com/address/0x7ac55ac530f2c29659573bde0700c6758d69e677#code 攻击过程 下面我们分步解析攻击者的交易,方便读者更清晰的了解攻击过程。 上图为攻击者主要的13笔交易截图,从图中标注的第1笔交易开始,之后2和3模块中的12交易内容基本相同,差异是盗取的代币不同,这里将详细分析第一笔交易内容,下面逐一截图分析: 第一步:攻击者合约通过闪电贷借到6047枚BNB。 第二步:攻击者通过BurgerSwap将6028枚BNB兑换为92677枚Burger。 第三步:这里有两次重要操作,也是此次闪电贷攻击的重点,攻击者通过使用自己的100枚代币和45452枚Burger添加流动性,在之后的兑换中使用攻击者本身添加的代币兑换了4478枚BNB,并使用45452枚Burger兑换了4478枚BNB,如上图所示,目前攻击者已获取8956枚BNB。(已获利,闪电贷只借了6047枚BNB) 第四步:攻击者使用491枚BNB换取108791枚Burger。(已控制价格少量BNB换取大量Burger) 第五步:攻击者归还借到的闪电贷6047枚BNB。 至此 攻击者获取大量Burger代币和BNB代币,在随后的12笔交易中,攻击者利用同样的方式陆续获取了多种代币,具体数量如下:4400枚WBNB、2.2万枚BUSD、2.5ETH、140万枚USDT、43.2万枚BURGER、14.2万枚xBURGER、9.5万枚ROCKS,总价值超过700万美元。 看似简单的步骤,为何可以获取大量代币,交易的第三步中为什么可以取两次4478枚BNB,并且还可以使用攻击者铸造的代币兑换,下面我们从交易日志中跟踪分析代码层面的Burger合约兑换逻辑。 攻击成功的原因 通过第三步的说明图可以明确,兑换两次4478枚BNB时触发的事件为DemaxPlatform合约SwapToken。通过跟进该合约事件,最开始调用的方法为swapExactTokensForTokens,如下图: 这里swapExactTokensForTokens方法传入的交易对path,就是攻击者通过自己的代币添加的交易对。 但这里需要注意的一点是:两次兑换的数额相同并且均可以成功,按照Uniswap的逻辑,兑换后会对K值进行判断,判断之后,兑换该结果则不同,我们继续跟进_swap方法,如下图: _swap方法中,代币兑换使用的为DemaxPair合约中swap方法,继续跟进: swap方法中,可能明显看出与Uniswap合约相似,但DemaxPair合约在正常兑换后,并没有对代币资金做恒定乘积的K值检查,导致第二次也可以兑换成功。所以攻击者在一次交易中,在没有K值检查的情况下,成功进行了两次swapExactTokensForTokens方法调用swap方法进行兑换,最终获取大量收益。 目前,Burger官方表示重新开放了Swap和Liquidity,并制定了补偿计划,以弥补受影响用户的损失。 总结 通过此次攻击事件来看,攻击者通过多次闪电贷,并通过代码中恒定乘积的K值检查缺陷,最终获得了大量代币,目前类似的闪电贷攻击事件居多,为何还会频频发生,对于DeFi项目而言,合约代码的安全,代币价格的相对稳定,旧版本的及时更新都是保证项目安全极其重要的部分,对于部分Fork其他项目的代码而言,应在了解代码原理后,根据自身项目逻辑进行谨慎修改。对于此类闪电贷攻击事件,零时科技安全团队给出以下建议: 安全建议 对于合约代码安全,可找多家安全审计公司进行审计。 对LP价格及获取奖励的铸币代码块,应根据业务逻辑进行严格审核演算,避免出现参数可控制导致大量铸币问题。 使用可信的并且安全可靠的预言机,如Chainlink去中心化预言机,Alpha homera采用的。 对敏感性较强的代码,要做到及时更新完善。 —- 编译者/作者:深圳零时科技 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Burger攻击事件复盘分析|零时科技
2021-06-10 深圳零时科技 来源:区块链网络
- 上一篇:王永利:以比特币作为法定货币纯属幻想
- 下一篇:Filecoin共识机制简析
LOADING...
相关阅读:
- 币安在交易所上架 Gitcoin (GTC)2021-06-10
- Enjin 与 Health Hero 合作推出 NFT 辅助健康应用程序2021-06-10
- Thairath 在线 YouTube 频道被黑,以在价格反弹中推广 Algorand 代币2021-06-10
- 以太坊的通货紧缩货币政策会影响比特币吗?2021-06-10
- Reef Finance 邀请您加入我们的 Discord 频道2021-06-10