本文深入分析了Mango Markets的攻击案例,包括攻击者的策略、账户分析以及造成的损失。它详细描述了攻击者如何利用杠杆和市场波动性进行交易,从而获得了超过1.2亿美元的加密资产。文章还介绍了调查攻击的技术手段,提供了一系列有价值的见解。
在本系列文章中,我们将对一些代表性的链上协议攻击进行深入的事后调查,并分享 sec3 核心团队用于理解攻击的技术和工具。
最近,Mango Markets 被利用,损失超过 1 亿美元;攻击者甚至提出了一项名为“偿还坏账”的 Mango DAO 提案,呼吁 Mango 国库偿还坏账,使存款人与协议对立。
攻击者的提案获得了超过 3300 万的“是”投票,使用的 MNGO 代币数量非常庞大。
攻击者通过 FTX 从两个账户中资助了超过 1000 万美元的 USDC
利用上述两个账户作为所有者,攻击者创建了两个 Mango 账户,并向每个账户存入 500 万 USDC 作为抵押物
攻击者利用 MangoAccount1 在 MNGO-PERP 中创建了一个大额多头头寸(买入数量=515717245 价格=0.0382 USDC,并使用 Mango 的 4 倍杠杆)
攻击者利用 MangoAccount2 创建了三个大型空头头寸(总卖出数量=488302109)在 MNGO-PERP 中
攻击者通过在 Serum DEX 上进行多次巨额交易,导致 MNGO 的价格大幅上涨(从 0.0382 道达到高达 0.5 USDC,增长超过 13 倍)
攻击者在 MangoAccount1 和 MangoAccount2 之间结算了利润和损失,使 MangoAccount1 在其多头头寸上获得了超过 2 亿美元的巨额未实现利润
然后,攻击者利用 MangoAccount1 从 Mango 借入并提取了超过 1.2 亿美元的各种代币(BTC (sollet),USDT,SOL,mSOL,USDC),所有交易仅用几分钟完成
本质上,攻击者使用的办法利用了 MNGO 的波动性以及 Mango 在期货市场中的保证金和杠杆。
要调查这次攻击,我们首先需要找到攻击者的地址和攻击交易。假设我们仅有攻击者的 Mango 账户(其有超过 -$115M 的巨大债务):https://trade.mango.markets/account?pubkey=4ND8FVPjUGGjx9VuGFuJefDWpg3THb58c277hbVRnjNa
然而,Mango 每分钟有数千笔交易,我们如何知道哪些地址属于攻击者? sec3 团队利用以下三种方法:
第三种方法是找到攻击者地址的最有效方式,因为 Mango 账户的所有者信息存储在 MangoAccount 结构体中的 第三个字段(请见下面第 1286 行):
通过解码 4ND8FVPjUGGjx9VuGFuJefDWpg3THb58c277hbVRnjNa 的账户数据,我们可以找到它的所有者是 yUJw9a2PyoqKkH47i4yEGf4WXomSHMiK7Lp29Xs2NqM(攻击者的 Account1)。
然后,我们可以检索攻击者的 Account1 所有历史交易。总共有 44 笔交易。我们可以逐一分析这些交易,从最老的开始到最新的:
时间戳(UTC) | 事件 |
---|---|
2022年10月11日 19:36:47 | 攻击者创建了 Account1 并从 FTX 资金注入 25K USDC,交易号 2p86o...gFUyG |
2022年10月11日 19:43:03 | 攻击者从 FTX 向 Account1 转账 2M USDC,交易号 sq2VX...ovTCV |
2022年10月11日 19:50:31 | 攻击者再次向 Account1 提供 3.5M USDC,交易号 4aPwY...wBiYM<br>现在 Account1 总共有 5.525M USDC |
2022年10月11日 19:54:47 | 攻击者从 FTX 为 Account1 提供 1 SOL,交易号 cbxM5...4yg5Q<br>现在,Account1 可以签名并发送交易! |
2022年10月11日 22:08:07 | 攻击者创建了 MangoAccount1 并向其存入 100 USDC,交易号 4MVjZ...35qCG |
2022年10月11日 22:18:57 | 攻击者向 MangoAccount1 存入 5M USDC,交易号 3cBEK...A8unY |
2022年10月11日 22:23:40 | 攻击者在 MNGO-PERP 市场中下达了一个期货订单,交易号 2xPS2...XHPQR<br>(数量=515717245,价格=382) |
2022年10月11日 22:26:30 | 攻击者开始通过 Jupiter、Raydium 和 Serum 操纵 MNGO 价格。<br><br>在此交易中,使用 200K USDC 购买 1,993,371.266754 MNGO,交易号 5o2wk...HE1Km |
MNGO 价格从 0.0382 涨至 0.1!
等一下,攻击者的 USDC 从哪里来?记住:攻击者在 Account1 得到 5.525M 来自 FTX,但只向 MangoAccount1 存入了 5M 作为抵押。
时间戳(UTC) | 事件 |
---|---|
2022年10月11日 22:29:27 | 攻击者调用 Mango: SettlePnl 以结算 MangoAccount1 的期货订单:SFVdK...cEDv1 |
等一下,攻击者怎么能如此轻松地结算 MangoAccount1 的订单?谁是 卖方?
查阅上述交易,我们可以发现涉及三个不同的 Mango 账户(卖方)的 Mango: SettlePnl 调用:
查看这些账户,我们很快意识到 CQvKSN 是攻击者的 MangoAccount2:它为总计 488302109 MNGO 创建了三个卖方头寸,通过解码 CQvKSN 的所有者,我们发现这是攻击者的 Account2: J44uRJ。
现在,我们可以对 Account2 的交易历史进行类似分析(总共 32 笔交易):
时间戳(UTC) | 事件 |
---|---|
2022年10月11日 19:49:47 | 攻击者从 FTX 向 Account2 提供 5M USDC 的资金,交易号:297Ga...P7Ftk |
2022年10月11日 19:54:14 | 攻击者向 Account2 添加 1 SOL,交易号:2krAGf...xYsLo |
2022年10月11日 22:07:26 | 攻击者创建了 MangoAccount2 并向其存入 1 USDC,交易号 FGL3G...5BTPm |
2022年10月11日 22:19:13 | 攻击者向 MangoAccount2 存入 5M USDC,交易号 66AFL...C1xyC |
2022年10月11日 22:24:47 | 攻击者在 MNGO-PERP 中创建空头头寸,交易号 2mMMv...4hf4x<br>(数量 = 261780104 价格 = 0.0382) |
2022年10月11日 22:25:35 | 攻击者在 MNGO-PERP 中创建空头头寸,交易号 qbVq5...wM4yE<br>(数量 = 222688514 价格 = 0.0382) |
2022年10月11日 22:25:51 | 攻击者在 MNGO-PERP 中创建空头头寸,交易号 2q2k8...d5g45<br>(数量 = 3833491 价格 = 0.0382) |
现在,回到 Account1,攻击者的剩余交易都是从 Mango 提取各种代币以及在 Serum 中将 USDC 兑换为 MNGO (以提高 MNGO 价格)。
时间戳(UTC) | 事件 |
---|---|
2022年10月11日 22:34:26 | 攻击者将 50K USDC 交易为 100,172.209331 MNGO,使 MNGO 的价格在交易号 3SZpH...Bs5XX 中上升至 0.499 USDC (MangoAccount1 的多头头寸价格 0.0382 的 13 倍) |
2022年10月11日 22:36:34 | 攻击者从 Mango 提取 400,000 Wrapped SOL,交易号 2J46z...spgwY |
2022年10月11日 22:37:27 | 攻击者从 Mango 提取 361,577 Wrapped SOL,交易号 zpoYV...vWnqV |
2022年10月11日 22:37:38 | 攻击者从 Mango 提取 798,000 Marinade 质押 SOL (mSOL),交易号 281Hw...cXdRF |
这些 SOL 代币总共价值 5000 万美元。总的来说,攻击者能够通过 MangoAccount1 提取超过 1.2 亿美元的代币。
在写作时,MNGO 的价格已下降至 0.025 美元,攻击者的 Mango 账户有超过 1.15 亿美元的坏账。
sec3 是一家安全研究公司,致力于为数百万用户准备 Solana 项目。sec3 的 Launch Audit 是一项严格的专家主导代码检查,旨在对主网级智能合约进行调查和认证;sec3 的持续审计软件平台 X-ray 与 GitHub 整合,逐步扫描拉取请求,帮助项目在部署前加强代码;而 sec3 的部署后安全解决方案 WatchTower 确保资金安全。sec3 正在为 Web3 项目构建基于技术的可扩展解决方案,以确保协议在扩展时保持安全。
要了解有关 sec3 的更多信息,请访问 https://www.sec3.dev
- 原文链接: sec3.dev/blog/mangoexplo...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!