北京时间2022年3月13日上午9:04,CertiK安全技术团队监测到Paraluni'sMasterChef合约遭到攻击,大约170万美元的资金通过多笔交易从该项目中被盗。
下文CertiK安全团队将从该项目的操作及合约等方面为大家详细解读并分析。
漏洞交易
攻击者地址:https://bscscan.com/address/0x94bc1d555e63eea23fe7fdbf937ef3f9ac5fcf8f
交易实例:https://bscscan.com/tx/0x70f367b9420ac2654a5223cc311c7f9c361736a39fd4e7dff9ed1b85bab7ad54
Reflexer发文斥责Paragidm,表示将与Paradigm划清界限:5月27日消息,DeFi 协议 Reflexer 在社交媒体上发文表示 Paragidm 此前投资的 FTX 给加密生态带来重创,并斥责其不再专注于 Crypto 而转投 AI 领域的行为,希望 Paradigm 销毁持仓的全部 FLX(Reflexer 治理 Token),不想再为 Paradigm 工作。
此前报道,加密风投公司 Paradigm 将关注重点扩大到包括人工智能在内的领域。根据其官方网站信息,Paradigm 将现在称自己为“研究驱动的技术投资公司”,而不是专门投资于“颠覆性加密 / Web3 公司和协议”的公司。但熟悉该战略的人士表示,该公司没有改变其任务,继续专注于加密和 Web3,没有实际变化。
Reflexer Labs 此前于 2020 年 8 月宣布完成 168 万美元种子轮融资,该轮融资由 Paradigm 领投,Standard Crypto、Compound 创始人 Robert Leshner 和 a16z 基金创始人 Jesse Walden 参投。[2023/5/27 9:45:45]
合约地址
艺术家Pussy Riot和Shepard Fairey通过NFT系列为乌克兰筹集资金:金色财经报道,Pussy Riot的Nadya Tolokonnikova和街头艺术家Shepard Fairey鼓励支持者通过NFT的公开版集合为乌克兰筹集资金。该系列名为Putin's Ashes,将于周五在基于Tezos的NFT市场Objkt上发售。该系列的所有收益将捐赠给自2022年初以来一直与俄罗斯入侵作斗争的乌克兰士兵。公开版将于太平洋标准时间周五上午10点开始铸造,并于2月3日结束。每个NFT的定价为10TEZ(约合11美元)。
Pussy Riot计划于周五在洛杉矶的Jeffrey Deitch画廊以抗议和表演的形式开启该系列。Tolokonnikova于8月开始创作普京的骨灰,当时Pussy Riot成员焚烧了俄罗斯总统弗拉基米尔·普京的肖像以示抗议。从活动中收集骨灰,Tolokonnikova将它们装瓶,为NFT系列创作艺术品。该系列还采用Fairey标志性风格的作品,描绘了Tolokonnikova身穿紧身胸衣,胸前印有普京,看起来像是在燃烧。[2023/1/27 11:32:06]
Masterchef合约:https://bscscan.com/address/0xa386f30853a7eb7e6a25ec8389337a5c6973421d#code
Starly.io完成超600万美元融资,Spartan Group领投:12月8日消息,NFT市场Starly.io宣布完成612.5万美元的融资,由Spartan Group领投,DapperLabs、AnimocaBrands、LDCapital、Axia8、DoublePeak、YoubiCapital、KuCoinLabs、Shima.capital、SkyVisionCapital以及包括MaratKichikov在内的知名天使投资人等参投。Starly.io旨在让所有人都能够轻松地使用工具,将他们的内容转变成可盈利的NFT。[2021/12/8 12:58:01]
攻击流程
注意,这个攻击流程是以下面这个交易为基础的:https://bscscan.com/tx/0x70f367b9420ac2654a5223cc311c7f9c361736a39fd4e7dff9ed1b85bab7ad54
Blockparty将在Flow推出冰球传奇人物Bobby Orr的NFT:5月11日,数字艺术和收藏品市场Blockparty将在Flow推出冰球传奇人物Bobby Orr(博比·奥尔)的体育历史时刻NFT。据悉,Bobby Orr曾在NHL效力10个赛季。[2021/5/11 21:46:54]
准备阶段:
攻击者部署了两个恶意的代币合约UGT和UBT。
在UBT代币合约中,有两个恶意的函数实现:
1.在"transferFrom()"函数中,攻击者实现了对MasterChef的"deposit()"函数的调用,以存入LP代币。
2.一个"withdrawAsset()"函数,将调用Masterchef的"withdraw()"来提取存入的LP代币。
攻击阶段:
攻击者利用闪电贷获得了156,984BSC-USD和157,210BUSD。
攻击者向ParaPair发送通过闪电贷获得的BSC-USD和BUSD代币,并收到155,935枚LP代币作为回报。
然后,攻击者调用"depositByAddLiquidity()"函数,将LP代币存入资金池。
1.在调用此函数时:输入参数“_pid”为18,“_tokens”为。
2.因为depositByAddLiquidity()会调用“UBT.transferFrom()”函数,因此MasterChef.deposit()函数会被触发并且向合约存入155,935LP代币。
3.因此,155,935LP代币被存入了两次并且攻击者获得了两份“userInfo”的记录(一次是从UBT,另一次是从攻击者的合约)。
最后,攻击者提取了两次:
1.第一次是通过函数“UBT.withdrawAsset()”。
2.另一个是来自攻击者对“Masterchef.withdraw()”函数的调用。最后,攻击者删除了流动资金并返还了闪电贷。
合约漏洞分析
在函数`MasterChef.depositByAddLiquidity()`中,作为参数传入的`_tokens`可以与池中的编号为`_pid`的tokens不匹配。
`depositByAddLiquidity()`函数通过调用`addLiquidityInternal()`函数,触发了传入恶意代币的“transferFrom”函数,进而导致了重入的问题。因此,同一份LP代币被存入两次。
资产去向
截至3月13日,总共有价值约170万美元的资产被盗。3000个BNB仍然在攻击者在BSC的地址中,235个ETHs则通过Birdge转移到以太坊,并通过Tornado进行洗白。
写在最后
该次事件可通过安全审计发现相关风险:审计可以发现重入问题和外部依赖问题。
同时,CertiK的安全专家建议:
时刻关注函数的外部输入,尽量避免传入合约地址作为参数。
关注外部调用,为所有可能出现重入危险的外部调用函数加上“nonReentrant”修饰函数。
本次事件的预警已于第一时间在CertiK项目预警推特进行了播报。
除此之外,CertiK官网https://www.certik.com/已添加社群预警功能。在官网上,大家可以随时看到与漏洞、黑客袭击以及RugPull相关的各种社群预警信息。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。