SharkTeam:Prisma Finance被攻击事件分析

2024年3月28日,Prisma Finance遭受闪电贷攻击,项目方损失约1221万美元。

20240402162014331image.png

SharkTeam对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、攻击交易分析

攻击者1:0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202(简记为0x7e39)

攻击合约1:0xd996073019c74b2fb94ead236e32032405bc027c(简记为0xd996)

攻击者2:0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385

攻击合约2:0x4148310fe4544e82f176570c6c7b649290a90e17

被攻击的目标合约:0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6

攻击包含16笔交易,以第一笔攻击交易为例:

0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7

攻击流程如下:

1. 读取地址0x56a201b872b50bbdee0021ed4d1bb36359d291ed(简记为0x56a2)在目标合约中的所有抵押物和债务。

20240402162028308image.png

返回结果如下:

20240402162035243image.png

地址0x56a2在目标合约中抵押物共有1,745 wstETH,总债务共有1,442,100 mkUSD。

2. 攻击者0x7e39通过攻击合约0xd996调用mkUSD债务合约中的flashLoan函数。

20240402162047257image.png

参数receiver设置为MigrateTroveZap,amount为上面查询到的全部债务。

20240402162059315image.png

然后,在flashLoan函数中会调用receiver(这里是MigrateTroveZap)中的onFlashLoan函数。

20240402162108042image.png

onFlashLoan函数通过闪电贷先偿还原来的所有债务,提取抵押物到receiver,然后receiver将一定数量的抵押物重新抵押,并借取一定的债务。其中主要调用了2个函数:

(1)closeTrove函数,偿还债务并将所有的抵押物(1745.08 swtETH)从troverManager提取到receiver(这里是MigrateTroveZap合约);

20240402162118182image.png

(2)openTrove函数,由receiver将463.18 wstETH重新抵押到troverManager中,并负债1,443,598 mkUSD。

20240402162124982image.png

从上面数据可以看出,flashLoan函数执行完成后,receiver中仍然保留了从troverManager中提取的属于地址0x56a2的抵押物,数量约为1745.08 – 463.18 = 1281.90 wstETH。

3. 攻击者0x7e39通过攻击合约0xd996从Balancer中通过闪电贷借取了1 wstETH。

20240402162133813image.png

然后,抵押1 wstETH并借取债务2000 mkUSD,加上fee,共计负债2200 mkUSD。

20240402162141046image.png

4. 与步骤2类似,调用mkUSD债务合约中的flashLoan函数,这里参数receiver仍然设置为MigrateTroveZap,amount为上一笔质押1 wstETH后的全部债务,即2000 mkUSD。在FflashLoan函数中会调用receiver中的onFlashLoan函数,然后调用closeTrove和openTrove函数。

20240402162149855image.png

20240402162152773image.png

只是,这里closeTrove和openTrove函数中的参数account不再是上面的地址0x56a2,而是质押了1 wstETH的攻击合约0xd996。

(1)closeTrove函数,偿还债务并将所有的抵押物(1 swtETH)从troverManager提取到receiver(这里仍然是MigrateTroveZap合约)。此时receiver中共有1281.90 +1=1282.90 wstETH.

20240402162206373image.png

(2)openTrove函数,由receiver将1282.80 wstETH(几乎全部)重新抵押到troverManager中,并负债2001.8 mkUSD。

20240402162215268image.png

实际上,这里抵押物中1281.80 wstETH是不属于攻击合约0xd996,而是属于上面的地址0x56a2。

5. 最后,攻击者0x7e39通过攻击合约0xd996单独调用closeTrove函数,将抵押的1282.80 wstETH 提取到了攻击合约0xd996中。

20240402162224877image.png

20240402162230775image.png

偿还闪电贷后,攻击者仍获利1281.80 wstETH,约2.30M USD。

20240402162241932image.png

二、漏洞分析

本次事件的根本原因是项目合约存在逻辑和权限校验,使得攻击者可以利用该漏洞获取其他账户地址的质押资产。

攻击者最终获得的wstETH是原本地址0x56a2在troverManager合约中的抵押物,通过mkUSD合约的flashLoan函数,自定义MigrateTroveZap合约中onFlashLoan函数的参数,利用 MigrateTroveZap将其转变为攻击合约的抵押物,然后将其提取出来。

攻击者通过mkUSD合约中的flashLoan函数以及MigrateTroveZap合约中的onFlashLoan函数操纵其他账户地址的抵押和提取。

20240402162254209image.png

20240402162304089image.png

