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

评论

所有评论

推荐阅读

  • 上海市人工智能重点项目签约仪式举行

    金色财经报,在7月20日举行的2026世界人工智能大会闭幕式上,上海市人工智能重点项目签约仪式举行,共有32个项目达成合作,总签约金额达409亿元。(证券时报)

  • 美股存储概念股盘前集体上涨,SK海力士涨超3%

    7月20日,美股市场存储概念股盘前集体上涨,其中,SK海力士涨超3%,美光科技、闪迪涨超2%,希捷科技、西部数据涨超1%。

  • 美股光通信概念股盘前普涨,Lumentum涨超2%,迈威尔涨超1%

    7月20日,美股市场光通信概念股盘前普涨,其中,Lumentum、Lightwave Logic涨超2%,Applied Optoelectronics、Credo Technology、MaxLinear、诺基亚、Coherent、Astera Labs、迈威尔科技、POET Technologies、康宁、Ciena、AXT Inc涨超1%。

  • 港交所回应考虑延长股票交易时间

    7月20日,市场传闻称“香港交易所考虑延长股票交易时间,取消午休时段”,对此,港交所回应称,香港交易所一直致力于提升香港作为国际金融中心的竞争力,目前正在研究包括延长交易时段在内的多项提升市场便利性的措施,但当前首要工作是研究延长衍生产品市场交易时段的建议,而不是股票交易时间。(中新经纬)

  • Kimi K3可能迎来DeepSeek时刻

    晨星公司表示,月之暗面新的Kimi K3模型可能迎来DeepSeek时刻。这一进步对整个AI生态系统是利好,因为最坏的情况是AI停止进步。尽管如此,月之暗面此次发布对整个硬件和基础设施领域的AI公司构成了下行压力,因为它以更低的价格提供了顶级的模型性能。(金十)

  • 中国国家主席习近平即将于9月对美国进行的访问仍在按计划进行

    7月20日,外交部发言人林剑主持例行记者会。有记者提问,美国国务卿鲁比奥表示,中国国家主席习近平即将于9月对美国进行的访问仍在按计划进行。请问,中国外交部是否认为此次访问仍在按计划进行? 林剑表示,元首外交对中美关系具有不可替代的战略引领作用。双方就年内元首的互动安排保持沟通。(北京青年报)

  • 伊拉克民兵武装:若美扩大“对伊朗侵略”将直接参战

    7月20日,伊拉克民兵武装“伊斯兰抵抗组织”20日发表声明说,如果美国进一步扩大“对伊朗的侵略”,该组织将直接参与对抗美国的战斗,并将坚决打击美国在伊拉克及中东地区的所有利益目标和军事基地。该组织在声明中特别澄清,在过去几天里未对伊拉克及中东地区的美军基地发动任何军事袭击。(新华国际)

  • 港交所回应考虑延长股票交易时间

    7月20日,市场传闻称“香港交易所考虑延长股票交易时间,取消午休时段”,对此,港交所回应称,香港交易所一直致力于提升香港作为国际金融中心的竞争力,目前正在研究包括延长交易时段在内的多项提升市场便利性的措施,但当前首要工作是研究延长衍生产品市场交易时段的建议,而不是股票交易时间。(中新经纬)

  • 伊朗外交部确认收到调解方提议 但未透露详情

    7月20日,当地时间7月20日,伊朗外交部发言人巴加埃在新闻发布会上确认收到了调解方的提议,但是拒绝透露详情。此外,巴加埃还强烈谴责美军对伊朗医疗中心、桥梁以及其他基础设施的袭击。(央视新闻)

  • 黑石集团将投资韩国机器人供应商Futronic

    黑石集团旗下的私募股权基金将对韩国机器人供应商Futronic进行“重大投资”,但未披露具体金额。Futronic创始人高镇浩将继续担任董事长兼首席执行官,并与黑石合作加速公司的全球化发展。“黑石与我们一样,致力于向尊贵的客户和合作伙伴提供先进的机电一体化解决方案。他们独特的规模和全球平台将有助于推动我们的扩张,并巩固我们在驱动与运动控制解决方案领域的领导地位,”高镇浩表示。Futronic成立于1993年,为汽车和工业机器人制造高精度执行器。近年来,该公司已将业务扩展到出行市场的新兴领域,包括人形机器人和通用机器人。黑石私募股权韩国业务负责人Eugene Cook表示,Futronic的研发和工程能力使其在汽车和机器人市场的快速增长中占据了有利位置。黑石私募股权负责人宋京敏表示,随着AI进入物理世界,黑石认为Futronic在执行器和运动控制方面的专业知识将成为重要的推动力。(金十)