木星链 木星链
Ctrl+D收藏木星链
首页 > 区块链 > 正文

TOKE:“我杀我自己?”—— MonoX.Finance安全事件分析

作者:

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

前言

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

简述攻击流程

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

0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299

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

分析师:比特币与美国传统股市指数的相关系数的90天移动平均线已降至几乎为零:金色财经报道,分析师称,比特币与美国传统股市指数(标准普尔500指数和纳斯达克指数)的相关系数的90天移动平均线已降至几乎为零。这种情况意味着仅仅依赖传统市场情绪和宏观经济事件的加密货币交易者可能会面临自己的预测存在差异。[2023/7/10 10:12:43]

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

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

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

某巨鲸8小时前从Binance提取约200万美元ARB:金色财经报道,据Lookonchain数据显示,某巨鲸地址在8小时前从Binance平台提取1414425枚ARB,价值约200万美元。然后添加到Uniswap以提供流动性。[2023/5/1 14:36:28]

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

漏洞成因分析

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

攻击者可以通过函数removeLiquidity移除了其他人添加的流动性

Voyager Token VGX短时涨超20%,现报价0.436美元:金色财经报道,Voyager Token VGX过去一小时涨21.1%,现报价0.436美元。行情波动较大,请做好风险控制。[2022/11/24 8:03:58]

攻击者通过函数swapExactTokenForToken不断重复MONO兑换MONO的操作

检查源码

对函数removeLiquidity源码进行分析

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

Web3钱包Zerion完成1230万美元B轮融资,Wintermute Ventures领投:10月12日消息,Web3钱包Zerion完成1230万美元B轮融资,本轮融资由Wintermute Ventures领投,Mosaic、Coinbase Ventures、Alchemy和Placeholder等参投。本轮融资资金将用于进一步开发其钱包产品,提升数据分析功能并为用户带来更直观的显示界面。(theblock)[2022/10/12 10:32:53]

对函数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合约在设计时没考虑到特殊情况下的价格覆盖问题,而可任意移除流动性的缺陷则更加方便黑客对于价格的操纵。

来源:金色财经

标签:TOKETOKTOKENKENCoineal TokenForce For Fast TokenGOV TokenYDB Token

区块链热门资讯
云存储:盘古开源浅析:数据云存储市场的发展历程

在现在的数字经济时代,数据量高速增长,数据存储已经是很多产业服务、经济建设的重要基础设施。目前,数据存储的市场焦点是云存储,而云存储在这个阶段也逐步出现了分化,一是Web2.0中心化的方案,国内.

1900/1/1 0:00:00
BIT:大饼重回5万美元,自伦敦硬分叉升级以来燃烧了115万个ETH

美国劳工部周五报告称,?消费者价格指数?已达到6.8%的39年同比增长峰p值,11月增长0.8%。尽管该数字符合分析师的预期,但这仍将比特币的价格推高了约2.5%.

1900/1/1 0:00:00
NFT:元宇宙周刊丨三星亮相AR游乐场;游戏公司育碧涉足NFT;国内首家元宇宙乐园落地深圳

概述新的一周,我们见证了越来越多的传统行业加入到元宇宙的浪潮之中。首先是三星宣布了Dreamground,这是一个将物理结构与AR技术相结合的下一代游乐场,让游客沉浸在独一无二的数字环境中.

1900/1/1 0:00:00
AVA:Footprint:拆解Avalanche链攀升的奥秘

撰文:Footprint分析师Simon(simon@footprint.network)日期:2021年12月FootprintAnalytics在9月曾发表过关于Avalanche的文章.

1900/1/1 0:00:00
POR:数字货币知识普及(三)公链代币和项目代币的区别

交易所交易的代币,分为公链代币和项目代币。什么是公链代币?公链就是基础链,可以在链上建立各种应用,比如以太仿就是公链,可以在上面搞个养猫游戏开发,搞个ICO,发个代币,或者开发某个项目等等.

1900/1/1 0:00:00
中心化交易所:如何克服并影响加密行业的诸多挑战?AirCash给你答案

从一开始,区块链的去中心化一直是每个数字资产的基础。不去使用第三方的信任系统是中本聪创建加密货币和区块链的主要原因之一.

1900/1/1 0:00:00