(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

WEEX唯客是一家安全易用的加密货币交易所,由新加坡顶级区块链投资机构斥资1亿美元打造,注册用户超百万,日均交易额超15亿美元,已获得美国MSB、加拿大MSB、SVGFSA金融牌照。

WEEX唯客平台所有数据皆于海外数据库严格保存,服务器多地部署和备份,并采用满足银行级安全需求的亚马逊AWS及高速高稳定性的香港CDN,为全球用户提供最安全、最专业、最具隐私性的交易服务。

WEEX唯客是全球交易深度最好的合约交易所之一,位居CMC交易所流动性排名前五,订单厚度、价差领先同行,微秒级撮合,零滑点、零插针,最大程度降低交易成本及流动性风险,让用户面对极端行情也能丝滑成交。

在WEEX唯客,用户不仅能享受行业最低的交易手续费(Taker 0手续费,Maker 0.06%),还可零门槛一键跟随专业交易员操作,复制高手的交易策略,平台严格甄选数5,000多名优秀交易员供用户挑选。

为保障用户资金安全,WEEX唯客设立了1,000 BTC投资者保护基金,以在非用户自身原因的情况下有效补偿用户资金出现的意外损失,并公示资金池热钱包地址,让用户交易安心无忧。

WEEX官网:weex.com

你也可以在 CMCCoingecko非小号X (Twitter)中文 X (Twitter)YoutubeFacebookLinkedin微博 上关注我们,第一时间获取更多投资资讯和空投福利。

在线咨询

WEEX华语社群:https://t.me/weex_group

WEEX英文社群:https://t.me/Weex_Global

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情

    暂无评论内容

随即推荐
怎么重装电脑系统驱动-H5资源网

怎么重装电脑系统驱动

工具/原料:系统版本:windows10系统品牌型号:华为MateBook 14软件版本:驱动人生
1年前
0335
性格分析与人物塑造心理课-H5资源网

性格分析与人物塑造心理课

课程介绍  从理论到实践,不断地在探索。把该课程做成即插即用的抽屉式工具。通过人物性格分析图谱,对每一种人物原型进行剖析,加入人际动力,即不同的人格特质是如何互动的关系。 
2年前
0485
搜题神器1.0 免费的搜题软件-H5资源网

搜题神器1.0 免费的搜题软件

软件描述 搜题神器1.0主要特色: 免费下载(电子书、考试资料、高清影视、视频教程等等……) 搜题方式: 拍照搜题 输入题目搜索 无障碍搜题 文件为自解压压缩包,解压后得到.apk安...
2年前
0225
常军家庭关系心理学习课程-H5资源网

常军家庭关系心理学习课程

本课程旨在帮助学员了解和改善家庭关系的心理学知识。你将学习如何解读、处理和改善家庭中的各种心理问题,如沟通障碍、亲子关系、夫妻相处等。参加这个课程,加强家庭关系,提升幸福感!
12个月前
0289
安卓皮皮阅读v1.6.0绿化版-H5资源网

安卓皮皮阅读v1.6.0绿化版

软件介绍  皮皮阅读APP是一款免费阅读神器,APP囊括了十分丰富的小说资源,支持多种格式,支持多种阅读模式,精简干净、无广告,为你创造一个清新的阅读空间,已去除广告。 
2年前
03012
【小K定制版】一键查询对方信息软件-H5资源网

【小K定制版】一键查询对方信息软件

新增超级接口,支持QQ,手机号,身份证号,姓名查询密码:ggiz
1个月前
05213
《僭越:无光之日》v20230202中文版-H5资源网

《僭越:无光之日》v20230202中文版

游戏介绍 《僭越:无光之日》是一款充满悬疑的中式恐怖游戏,玩家将扮演一名孑然一身的记者,在一个失落的80年代中国小村中,为了拯救亲人深入禁忌的地狱,直面侵华日军遗留的可怕怪物与惊人的...
1年前
02511
电脑变WiFi热点发射工具 MyPublicWiFi v30.1-H5资源网

电脑变WiFi热点发射工具 MyPublicWiFi v30.1

MyPublicWiFi 是一款易于使用的软件,可将您的笔记本电脑/平板电脑/PC 变成 Wi-Fi 无线接入点或多功能热点。附近的任何人都可以通过您的共享上网冲浪。这也是在酒店房间、会议室、家中等设置临...
9个月前
04315
韩博士一键重装系统好用吗-H5资源网

韩博士一键重装系统好用吗

工具/原料: 系统版本:win 10系统 品牌型号:戴尔灵越14-4000软件版本:韩博士装机大师v.12.6.48.1930
1年前
03611
安卓魔音变声器v1.6.8绿化版-H5资源网

安卓魔音变声器v1.6.8绿化版

软件介绍  魔音变声器APP内含精品语音包,素材包括李云龙、小猪佩奇、萝莉,等精品语音包,还有男变女、女变男、大叔变萝莉、小孩变型男等特效实时变声功能,适用于聊天、游戏、语音通话等...
1年前
0289