Cointime

扫码下载App
iOS & Android

SharkTeam:MIM_SPELL被攻击事件原理分析

2024年1月30日,MIM_SPELL遭受闪电贷攻击,因为精度计算漏洞,项目方损失650万美元。

SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

攻击者地址:

0x87F585809Ce79aE39A5fa0C7C96d0d159eb678C9

攻击合约:

0xe1091d17473b049cccd65c54f71677da85b77a45

0x13AF445F81B0DEcA5dCb2Be6A4C691F545c95912

0xe59b54a9e37ab69f6e9312a9b3f72539ee184e5a

被攻击合约:

0x7259e152103756e1616A77Ae982353c3751A6a90

攻击交易:

0x26a83db7e28838dd9fee6fb7314ae58dcc6aee9a20bf224c386ff5e80f7e4cf2

0xdb4616b89ad82062787a4e924d520639791302476484b9a6eca5126f79b6d877

攻击流程:

1. 攻击者(0x87F58580)通过闪电贷借取300000枚MIM代币。

2. 随后向被攻击合约(0x7259e1520)发送了240000枚的MIM代币,用于下一步偿还用户的借款。

3. 攻击者(0x87F58580)随后调用repayForAll函数偿还其他用户的借款,后续又依次调用repay函数偿还其他用户借款,目的是将elastic变量减小为0.

4. elastic变量减小为0后,攻击者(0x87F58580)创建新的攻击合约(0xe59b54a9)并不断的进行borrow和repay函数的调用,直到将elastic =0,base = 120080183810681886665215049728时结束。

5. 随后攻击者(0x87F58580)调用borrow函数和DegenBox合约的withdraw函数借出了5000047枚MIM代币。

6. 攻击者(0x87F58580)归还闪电贷函数,并将4400000枚MIM代币兑换为1807枚ETH,本交易获利约450W。

攻击的本质是在进行借贷变量计算时精度出现了问题,使得关键变量elastic和base值被操纵后比例失衡,导致计算抵押物和借贷数量时出现问题,最终超额借出MIM代币。

被攻击合约(0x7259e1520)中borrow函数和repay函数在对elastic和base两个变量进行计算时,都采用了向上取整的方式。

攻击者(0x87F58580)首先通过偿还其他用户借款的方式,将elastic变量和base变量分别设置为了0和97。

随后不断的调用borrow函数和repay函数并且参数amount都为1,在第一次调用borrow函数时,由于elastic=0,会执行上述if逻辑并回到add函数中。这样会导致elastic = 1,base = 98。

攻击者(0x87F58580)再调用borrow函数并传入1,由于elastic=1,会执行else逻辑,计算出的返回值为98,这样在回到add函数中时,elastic=2,base变量为196.

但此时攻击者(0x87F58580)调用repay函数并传入1,由于elastic=2,会执行else逻辑,计算出的elastic变量本来为 1*2/98 =0,但由于下面存在向上取整的步骤,导致计算出的返回值1,这样在回到sub函数中时,elastic变量又变回1,而base变量为195。

可以看到在经历一次borrow-repay循环后,elastic变量不变而base变量近乎翻倍,利用这一漏洞,黑客频繁进行borrow-repay函数循环,最后再调用一次repay,最终使得elastic=0 base = 120080183810681886665215049728。

当elastic和Base变量之间的比例严重失衡后,攻击者(0x87F58580)添加了一点抵押物后即可通过solvent修饰符中的限制条件,从而借出大量MIM代币。

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:

1. 开发精度计算相关逻辑时,慎重考虑精度和取整情况。

2. 项目上线前,需要通过专业的第三方审计团队进行智能合约审计。

SharkTeam的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括链上大数据分析、链上风险预警、KYT/AML、智能合约审计、加密资产追讨等服务,并打造了链上智能风险识别平台ChainAegis,平台支持无限层级的深度图分析,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land等建立长期合作关系。

官网:https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

评论

所有评论

