木星链 木星链
Ctrl+D收藏木星链

MONO:MonoX.Finance安全事件分析

作者:

时间:1900/1/1 0:00:00

前言

11月30日,知道创宇区块链安全实验室?监测到自动做市商协议MonoX.Finance遭黑客攻击,损失超3100万美元。实验室第一时间跟踪本次事件并分析。

攻击涉及信息

此次安全事件共有两次攻击分别发生在以太坊和polygon上。

简述攻击流程

本次攻击分析选用以太坊交攻击交易:0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299

1、黑客首先通过swapExactTokenForToken函数将0.1WETH兑换为79.9MONO

2、重复利用函数removeLiquidity移除Monoswap合约中的流动性,直至全部移除

去中心化交易所Trader Joe将推出升级版交易引擎:金色财经报道,去中心化加密货币交易所 (DEX) Trader Joe营销负责人Blue周五表示,最快将于下周推出升级版交易引擎Liquidity Book V2.1,该版本将使存款人更有效地向Trader Joe的流动性池中添加代币,并改善链上交易体验。Trader Joe已在Arbitrum、BNB Chain和Avalanche上部署,升级还将引入“自动池”,自动管理存款人在流动性池中的活跃头寸,以降低风险。[2023/4/1 13:38:35]

3、通过函数addLiquidity添加自己操控的流动性

4、重复调用函数swapExactTokenForToken实现MONO->MONO的不合理兑换

Aave社区发起旨在冻结Aave V2以太坊市场上BUSD储备的提案:2月13日消息,Aave社区发起旨在冻结Aave V2以太坊市场上BUSD储备的提案,该提案认为BUSD资产的流通供应最终将趋近于零。由于没有真正的增长前景,无法铸造新的BUSD可能会损害挂钩套利机会和资产挂钩。[2023/2/13 12:04:20]

5、最终利用被以上操作抬高价格的MONO兑换了WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等从而获利。

漏洞成因分析

分析攻击流程可以发现两个不合理的地方:

攻击者可以通过函数removeLiquidity移除了其他人添加的流动性攻击者通过函数swapExactTokenForToken不断重复MONO兑换MONO的操作

律师称马斯克以战争风险为由放慢Twitter交易速度:金色财经报道,Twitter公司的律师正在利用埃隆·马斯克的短信,试图说服特拉华州的一名法官,马斯克想要放弃440亿美元的公司收购交易,是因为他自身的悔意,而不是对Twitter的垃圾邮件或僵尸账户的担忧。

Twitter公司的律师Bill Savitt在周二的法庭听证会上,将马斯克与一位银行家之间的短信作为证据。在5月8日的短信中,马斯克要求该银行家放慢交易进程,直到俄罗斯总统普京发表关于乌克兰的演讲之后。马斯克写道:“如果我们正在进入第三次世界大战,那么购买Twitter就没有意义了。”

马斯克要求推迟定于10月17日举行的审判,因为一名举报人指控Twitter在垃圾邮件和僵尸账户方面误导了投资者。法官预计将在本周晚些时候对此事做出裁决。(彭博社)[2022/9/7 13:13:39]

检查源码

三箭资本将17780枚stETH换为16625枚ETH,并全部兑换为近2亿枚DAI:6月14日消息,链上数据显示,被Nansen标记为三箭资本的地址(0x5491fb87ebc0d870ddaa1f757719e11928b1a8cb),将17780.08枚stETH兑换为16625.07枚ETH,兑换比例为0.9350:1,价值约2亿美元。并已将全部16625枚ETH兑换为近2亿枚DAI。[2022/6/14 4:26:14]

对函数removeLiquidity源码进行分析

可以看到函数removeLiquidity和它包含的内部函数_removeLiquidityHelper都没有对调用者进行权限限制,以及对需要被移除流动性的传参地址to进行验证,这导致了任意地址都能进行对该pool内所有流动性进行移除。

对函数swapExactTokenForToken源码进行分析

1、发现函数swapExactTokenForToken主要功能由函数swapIn实现,对函数swapIn进行跟进分析

2、发现获取token信息的函数getAmountOut,对函数getAmountOut进行跟进分析

3、发现tokenInPrice与tokenOutPrice的计算规则相同都是通过函数_getNewPrice计算,跟进到函数_getNewPrice

