火星链 火星链
Ctrl+D收藏火星链
首页 > 比特币 > 正文

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

作者:

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

前言

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

简述攻击流程

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

0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299

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

Monero社区因隐私问题强烈反对Modinals:金色财经报道,Monero社区因隐私问题强烈反对Modinals,Mordinals本质上是Monero区块链上Ordinals的修改实现,Cake Wallet副总裁Justin Ehrenhofer表示,Monero应该采取措施限制某些行为,就像它对其他隐私和可替代性风险所做的那样,Monero网络之所以强大,是因为XMR的隐私、安全和效率是最重要的,其他一切都需要与这个目标相得益彰。一些Monero持有者将NFT视为对隐私的威胁。[2023/5/20 15:15:50]

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

前NBA球星Baron Davis拟创建NFT摄影和视频版权管理平台SLiC Images:金色财经报道,前 NBA 球星和科技企业家 Baron Davis 计划创建一个由 NFT 技术支持的摄影和视频版权管理平台 SLiC Images,将允许创作者使用独特的数字签名代币化他们的作品,并通过透明的招标过程在明确规定的时间范围内将其许可用于商业用途。SLiC Images 已获得 NEAR 生态 NFT 基础设施 Mintbase 提供的 25 万美元赠款。[2023/2/21 12:19:49]

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

Compound DAO被指控销售无证证券:金色财经报道,Compound DAO是由三名投诉人提起的案件中列出的八名被告之一,这些投诉人声称他们在购买COMP代币后遭受了损失,根据最近提交的诉讼,他们声称COMP代币是被告出售的无证证券,该诉讼正在寻求集体诉讼地位。

该诉讼于12月8日在美国加州北区地方法院旧金山分院提起。该诉讼认为,去中心化自治组织及其合作伙伴监督COMP代币作为未经许可的证券的销售。它还表示,被告就持有COMP代币的盈利前景做出了虚假和误导性的陈述。[2022/12/14 21:44:16]

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

Change宣布完成500万美元的种子轮融资:金色财经报道,Web3慈善捐款初创公司Change宣布完成500万美元的种子轮融资,以进一步参与加密领域。Freestyle和NEA领投,Shrug Capital以及来自Solana、Alchemy和Dapper Labs的天使投资人参投。

Change 表示,它目前致力于为超过 200,000 个不同的认可慈善机构提供资金,包括 Make-A-Wish America 和总部位于纽约的 Welcome to Chinatown,尽管 Nigam 和 Shah 拒绝透露这家初创公司今天与多少客户合作或资金数额流经其 API。[2022/7/11 2:05:45]

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

漏洞成因分析

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

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

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

检查源码

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

来源:金色财经

标签:MONTOKEKENMONODORMONCZodiac StabletokenIrr TokenBumono Network

比特币热门资讯
PUN:彭博社:即使在元宇宙中 也不是所有身份都是平等的

注:原文来自彭博社,作者为MisyrlenaEgkolfopoulou及AkaylaGardner,以下为全文编译.

1900/1/1 0:00:00
Arkham:一体化数字艺术品IDA全面接入数字人民币

今年7月份,央行发布数字人民币白皮书,明确提出数字人民币是国家法定货币,将继续稳妥推进数字人民币研发试点。根据国家政策及数字经济发展需求,一体化数字艺术品近日完成与数字人民币系统的对接上线.

1900/1/1 0:00:00
Bithumb:DEFI一统天下链游正在悄悄成为行业的主流?

DEFI一统天下的局面已经被改变,据目前市场的信息情况,每天在活跃的钱包连接的DAPP上面目前都是游戏类型的DAPP上面比较多,每天增加的连接数量在一直的增加.

1900/1/1 0:00:00
NFT:金色观察丨数字艺术和NFT正悄然改变传统所有权属性?

金色财经区块链12月11日讯??过去十年中,我们消费媒体的方式已经发生了翻天覆地的变化。在过去,我们需要的是对实体物质的所有权,而如今我们得到的已经是全天候不间断的数字流媒体服务了,我们可以在任.

1900/1/1 0:00:00
BOS:World Mobile与Boson Protocol达成战略合作

我们的愿景是连接未连接的人,让每个人都可以体验去中心化的金融,实现经济自由。与BosonProtocol达成新合作伙伴关系将帮助用户实现这一目标.

1900/1/1 0:00:00
区块链:ALPEX解读|Opensea、NFT白名单和空投

Opensea作为最受主流欢迎的第一个以太坊区块链上建立的NFT市场,曾在11月创下了110亿美元的交易量记录.

1900/1/1 0:00:00