MON:MonoX.Finance安全事件分析_imtoken官网下载2.0

前言

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

攻击涉及信息

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

简述攻击流程

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

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

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

电子货币机构Monerium于Gnosis Chain推出欧元稳定币EURe:3月21日消息,Gnosis Chain 官方宣布,电子货币机构 Monerium 已于该网络推出超额抵押欧元稳定币 EURe,抵押率为 102%,由银行存款中持有的实际欧元或合格的高质量、高流动性证券支持。借助数字资产管理平台 Safe 签署交易,EURe 可通过单一欧元支付区(SEPA)作为欧元发送到任何银行账户。

据悉,Monerium 是一家完全获得授权和监管的电子货币机构(EMI),获准为欧洲经济区、英国和瑞士的居民发行电子货币。[2023/3/22 13:18:11]

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

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

Jump Crypto前研究工程师团队负责人已离职并创立EVM兼容区块链网络Monad:4月11日消息,Jump Trading 前研究负责人 Keone Hon 宣布已离职并创立 Monad,其愿景是通过构建一个新的 EVM 兼容、高性能区块链,以及大规模改进 EVM 执行,来释放以开发人员为中心的 EVM 生态系统的潜力,预计吞吐量是以太坊的 1000 倍以上,并实现更复杂的应用程序和更广泛的采用。[2022/4/11 14:16:46]

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

漏洞成因分析

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

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

Akemona宣布与体育公司签订合同,通过代币化筹集1000万美元:金色财经报道,Akemona公布的两份合同显示,其已与一家美国足球联赛和一家体育基础设施公司合作,在其平台上筹集了 1000 万美元。Akemona 平台为小型企业、体育联盟、团队、运动员和艺术家提供了为他们的项目发行代币的能力,并通过购买这些代币来邀请他们的客户、粉丝和公众对项目进行投资。作为发行人,他们可以出售代表债券的代币,这些代币可以转换为会员权益、普通股或到期时以现金偿还。(prnewswire)[2021/10/5 17:24:40]

检查源码

对函数removeLiquidity源码进行分析

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

声音 | SBI控股CEO:MoneyTap考虑接受Ripple注资;VcTtrade上币原则要求总市值超过5000亿日元:据Coinpost报道,4月26日,SBI控股召开决算说明会,会上SBI控股CEO北尾吉孝就该公司加密业务作出如下披露: 1. 关于旗下交易平台VcTtrade,目前杠杆倍率仍为确定,有必要继续进行观察。VcTrade的上币原则是:为了避免51%攻击,币种总市值应超过5000亿日元(约44.79亿美元);预计不会出现不健康的硬分叉;流通性、安全性、收益性。 2. 关于加密货币基金业务,考虑通过在金商法中定义为“金融商品”的STO进行大规模资金筹募。与美国CoVenture合作成立加密货币基金一事已同金融厅进行了交涉,有望实现。 3. 挖矿业务,SBI控股计划通过挖矿占有三成的算力市场份额;预计下一财务期间,即便BTC价格仍然持续低迷,挖矿业务也能逐渐实现盈利。 4. 关于MoneyTap,正在考虑接受来自Ripple的出资;QR码加盟店结算服务预计可在2019年年内启动。[2019/4/27]

对函数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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-5:476ms