事件背景 BOG是一款具有革命性的代币,每次为各种用例执行时都会运行代码,包括币安智能链上的实时和历史预言。Bogged代币($BOG)和其相关合约是Bogged生态系统的关键组成部分。通过使用$BOG代币可以解锁Bogged生态系统的所有组件。零时科技区块链安全情报平台监控到消息,北京时间2021年5月22日,BoggedFinance官方推文称遭到闪电贷攻击,导致BOG价格暴跌,并已启动止损功能,零时科技安全团队及时对该安全事件进行复盘分析。 事件分析 攻击信息 通过初步追踪分析,分析出攻击信息如下: 攻击者钱包地址: https://bscscan.com/address/0x4622A1f3d05DcF5A0589c458136C231009B6A207 攻击者合约地址: https://bscscan.com/address/0xe576790f35a8cc854d45b9079259fe84f5294e07 攻击者第一笔交易: https://bscscan.com/tx/0xa9860033322aefa39538db51a1ed47cfae7e4b161254d53dbf735f1f16502710 BoggedFinance合约地址: https://bscscan.com/address/0xd7b729ef857aa773f47d37088a1181bb3fbf0099#code 攻击过程 以下将分步解析攻击者的交易,方便读者更清晰的了解攻击过程。 上图为攻击者合约最早的交易截图,从图中标注的第一笔交易开始,之后的32笔交易内容均相同,故这里将第一笔交易详细分析,通过初步分析第一笔交易主要有三块交易内容,分别为添加流动性,循环转账,移除流动性,下面逐一截图分析: 添加流动性 上图中交易的步骤1和步骤2实现的功能相同,此步骤共九个,步骤1中实现的操作是:攻击者通过PancakeSwap将1371枚BNB兑换为46862枚BOG,又将1652枚BNB兑换为46862枚BOG,随后将1818枚BNB和46862枚BOG添加流动性,获得6081枚LP代币,最后将LP代币添加进Bogged池子。 这里需要注意的是,添加流动性的步骤中,存在多笔BNB兑换为BOG的操作,但部分兑换的BOG并未使用。 循环转账 上图是第一笔交易的中间部分,可以看出攻击者合约地址(0xe576...)通过Bogged合约进行自我转账,该笔交易中共进行自我转账400次。(这里也是本次攻击成功的原因,Bogged合约允许自己给自己转账) 移除流动性 上图中交易的步骤1和步骤2中实现的操作是:攻击者通过PancakeSwap归还LP代币,PancakeSwap返还攻击者添加流动性时的BNB和BOG。图中交易的步骤3和步骤4是攻击者将BOG兑换为BNB,也就是添加流动性中没有用到的 BNB兑换为BOG 重新兑换回来,注意这里并没有将之前的多笔BNB兑换BOG的操作都转回来,只是将一部分BOG兑换为BNB(还有大量的BOG未兑换)。通过资金的获取动向,可以更清楚的了解整体的代币转移,如下图: 上图信息中,攻击者通过闪电贷借得90000枚BNB,之后通过一系列操作后得到90103枚BNB(也就是第一笔交易中的操作),随后归还了90072枚BNB,最终将剩余的31枚BNB转入攻击者钱包地址。这是攻击者32笔交易中的其中一个,其他31笔交易中都通过同样的步骤或多或少得到了一些BNB。此时攻击并未结束,由于攻击者之前并未将每笔交易中的多次BNB兑换BOG转换回来,但攻击者已经归还闪电贷,所以攻击者还有大量的BOG,在攻击者的第33笔交易中,将剩余的所有BOG分批转换为BNB,最终批量兑换为BNB并转至攻击者钱包地址,如下图所示。 最终,攻击者通过Anyswap跨链桥将得到的BNB分批次转换为ETH。 攻击成功的原因通过前面的分析,攻击者除了BOG和BNB的相互兑换和添加流动性外,只进行了自我转账操作,这里直接分析Bogged合约的转账方法_transferFrom,代码如下图: transferFrom方法中,经过初步条件判断成功后,会给发送者地址sender减去sendAmt数值,给接收者地址recipient加上sendAmt,通过上图可以看出,sendAmt数值由txBurn方法得到,我们跟进_txBurn方法,如下图: txBurn方法中,burnRate=50,_distributeRatio=5,可以得到该方法会取转账数量的5%为toBurn变量值,之后将该变量值分为80%交易费和20%进行销毁,也就是说攻击者可以操纵交易费,通过大量转账并导致代币供应膨胀。最终获取大量BOG。目前,Bogged官方已对本次攻击涉及的代币合约迁移到新合约,并表示资金安全。 总结 通过此次攻击事件来看,攻击者通过多次闪电贷,并通过代码中转账出现的逻辑缺陷,最终获得了大量BOG,目中类似的闪电贷攻击事件居多,为何还会频频发生,对于DeFi项目而言,合约代码的安全,代币价格的相对稳定,旧版本的及时更新都是保证项目安全极其重要的部分,任何细节的马虎都可能导致项目及用户资金受到损失。对于此类闪电贷攻击事件,零时科技安全团队给出以下建议: 安全建议 对于合约代码安全,可找多家安全审计公司进行审计。 对LP价格及获取奖励的铸币代码块,应根据业务逻辑进行严格审核演算,避免出现参数可控制导致大量铸币问题。 对转账地址应进行严格判断,避免转账地址异常导致参数可控。 使用可信的并且安全可靠的预言机,如Chainlink去中心化预言机,Alpha homera采用的。 对敏感性较强的代码,要做到及时更新完善。 —- 编译者/作者:深圳零时科技 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Bogged攻击事件复盘分析|零时科技
2021-05-28 深圳零时科技 来源:区块链网络
LOADING...
相关阅读:
- 币安美国CEO:美联储监管收紧不利于加密新贵的发展2021-05-28
- 币圈故事多~2021-05-28
- NFT基础知识:NFT的价值支撑是什么?2021-05-28
- 全球专家拉克·戴维斯(Lark Davis)表示,升级升级后,卡尔达诺(ADA)2021-05-28
- 我竟骗了我自己?——BurgerSwap被黑分析2021-05-28