币安智能链DeFi项目AutoSharkFinance遭到攻击,导致代币价格闪崩。慢雾安全团队对此次事件进行了跟进分析,慢雾表示,由于AutoShark策略池的机制,攻击者需要事先存入一定数量的LP代币到策略池中,为后续攻击做准备,所以整个攻击其实分成了2步,这里主要分析的是第2笔的攻击交易。
攻击步骤如下:
1.攻击者从Pancake的WBNB/BUSD交易对中借出大量WBNB;
zkSync:zkSync Era执行延迟安全机制将允许有足够时间检测问题并及时作出反应:3月24日消息,zkSync介绍zkSync Era多层安全机制中的其中一种机制,即执行延迟,执行延迟意味着每个提交给L1的L2块在执行和最终确定之前都会有一个时间锁,最初该延迟将是24小时,随着系统的成熟,该延迟将逐渐减少,直到移除Alpha阶段,届时延迟将被完全移除。延迟主要是确保团队有足够的时间在区块成为最终区块之前验证包含在区块中的交易的影响,并且有足够的时间来检测漏洞、调查并通过治理冻结协议。
此前报道,2月中旬zkSync宣布上线Fair Onboarding Alpha主网,在此阶段,主网对最终用户保持关闭,注册项目可以在系统向外部用户开放之前在封闭环境中部署和测试应用程序。同时,zkSync 2.0更名为zkSync Era,zkSync 1.0更名为zkSync Lite。根据zkSync Era路线图,下一个里程碑是zkSync Era公开发布。[2023/3/24 13:23:41]
2.将第1步借出的全部WBNB中的一半通过Panther的SHARK/WBNB交易对兑换出大量的SHARK,同时池中WBNB的数量增多;
安全机构:AES项目遭受攻击,攻击者获利约61,608美元:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示, AES项目遭受攻击,Beosin安全团队分析发现由于AES-USDT pair合约有一个skim函数,该函数可以强制平衡pair的供应量,将多余资金发送给指定地址,而攻击者在本次攻击过程中,首先向pair里面直接转入了部分AES代币,导致供应量不平衡,从而攻击者调用skim函数时,会将多余的这部分代币转到攻击者指定地址,而攻击者在此处指定了pair合约为接收地址,使得多余的AES又发送到了pair合约,导致强制平衡之后pair合约依然处于不平衡状态,攻击者便可重复调用强制平衡函数。另外一点,当调用AES代币合约的transfer函数时,若发送者为合约设置的pair合约时,会将一部分AES销毁掉(相当于通缩代币),攻击者经过反复的强制平衡操作,将pair里面的AES销毁得非常少,导致攻击者利用少量AES兑换了大量的USDT。
目前获利资金已转移到攻击者地址(0x85214763f8eC06213Ef971ae29a21B613C4e8E05) ,约获利约61,608美元。Beosin Trace将持续对被盗资金进行监控。[2022/12/7 21:29:17]
3.将第1步和第2步的WBNB和SHARK打入到SharkMinter中,为后续攻击做准备;
zkSync在测试网中被意外触发安全开关Exodus Mode,可证明其安全机制有效:据官方消息,Matter Labs 表示昨日在以太坊测试网(Ropsten)上有用户触发了扩容方案 zkSync 1.0 的“Exodus Mode”(出埃及记模式),这并不是计划内的操作,但是也证明了 zkSync 1.0 的安全机制是有效的。该模式的触发是由于 Matter Labs 在测试一个新的系统,最终导致了系统认为 zkSync 的操作节点已下线了或者是恶意的,也就导致了该模式可以被触发。Matter Labs 表示,Exodus Mode 是 zkSync 可以与以太坊主链安全性一致的保证,在触发该模式后,用户可以重构状态数据并从 zkSync 网络中提现资产。[2021/4/24 20:53:50]
4.调用AutoShark项目中的WBNB/SHARK策略池中的getReward函数,该函数会根据用户获利的资金从中抽出一部分手续费,作为贡献值给用户奖励SHARK代币,这部分操作在SharkMinter合约中进行操作;
5.SharkMinter合约在收到用户收益的LP手续费之后,会将LP重新拆成对应的WBNB和SHARK,重新加入到Panther的WBNB/SHARK交易池中;
6.由于第3步攻击者已经事先将对应的代币打入到SharkMinter合约中,SharkMinter合约在移除流动性后再添加流动性的时候,使用的是SharkMinter合约本身的WBNB和SHARK余额进行添加,这部分余额包含攻击者在第3步打入SharkMinter的余额,导致最后合约获取的添加流动性的余额是错误的,也就是说SharkMinter合约误以为攻击者打入了巨量的手续费到合约中;
7.SharkMinter合约在获取到手续费的数量后,会通过tvlInWBNB函数计算这部分手续费的价值,然后根据手续费的价值铸币SHARK代币给用户。但是在计算LP价值的时候,使用的是PantherWBNB/SHARK池的WBNB实时数量除以LP总量来计算LP能兑换多少WBNB。但是由于在第2步中,Panther池中WBNB的数量已经非常多,导致计算出来的LP的价值非常高;
8.在LP价值错误和手续费获取数量错误的情况下,SharkMinter合约最后在计算攻击者的贡献的时候计算出了一个非常大的值,导致SharkMinter合约给攻击者铸出了大量的SHARK代币;
9.攻击者后续通过卖出SHARK代币来换出WBNB,偿还闪电贷。然后获利离开。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。