鸵鸟区块链

SharkTeam独家分析 | 价格操纵:MonoX Finance被黑事件分析

SharkTeam 2021-12-02 11:20
摘要:

11月30日,MonoX Finance在以太坊和polygon上的流动性池遭遇攻击,损失约3400万美元

北京时间11月30日,MonoX Finance在以太坊和polygon上的流动性池遭遇攻击,损失约 3400 万美元,包括约 2.1K 个 WETH、1.9M 个 WMATIC、36.1 个 WBTC、143.4K 个 MONO、8.2M 个 USDC、 9.1M 个 USDT、1.2K 个 LINK、3.1K 个 GHST、5.1M 个 DUCK、4.1K 个 MIM 以及 274.9 个 IMX。

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

一、事件分析

攻击者地址 1:

0xecbe385f78041895c311070f344b55bfaa953258

攻击者地址 2:

0x8f6a86f3ab015f4d03ddb13abb02710e6d7ab31b

攻击合约 1:

0xf079d7911c13369e7fd85607970036d2883afcfd

攻击合约 2:

0x119914de3ae03256fd58b66cd6b8c6a12c70cfb2

攻击交易 1:

https://etherscan.io/tx/0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299 

攻击交易 2:

https://polygonscan.com/tx/0x5a03b9c03eedcb9ec6e70c6841eaa4976a732d050a6218969e39483bb3004d5d

以ETH上的交易1为例:

(1)首先攻击者调用 Monoswap.swapExactTokenForToken,用0.1 个 WETH 换出 79.986094311542621010 个 MONO,做为攻击本金。

(2)移除 0x7b9aa6 的流动性,1670.7572297649224 个 MONO 和 6.862171986812230290 个 vCASH 被移除。

(3)移除 cowrie.eth 的流动性,152.9745213857155 个 MONO 和 0.628300423692773565 个 vCASH 被移除。

(4)移除 0xab5167 的流动性,99940.7413658327 个 MONO 和 410.478879590637971405 个 vCASH 被移除。

移除其他用户的流动性是为了将Monoswap合约中MONO的流动性降低到一个较小的值,便于后续使用更少的 MONO来进行价格操纵。

image.png

攻击者只所以可以移除其他流动性提供者的流动性,原因在合约中涉及移除流动性的_removeLiquidityHelper、removeLiquidity和_removeLiquidity函数都未做调用者和to 地址的身份验证,攻击者可移除任意用户在池中的流动性。

image.png

(5)攻击者为MONO添加流动性并进行了55次MONO-MONO的Swap,对MONO代币价格进行操纵。

image.png

Monoswap.sol合约中通过getAmountOut函数进行Swap代币的价格。

image.png

getAmountOut函数中的输入/输入代币价格计算逻辑如下。

image.png

image.png

当传入和传出为同一种代币MONO时,tokenOutPrice > tokenInPrice 。由于 tokenIn 和 tokenOut 都是MONO,swapIn 函数在计算完价格后会调用 _updateTokenInfo更新MONO的价格,导致MONO价格上涨。MONO的价格被拉升至843,741,636,512.366 vCASH/MONO。

(6)攻击者调用 swapTokenForExactToken 函数用拉高价格后的 MONO换出池子中的其他代币。

总结:本次攻击的根本原因在于合约没有对Swap传入和传出代币作同一性检查,从而导致攻击者可以利用此“同一性”漏洞控制拉高代币价格,并用拉高价格后代币兑换出流动性池中其他所有代币。

二、安全建议

SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。

SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。

image.png

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

SharkTeam

——

77 篇 作品