前言 11 月 30 日,知道创宇区块链安全实验室监测到自动做市商协议 MonoX.Finance 遭黑客攻击,损失超 3100 万美元。实验室第一时间跟踪本次事件并分析。 简述攻击流程 本次攻击分析选用以太坊交攻击交易: 0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299 1、黑客首先通过 swapExactTokenForToken 函数将 0.1WETH 兑换为 79.9MONO 2、重复利用函数 removeLiquidity 移除 Monoswap 合约中的流动性,直至全部移除 3、通过函数 addLiquidity 添加自己操控的流动性 4、重复调用函数 swapExactTokenForToken(55次)实现 MONO->MONO 的不合理兑换 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 合约在设计时没考虑到特殊情况下的价格覆盖问题,而可任意移除流动性的缺陷则更加方便黑客对于价格的操纵。 查看更多 —- 编译者/作者:知道创宇区块链安 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
“我杀我自己?”——MonoX.Finance安全事件分析
2021-12-06 知道创宇区块链安 来源:区块链网络
- 上一篇:暗战滴滴故事:里应外合与分道扬镳
- 下一篇:币安准备在英国注册尽管被监管机构禁止
LOADING...
相关阅读:
- 元宇宙,NFT一个又一个的造富机会,赶紧割起来!2021-12-06
- 元宇宙链游Deesse(DEE)女神降临 (链游打金)(角色扮演类PRG手游)2021-12-06
- 克罗地亚最大的连锁超市 Konzum 采用加密货币作为支付手段2021-12-06
- SEC 主席 Gary Gensler 强调加密市场易受操纵,投资者易受攻击 – 监管比特2021-12-06
- 李笑来:元宇宙下跌刚开始。李法师说币圈的红利期已经消失了。老韭2021-12-06