4、发现price的获取对应两种状态

SELL状态:价格=代币初始价格*代币存储量/(代币存储量+费用)

BUY状态:价格=代币初始价格*代币存储量/(代币存储量-费用)

很明显相同token在BUY状态下获取到的价格大于SELL状态

5.回到swapIn函数,当传入token价格被获取到后会按照token种类通过_updateTokenInfo进行token信息更新。

由于传入的token都为MONO所以:

当通过if(tokenIn==address(vCash))判断时,MONO获取到的价格是SELL状态下计算的价格;

当通过if(tokenOut==address(vCash))判断时,MONO获取到的SELL状态下的价格会被BUY状态下获取的价格覆盖;

因此当发生MONO兑换MONO操作时,MONO的价格会上升。

重新梳理攻击过程

第一步:黑客将0.1WETH兑换为79.9MONO作为启动资金

第二步:黑客移除了pool内全部流动性,防止攻击受到影响或者价格波动被检测到

第三步:黑客添加了自己控制的流动性,便于兑换操作

第四步:黑客通过重复MONO兑换MONO的操作,不断抬高MONO价格

第五步:利用已经被抬高的MONO兑换pool内其他资产达到获利目的

总结

本次安全事件问题其实并不复杂,主要原因在于monoswap合约在设计时没考虑到特殊情况下的价格覆盖问题,而可任意移除流动性的缺陷则更加方便黑客对于价格的操纵。

知道创宇区块链实验室官网

www.knownseclab.com

创宇存证平台|知道创宇唯一指定存证平台

创宇存证-可信数据,价值流转

联系我们

blockchain@knownsec.com

知道创宇区块链安全实验室导航

微信公众号

@创宇区块链安全实验室

官方网站

@知道创宇区块链安全实验室

微博

@知道创宇区块链实验室

https://weibo.com/BlockchainLab

知乎

@知道创宇区块链安全实验室

https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi

Twitter

@KS_Blockchain

https://twitter.com/KSBlockchain

标签:MONOTOKTOKENKENMONO价格Mirror World Tokenimtoken币被盗怎么办Startup Boost Token

pepe最新价格热门资讯
NFT:【斗罗英雄】即将震撼上线 SUNWAP ,打造波场链上【链游王者】

据官方透露,火爆全球,数十万玩家超强共识的NFT斗罗英雄即将上线1.0测试版本!并于2021-12-3?开启盲盒抢购,本次抢购共开放8888个盲盒,数量有限.

1900/1/1 0:00:00
EFI:元宇宙高潮迭起,NFT王牌项目Efinity能否扛起波卡生态大旗?

最近几个月,整个行业最大的热点莫过于元宇宙。一方面,各类元宇宙项目层出不穷,以GameFi为核心的“打金热”愈演愈烈;另一方面,众多资本疯狂涌入,频频在元宇宙赛道下注.

1900/1/1 0:00:00
DEFI:Bitwise发布DeFi展望:预测未来十年,DeFi会像亚马逊一样颠覆市场

报告来源:Bitwise编译及整理:AmyLiu资产管理公司Bitwise发布了一份题为《去中心化金融:专业投资者入门》的报告。报告指出,尽管数字技术重塑了许多行业,但并未重塑金融.

1900/1/1 0:00:00
EFI:深度长文解析:GameFi经济模型应如何设计

原标题|八千字长文:Gamefi经济模型应该如何设计作者?|?CyborgDoggie,顾问@RacingTime合作者:DailyShen@RacingTime编译:刘全凯已获得原作者授权转载.

1900/1/1 0:00:00
IDO:加密市场遭遇“黑色星期五” 熊来了还是你慌了?

作者:陈小黑出品:鸵鸟区块链11月26日,加密市场经历了“黑色星期五”,比特币跌至7周低点,山寨币也普遍下跌,唤醒了有些投资者对熊市的记忆.

1900/1/1 0:00:00
Helium:了解物联网龙头Helium:运行与激励逻辑 优点与缺点

吴说作者?|?袁奔本期编辑?|?ColinWu一直以来关于区块链在加密货币之外的实际应用,都是区块链从业者一直在探索的目标.

1900/1/1 0:00:00