您现在的位置是:首页 >技术教程 >零时科技 || IonicMoney 攻击事件分析网站首页技术教程

零时科技 || IonicMoney 攻击事件分析

零时科技 2025-02-22 12:01:03
简介零时科技 || IonicMoney 攻击事件分析

背景介绍

近期,我们检测到 Mode Chain 上针对 Ionic Money 的一系列攻击:

https://explorer.mode.network/tx/0x37e53b15cb7f298bd8c45fcbbd914ba90feb3946f5511fc55bc986b7472956df 

Ionic Money 是一个 compound fork 的 DeFi 项目,其在 Base 、 Optimism 、 Bob 、 Fraxtal 、Lisk 、 Mode 上均提供服务。本次是在 Mode Chain 上遭受攻击者攻击,本次攻击共损失约 8.5 MUSD 。

攻击及事件分析

首先,攻击者通过 mint 使用 60 LBTC 兑换了 undelying assets , 300 ionLBTC 。

图片

但是,当我们看攻击者 60 LBTC 来源时发现这 60 LBTC 是攻击者自己 mint 的,攻击者在发起攻击前,通过 mint 获得了 250 LBTC 。

图片

随后,我们查看了 LBTC 的合约,发现合约中的 Bascule 为:

0x0000000000000000000000000000000000000000 。

图片

在LBTC的实现中 mint 需要通过 Bascule 的验证,

图片

其中, _confirmDeposit 的实现如下:

图片

LBTC 官方文档中对 Bascule 的介绍如下,其主要功能为一个 on-chain 的合约和 off-chain 的系统,防止攻击者进行攻击。

图片

因为,此 LBTC 的 Bascule 没有对应的合约,所以攻击者可以任意 mint 。随后,攻击者通过mint 的 LBTC 抵押到 IonicMoney 中,提取了所有池子的资金完成攻击。所以,造成此次攻击的根本原因是 IonicMoney 在创建借贷池时没有验证 LBTC 是否是官方创建的合约,导致借贷池的 unlying assets 为 fake token ,攻击者随意 mint 后通过 borrow 掏空所有资金。

图片

 

总结

本次漏洞成因主要是因为 IonicMoney 项目方在创建借贷池时没有验证资产对应的合约是否是官方部署的,导致借贷池的 undelying asset 为 fake token 。建议项目方在设计经济模型、价格计算机制和代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计,最后在上线前部署时检查对应的 token 是否是官方部署的。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。