Cointime

扫码下载App
iOS & Android

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)项目上线前,需要找专业的第三方审计团队进行合约审计。

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

评论

所有评论

推荐阅读

  • Fundstrat数字资产策略主管:目前韩国泡菜溢价约为0%,或表明BTC还有上升空间

    Fundstra 数字资产策略主管Sean Farrell在最新的客户报告中表示,“朋友和家人”又开始询问加密货币了,从可量化的市场指标来看,当前的形势并没有表现出三月份反弹或2021年末周期性高峰的泡沫,比如目前韩国市场的泡菜溢价指标数据约为0%,表明韩国交易者缺乏过度兴奋,通常情况下若市场达到顶峰泡菜溢价会飙升至10%以上,而过去一周的上涨不应被视为单纯的投机性繁荣,比特币可能还有上升空间。

  • Solana联创称Solana总是比ZK快,Matter Labs CEO予以反驳

    Solana 联合创始人 toly 于 X 回复网友时表示:“ZK 比传统计算慢。所以 Solana 总是比 ZK 快,因为没有宗教原因限制全节点容量。” 对此,ZKsync 开发商 Matter Labs 首席执行官 Alex Gluchowski 回应称:“ZK 总是比 Solana 更快,因为它是由数学而不是验证器来保护的,这意味着一个或几个验证器(用于冗余)就足够了,你不需要等待数千个节点之间达成共识。”

  • 美众议员Mike Flood:期待与下一任SEC主席合作撤销反加密银行政策SAB 121

    美国众议院将对众议员 Mike Flood 近日表示:“尽管遭到广泛反对,SAB 121 仍作为一项法规有效运作,尽管它从未经过正常的《行政程序法》程序。” Flood 称:“我期待与下一任 SEC 主席合作,撤销 SAB 121。无论 Gary Gensler 主席是自行离职,还是特朗普总统将履行其(解雇 Gensler 的)承诺,新政府都有绝佳的机会开启 Gensler 离任后的新时代。” 其补充道:“Gensler 反对今年早些时候在两党基础上通过众议院的数字资产监管框架,这应该不足为奇。71 名民主党人与众议院共和党人一起通过了这一常识性框架。尽管民主党领导的参议院拒绝接受,但它代表了加密货币的突破时刻,并可能在明年 1 月下一届国会开始时为统一的共和党政府的工作提供信息。”

  • 印度亿万富翁阿达尼因贿赂案被美SEC传唤解释立场

    印度亿万富翁高塔姆·阿达尼及其侄子萨加尔·阿达尼被美国证券交易委员会(SEC)传唤,要求他们解释有关为赢得太阳能发电合同而支付超过2.5亿美元贿赂的指控。据印度报业托拉斯(PTI)报道,传票已送达阿达尼家族位于印度西部城市艾哈迈达巴德的住所,要求他们在21天内作出回复。PTI援引11月21日通过纽约东区法院发出的通知称,如果阿达尼家族未能按时回复,将对他们作出缺席判决。

  • 美SEC:2024财年共采取583项执法行动,获得82亿美元史上最高财政救济

    美国 SEC 近日宣布,2024 财年执法力度创历史新高,凸显了其为维护市场诚信和投资者保护所做的努力。该机构透露:“2024 财年共提起 583 项执法行动,同时获得了 82 亿美元的财政救济(financial remedies),这是 SEC 历史上的最高金额。” 与 2023 年相比,SEC 发起的执法行动增加了 14%。SEC 主席 Gary Gensler 对执法部门的作用表示赞赏:“执法部门是坚定的警察,无论在何处,都会遵循事实和法律追究违法者的责任。正如今年的结果表明的那样,该部门有助于促进我们资本市场的诚信,使投资者和发行人都受益。”

  • PermaDAO ·

    AI 的暴力美学,Arweave 的抗衡之道

    AI 普及加剧信息操控隐蔽性,中心化与算法偏见风险凸显。本文剖析信息暴力升级,并探讨 Arweave 如何以去中心化(永久)存储与不可篡改特性,重建信任与保障信息透明。

  • IOST_Official ·

    IOST 与 PetPals 达成合作,IOST 链上首个宠物 Meme 游戏将于 Q4 上线

    2024 年 11 月 22 日,IOST 与区块链游戏开发团队 PetPals 建立战略合作伙伴关系。PetPals 正式成为 IOST 生态节点合伙人,并将于今年第四季度推出 IOST 链上首款创新型宠物 Meme 游戏 —— PetPals。

  • PinaxChinese ·

    The Graph Indexer线上会议 #184

    The Graph 的TAP迁移截止日期是2024年12月3日,大约34%的索引器已经升级,占查询量的81.6%。问答讨论的重点是TAP的配置设置,特别是关于RAV(收据聚合凭证)请求和管理非聚合费用,建议从默认值开始并根据查询量进行调整。

  • DaosViews ·

    DeSci(去中心化科学)引发Meme热潮

    尽管这些数据支持是否真实可信及有意义仍有待观察,但起码它稍微有了点“理性”,不是纯粹的赌博。

  • IOST_Official ·

    什么是 MIGA? IOST 生态即将迎来哪些发展?

    IOST 基金会正式宣布启动 “ Make IOST Great Again ”(MIGA)活动!这是一项战略性倡议,旨在通过一系列重要的合作和发展,振兴 IOST 生态系统。(注:该活动于 2024 年 11 月 20 日正式启动,会分阶段进行,并即将开启第一阶段。)