推荐阅读

  • 美联储卡什卡利:需要更加关注实际通胀

    美联储卡什卡利表示,美联储正在关注经济中的潜在需求以降低通胀;需要更加关注实际通胀;住房市场的韧性一直都超过预期;当前,我非常注重住房问题对于美国通胀的影响;重要问题是目前政策的限制程度如何。 美联储卡什卡利表示,我们可能需要将利率在当前水平再维持一段时间,以弄清通胀的走向;美联储的资产负债表缩减进展顺利。

  • 美司法部:攻击以太坊区块链盗取2500万美元加密货币的两兄弟被捕

    5月16日消息,美国司法部南区检察官办公室宣布 Anton Peraire-Bueno 和 James Peraire-Bueno 两兄弟因涉嫌利用以太坊区块链的漏洞,在大约 12 秒内盗取价值约 2500 万美元的加密货币而被捕。 据起诉书称,这两名嫌疑人在美国一所著名高校学习数学和计算机科学,利用他们的专业知识操纵和篡改了以太坊区块链的交易验证和添加协议,以此欺诈性地获取受害者的加密货币。这是有史以来首次发生此类攻击事件。两人被指控合谋实施电信欺诈、电信欺诈以及合谋洗钱,每项罪名最高可判处 20 年监禁。美国司法部副部长莫纳科表示,尽管被告策划了数月并在几秒内实施了这一复杂且前所未见的欺诈行为,但仍难逃法网。

  • 美国众议院推翻有争议的SEC规则的决议可能会在参议院通过

    多位知情人士透露,美国众议院提出的一项决议有望在参议院投票表决中获得通过。该决议旨在撤销美国证券交易委员会(SEC)此前发布的员工会计公告121(SAB 121)。 SAB 121 要求企业将持有的加密资产记录在自己的资产负债表上,但批评者认为这一规定过于严苛,实质上阻碍了主要托管机构和公司为客户持有加密资产。上周,美国众议院已投票决定推进这一决议。 消息人士称,参议院可能在当地时间周四上午晚些时候就该决议进行投票,目前该决议在参议院「处于有利地位」,预计将有多名民主党议员投票支持。如果该决议最终获得通过并由总统拜登签署,SEC 将被禁止发布任何类似的指引。不过白宫此前曾威胁称,一旦决议在参议院获得通过,拜登将行使否决权。

  • DeFi协议Shogun开发商Intensity Labs完成690万美元种子轮融资

    DeFi协议Shogun的开发商Intensity Labs在种子轮融资中筹集了690万美元。Intensity Labs表示,Polychain Capital和DAO5共同领投此轮融资,Arrington Capital、Arthur Hayes的家族办公室Maelstrom和Build-a-Bera参与其中。Cobie、Ansem、Ser Shokunin和Meltem Demirors等天使投资人也参与了本轮融资。

  • 区块链软件即服务解决方案AfriDex完成500万美元Pre-Seed轮融资,Endeavor Ventures领投

    总部位于英国伦敦的区块链软件即服务解决方案AfriDex宣布完成500万美元Pre-Seed轮融资,Endeavor Ventures领投,African Crops Limited、Oldenburg Vineyards和Hank Oberoi参投。AfriDex目前主要专注于农业市场,通过全面的链上解决方案为供应链参与者提供支持和保护,利用区块链技术实现可追溯性、无摩擦支付、防欺诈交易、经过验证的认证、简化税收和补贴管理。

  • Bitget Wallet推出1000万美元生态系统基金,拟于本季度发布BWB代币

    Bitget Wallet宣布与Onchain Layer共同推出1000万美元生态系统基金,该生态系统基金以 Bitget Wallet 的原生代币BWB计价,该代币计划于本季度发布,据悉BWB是该交易所同名自我托管钱包的原生代币,类似于Trust Wallet 代币 (TWT),新基金将加速 Bitget Onchain Laye 的开发并支持项目构建。

  • 俄克拉荷马州通过“比特币权利”法案,保护数字资产自我保管权和挖矿权

    俄克拉荷马州州长Kevin Stitt周一签署了一项广泛的“比特币权利”法案,保护了俄克拉荷马人自我保管数字资产的权利。该法案还使俄克拉荷马居民在家和工业规模上挖掘加密货币合法化。该法案HB3594由共和党州议员Brian Hill提出,并由共和党州参议员Bill Coleman在参议院提出。该法案的签署是加密货币倡导者的一大亮点,因为联邦监管机构一直在通过对加密货币公司和开发人员的执法行动来监管加密货币行业。

  • 《星岛日报》:香港金管局最快本周五公布在港推出数字人民币相关详情

    5月16日消息,据《星岛日报》报道,香港为内地以外首个试点进行数字人民币跨境使用技术测试,并已测试了数年,现终进入直路。据悉,香港金管局最快将于本周五公布在港推出数字人民币相关详情,进一步扩大数字人民币在港的试点范围。 初步阶段香港市民可透过工商银行、中国银行、建设银行、交通银行开通数字人民币钱包,并可经转数快(FPS)增值,直接从人民币户口扣数,或扣港币户口并即时兑换人民币,同时也可用银行卡增值,方便港人到内地跨境支付。 消息指香港金管局最快明日下午举行发布会,公布在港推出数字人民币跨境使用详情,届时将由金管局副总裁李达志主持。是次属扩大数字人民币在港的试点范围,旨在让更多香港市民可便捷开立和使用数字人民币钱包,并透过转数快增值,便利有需要的港人在内地跨境支付,并方便内地游客在港用数字人民币消费。

  • Blur 5小时前将3554万BLUR解锁代币转入Coinbase Prime

    据链上分析师余烬监测,Blur已在5小时前将5月份的解锁代币转入Coinbase Prime,3554万BLUR(1296万美元)在8小时前从Blur解锁合约解锁转出至0x0A0多签地址,然后在5小时前经0x0A0多签地址转入Coinbase Prime。 BLUR自2023年6月15日进入解锁周期以来,已累计解锁并转入Coinbase Prime23%(6.907亿)总量的BLUR。

  • 澳大利亚劳工部长:通过数字身份证法案是必要的

    澳大利亚劳工部长认为,通过数字身份证法案是必要的,以便为个人提供是否使用数字身份证的选择。