SharkTeam:Prisma Finance被攻击事件分析
2024年3月28日,Prisma Finance遭受闪电贷攻击,项目方损失约1221万美元。
SharkTeam对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
一、攻击交易分析
攻击者1:0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202(简记为0x7e39)
攻击合约1:0xd996073019c74b2fb94ead236e32032405bc027c(简记为0xd996)
攻击者2:0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385
攻击合约2:0x4148310fe4544e82f176570c6c7b649290a90e17
被攻击的目标合约:0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6
攻击包含16笔交易,以第一笔攻击交易为例:
0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7
攻击流程如下:
1. 读取地址0x56a201b872b50bbdee0021ed4d1bb36359d291ed(简记为0x56a2)在目标合约中的所有抵押物和债务。
返回结果如下:
地址0x56a2在目标合约中抵押物共有1,745 wstETH,总债务共有1,442,100 mkUSD。
2. 攻击者0x7e39通过攻击合约0xd996调用mkUSD债务合约中的flashLoan函数。
参数receiver设置为MigrateTroveZap,amount为上面查询到的全部债务。
然后,在flashLoan函数中会调用receiver(这里是MigrateTroveZap)中的onFlashLoan函数。
onFlashLoan函数通过闪电贷先偿还原来的所有债务,提取抵押物到receiver,然后receiver将一定数量的抵押物重新抵押,并借取一定的债务。其中主要调用了2个函数:
(1)closeTrove函数,偿还债务并将所有的抵押物(1745.08 swtETH)从troverManager提取到receiver(这里是MigrateTroveZap合约);
(2)openTrove函数,由receiver将463.18 wstETH重新抵押到troverManager中,并负债1,443,598 mkUSD。
从上面数据可以看出,flashLoan函数执行完成后,receiver中仍然保留了从troverManager中提取的属于地址0x56a2的抵押物,数量约为1745.08 – 463.18 = 1281.90 wstETH。
3. 攻击者0x7e39通过攻击合约0xd996从Balancer中通过闪电贷借取了1 wstETH。
然后,抵押1 wstETH并借取债务2000 mkUSD,加上fee,共计负债2200 mkUSD。
4. 与步骤2类似,调用mkUSD债务合约中的flashLoan函数,这里参数receiver仍然设置为MigrateTroveZap,amount为上一笔质押1 wstETH后的全部债务,即2000 mkUSD。在FflashLoan函数中会调用receiver中的onFlashLoan函数,然后调用closeTrove和openTrove函数。
只是,这里closeTrove和openTrove函数中的参数account不再是上面的地址0x56a2,而是质押了1 wstETH的攻击合约0xd996。
(1)closeTrove函数,偿还债务并将所有的抵押物(1 swtETH)从troverManager提取到receiver(这里仍然是MigrateTroveZap合约)。此时receiver中共有1281.90 1=1282.90 wstETH.
(2)openTrove函数,由receiver将1282.80 wstETH(几乎全部)重新抵押到troverManager中,并负债2001.8 mkUSD。
实际上,这里抵押物中1281.80 wstETH是不属于攻击合约0xd996,而是属于上面的地址0x56a2。
5. 最后,攻击者0x7e39通过攻击合约0xd996单独调用closeTrove函数,将抵押的1282.80 wstETH 提取到了攻击合约0xd996中。
偿还闪电贷后,攻击者仍获利1281.80 wstETH,约2.30M USD。
二、漏洞分析
本次事件的根本原因是项目合约存在逻辑和权限校验,使得攻击者可以利用该漏洞获取其他账户地址的质押资产。
攻击者最终获得的wstETH是原本地址0x56a2在troverManager合约中的抵押物,通过mkUSD合约的flashLoan函数,自定义MigrateTroveZap合约中onFlashLoan函数的参数,利用 MigrateTroveZap将其转变为攻击合约的抵押物,然后将其提取出来。
攻击者通过mkUSD合约中的flashLoan函数以及MigrateTroveZap合约中的onFlashLoan函数操纵其他账户地址的抵押和提取。
(1)flashLoan函数中缺少对参数receiver地址的校验,因为onFlashLoan函数中receiver会接收account的所有抵押物,因此需要对receiver进行可信的校验;
(2)onFlashLoan函数中缺少对account地址的校验,因为closeTrove和openTrove函数都是操作的account的资产,因此需要对account增加权限方面的校验;
除了对这两个地址参数的校验外,可能还需要对flashLoan函数中的数量参数以及实现逻辑进行校验。
三、安全建议
针对本次攻击事件,我们在开发过程中应遵循以下注意事项:
(1)项目在设计和开发过程中,要保持逻辑的完整性和严谨性,尤其是涉及到资产的转移过程中,更要加强对函数调研权限的校验,保证调用者、调用函数、函数参数、转账逻辑等都是安全可信的。
(2)项目上线前,需要找专业的第三方审计团队进行合约审计。
About Us
SharkTeam的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台ChainAegis,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land等建立长期合作关系。
官网:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
Telegram:https://t.me/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
FIL币价格暴跌会崩盘吗?是不是骗局?避坑指南详解
本文解析FIL币是否为骗局及价格暴跌是否会崩盘,指出Filecoin项目真实但需警惕冒牌骗局,分析其技术支撑与市场压力,提醒投资者注意高波动风险及官方渠道识别。
-
CEX交易所安全吗?如何选择靠谱平台及用户防护指南
本文介绍CEX(中心化加密货币交易所)的定义与特点,分析其安全性及风险(如平台保管、合规问题),提供平台安全措施(冷钱包存储、多签技术)与用户防护建议(分散存储、2FA认证),结合2025年新规助用户降低风险。
-
DogeKing是什么币?背景和风险有哪些避坑指南?
DogeKing是结合DAO和DeFi功能的MEME属性加密货币,受狗狗币文化启发,旨在让持有者赚取狗狗币。文章分析其技术特点、市场表现及信息不透明、交易风险高等问题,提醒投资者谨慎避坑。
-
DOT币为什么大跌?会归零吗?深度解析原因及未来风险避坑指南
本文分析DOT币大跌原因,包括市场资金转向比特币、波卡网络竞争力不足及监管压力,探讨其短期归零可能性小但长期需解决技术与生态问题,并给出投资者注意事项。
-
有哪些加密货币有销毁机制?ELIZA币是否存在?避坑指南
文章介绍了BNB、MX Token、Solana等具有销毁机制的加密货币,解释了销毁机制通过减少流通量提升稀缺性的原理,并详细说明如何核实ELIZA币是否存在销毁机制的实用方法。
-
FIRO币是什么?有哪些核心特点与优势?隐私加密货币全面解析
FIRO币是专注交易隐私保护的加密货币,前身为Zcoin,采用零知识证明技术(如Lelantus协议)实现匿名转账,支持跨链隐私交易,应用于保密转账、隐私DeFi等场景,与门罗币等隐私币技术特点不同,但需注意监管及价格波动风险。
-
CKB币是主流还是山寨?投资前景如何?避坑与机会解析
文章分析CKB币为何属于山寨币,从市值、流动性、生态等方面说明判断依据,同时探讨其投资风险(价格波动、竞争压力、技术落地)与潜在机会(技术突破、低市值炒作空间),并给出不同投资者的应对策略。
-
稳定币链上支付,清算 Web2 思维
人类不需要银行,支付不需要人类2008 年,金融危机的阴影下,比特币收获第一批对法币系统失望的普通用户,走出加密朋克的小众社群。与之同时,FinTech (金融科技)一词也从 08 年渐变流行,几乎和
- 成交量排行
- 币种热搜榜
