DEP:创宇区块链|小缺陷大损失 GYM Network 何至于此

前言

北京时间2022年6月8日,知道创宇区块链安全实验室?自动数据监测工具监测到BSC链上NFT项目GYMNetwork因"PublicdepositFromOtherContract"权限控制问题被攻击,损失包括7475枚BNB,共计约216W美元,目前已将兑通过DEX换70W美元的ETH通过Celer跨链到以太坊,2000枚BNB利用BSC-Tornado进行混币,余下3000枚BNB在攻击者地址。

知道创宇区块链安全实验室?第一时间跟踪本次事件并分析。

基础信息

被攻击合约:0x0288fba0bf19072d30490a0f3c81cd9b0634258a

Google Play允许在应用商店里的App和游戏中集成NFT:金色财经报道,Google Play宣布了一项重大政策转变,允许开发者将NFT等数字资产集成至其应用商店的APP和游戏中。决定提供购买、出售或赚取代币化资产功能的公司将被要求在Play Console中明确表示该应用程序中存在基于区块链的元素。

Google Play的Group Product经理Joseph Mills在一篇博客文章中写道,这将使合作伙伴能够重新构想“带有用户所拥有内容的传统游戏”,并通过NFT奖励提高“用户忠诚度”。[2023/7/13 10:51:28]

攻击者地址:0xB2C035eee03b821cBe78644E5dA8B8eaA711D2e5

攻击合约:0xcD337b920678cF35143322Ab31ab8977C3463a45、0x68b5f1635522ec0e3402b7e2446e985958777c22

tx:0xfffd3aca0f53715f4c76c4ff1417ec8e8d00928fe0dbc20c89d875a893c29d89

意大利银行协会官员:巴塞尔加密货币规则使银行处于不利地位:金色财经报道,在今天的一次活动中,意大利银行业协会 (?ABI?) 总干事Giovanni Sabatini呼吁为加密资产监管提供一个公平的竞争环境。他在讨论最后的巴塞尔加密货币规则,要求银行对加密货币(第二组加密资产)给予1250%的风险权重。这通常意味着为每一欧元的加密货币敞口留出一欧元的资本。此外,巴塞尔规则将风险暴露限定在一级资本的2%。

Giovanni Sabatini称,我们认为这个审慎计划可能仍有改进的余地,银行受到惩罚,因为它们不会与其他实体,即金融科技公司、大型科技公司和加密资产服务提供商(CASPs)等新参与者平等竞争,这些实体不受相同的资本要求限制。 拟议的欧洲法律(MiCA)对CASPs的规定不太严格。[2023/2/27 12:32:33]

GymSinglePool代理合约:0xa8987285e100a8b557f06a7889f79e0064b359f2

漏洞分析

项目方在GymSinglePool合约中实现过程中对于0x0288fba0bf19072d30490a0f3c81cd9b0634258a#depositFromOtherContract函数缺少了权限控制,导致攻击者能够通过该函数调用内部_autoDeposit函数实现零消耗质押:

Paxos Treasury于今日21:47销毁1.44亿枚BUSD:金色财经报道,据Whale Alert数据显示,Paxos Treasury于北京时间今日21:47在以太坊链上销毁144,469,760枚BUSD。[2023/2/14 12:04:38]

对于应该开放给用户的质押内部函数是_deposit函数,该函数实现了对于token的审批传入,如下图所示:

CoinShares推出Twitter机器人来评估NFT的价值:金色财经报道,区加密资产管理公司CoinShares推出了一个Twitter机器人来评估NFT的价值。该机器人将跟踪NFT的炒作和稀有性,以判断其公允价值。Twitter 用户现在可以使用 NFT 的 OpenSea 链接和主题标签 CoinShares 的链接向该机器人发送推文。然后,机器人会在一分钟内回复公平价格。?

该公司指出,为 NFT 定价可能很困难,因为某些属性很容易量化,而另一些属性可能更抽象。尽管如此,它还是确定了诸如炒作、稀有性、对独家社区、 内容和产品的访问权限以及交易量和历史等因素。?[2022/10/14 14:27:13]

对应的_autoDeposit函数则实现了"特权"质押,即不需要转入Token进行质押。同时该函数直接暴露给了用户,函数对比如下:

前美联储副主席:需要在接下来三或四次会议上每次加息50个基点:6月10日消息,美联储前副主席Alan Blinder表示,美联储可能需要在接下来三到四次会议上每次加息50个基点,并有可能必须忍受经济衰退,才能将通胀率拉回到2%的目标。20世纪90年代在艾伦·格林斯潘领导之下担任美联储副主席的Blinder表示,“如果情况大体与当前我们的预期相符,那么我认为,他们需要不止”在6月和7月加息50个基点两次……可能(需要)加息50个基点三或四次。”预计2023年有可能出现经济衰退,发生衰退的可能性“略高于”50%。美联储要“相当、相当幸运”才能避免国内生产总值萎缩。(财联社)[2022/6/10 4:15:12]

攻击流程

攻击者为了防止链上MEV和抢跑机器人,将合约进行了分步部署执行,同时部署/调用了多次以完成对GymNetwork合约(0x3a0d9d7764FAE860A659eb96A500F1323b411e68)中的GYMNETToken完全抽离,以其中一笔部署调用为例:

1.部署合约后调用depositFromOtherContract实"特权"质押,对应0xfd4a2266方法:

内部调用细节如下:

2.调用0x30649e15实现对上一步特权质押的Token回撤:

3.利用0x1d111d13函数售出获取到的的GYM-Token:

重复多次"特权"质押--回撤--售出步骤,攻击者最终获取到7475枚BNB:

为了抑制抢跑,攻击者将添加质押和回撤进行了步骤分离,两个步骤均为核心操作,同时刻意提高添加部分步骤的GasPrice为15/20gwei,可见攻击者是有意为之。

溯源处置

本次攻击原因是项目方实现的特权函数权限控制不当,在攻击发现的1小时后项目方将GymSinglePool代理合约的逻辑合约进行了多次修改,为其添加了权限控制:

并在20分钟后对逻辑合约添加了紧急账户处置函数:

而对于项目方Deployer地址分析,其部署的多个GymSinglePool合约根据追踪仅在两天前部署的GymSinglePool合约中存在漏洞,4天前的合约则不存在此函数:

同时代理合约对应的逻辑合约被升级为漏洞合约的事件发生在在2days13hrsago:

攻击者的资金准备(FromTornado)则在约6小时以前,攻击者的身份也值得令人深思。

总结

虽然只是一处小的控制缺陷,却导致了数百万美元的损失。项目方的处置虽较为及时,漏洞导致的损失却难以挽回。该类型漏洞在审计过程中很容易被发现并将归纳到逻辑缺陷/不安全的外部调用,各项目方在开发和审计流程上切莫大意。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-1:736ms