事件背景
Merlin是一款收益聚集工具,可以对生态系统进行优化和自动组合,以追求安全性,并在可持续性的前提下获得最大收益。
零时科技区块链安全情报平台监控到消息,北京时间2021年6月29日,Merlin Labs官方Telegram称Merlin遭受了黑客攻击,并声明黑客将 0.1WBNB 存入vault,然后手动将1000BNB转入合约,以欺骗合约认为它收到了 1000BNB的奖励,从而导致铸币产生了 MERL 奖励,零时科技安全团队及时对该安全事件进行复盘分析。
事件分析
攻击信息
通过初步追踪分析,这里梳理了一条攻击路线来进行具体分析,攻击信息如下:
攻击者钱包地址
攻击者合约地址
攻击者盗取资金交易
MerlinToken合约地址
MerlinPool合约地址
攻击过程
目前攻击者创建的合约及交易较多,但每笔交易的攻击流程均类似,如以上攻击合约中,攻击者共进行了26笔交易,其中22笔为攻击者利用漏洞盗取资金交易,其余4笔为攻击者将盗取资金转至钱包地址交易,这里将以上攻击交易进行详细分析,方便读者更清晰的了解攻击过程。如下图:
第一步:攻击者给vault合约转入0.1枚BNB。
第二步:攻击者直接给vault合约转入874枚BNB。
第三步:vault合约将转入的874枚BNB转至0xd7d0合约,并获取对应的846枚ibBNB。
第四步:0xd7d0合约将874枚BNB转出至WNativeRelayer合约,并随即销毁vault合约的846枚ibBNB。
第五步:vault合约将262枚BNB转至0x236f合约,之后转给0x913合约257枚BNB后,将该资金以1:1对半分为128枚BNB和3334枚Merlin添加PancakeSwap V2: MERL 5流动性,并获取对应的548枚Cake-LP Token。
第六步:将获取的548枚Cake-LP Token转至MerlinPool合约。
第七步:将0x236f合约剩余的5枚BNB兑换为135枚Merlin,并将资金转至0x436f地址。
第八步:给0x236f地址铸造了8996枚Merlin代币,并将生成的代币转至攻击者合约,此步也是攻击者获利最重要的步骤。
第九步:给MerlinPool合约地址也铸造了相应的Token。(此步应为添加Cake-LP Token获取的相应奖励)。
第十步:最终攻击者合约将获取的Merlin代币兑换成BNB获利离场。
至此
攻击者通过该笔攻击交易获取了332枚BNB,价值约10万美元,由于项目合约中奖励功能的代码逻辑问题,攻击者通过多笔攻击交易已获利超30万美元。
目前,Merlin官方已宣布关闭Merlin Lab,并已在网站上发布通知并停止所有存款,所涉及的Twitter及Telegram等账号均已停止运营。
总结
通过此次攻击事件来看,攻击者通过多次获取奖励,并通过Merlin合约中的代码缺陷,最终获得了大量代币,对于合约功能缺陷问题,应在合约上线前进行严格审查及测试。对于此类攻击事件,零时科技安全团队给出以下建议:
安全建议
- 对于合约代码安全,可找多家安全审计公司进行审计。
- 对于铸币及转账问题,应根据业务逻辑进行严格审核演算,避免出现代币异常获取问题。
- 对敏感性较强的代码,要做到及时更新完善。
1.《Merlin Labs攻击事件复盘分析 | 零时科技》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《Merlin Labs攻击事件复盘分析 | 零时科技》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/lishi/2021902.html