首个“Sing-to-Earn”平台被黑,是“运气不好”还是另有其因?
摘要: 本次分析只对黑客的交易进行分析,但实际上漏洞点并不是在合约上。
2022年10月25日,据Beosin EagleEye安全预警与监控平台检测显示,Melody_SGS项目被黑客攻击,造成2224.9BNB损失,约63万美元,攻击发生之后,官方也在推特第一时间更新本次“被黑”事件。
据悉,Melody是一款结合了GameFi和SocialFi的Web3应用,也自称为首个“Sing-to-Earn”平台,通俗来讲,有点类似于Web2的“全民K歌”。
所以此次分析,只针对黑客的交易进行梳理,以便用户更好了解此次攻击事件,也请用户警惕此类事件,并及时转移资金减少损失。
#事件相关信息
攻击交易:0x7fd61155cc33cf52e107980f31c1e198766709d8fa75f6e48230af82ec9dea8f
黑客地址 :0xa3793cCb57FDDAedD4EDCBd4Ca515876057E43a00x7CE402b6753589965Ae152971F7d7010BF25408A0xb355684ea4c28f302d23c5cddcbeabca4118598c
Melody项目AssetsDepositUpgrade合约: 0x780511d5209e8363783310f8a485507785643934
#攻击流程
本次分析只对黑客的交易进行分析,但实际上漏洞点并不是在合约上。
1.第一步,黑客调用AssetsDepositUpgrade合约的coinWithdraw函数,这个函数的功能是将用户存在合约中的资产赎回,是一个正常的功能。函数有几个关键的参数,to(接受代币的地址),signature(用户的签名信息,保证交易是用户自己发起的)。
2.这是智能合约很常见的操作,用户提供signature来证明是自己对这个交易签名。那怎么会出现问题呢?我们继续来看攻击者传入了些什么参数。
这里的大概意思就是从合约中取出地址为0xa6cba90f6246aad9b4f3dcd29918821921a5c1ff的代币,并将代币发送给地址为0xa3793ccb57fddaedd4edcbd4ca515876057e43a0的攻击者上,数量为990000000000000000000000个。这里最重要的是看他的签名是否正确,毕竟只有正确的签名才能完成操作。
3.合约中有个check()函数对交易进行校验。他检查了三个参数,分别为signeraddress,hashDataCoin计算的结果(这里不关心),signature.
4.其中signeraddress是0x7434c3765b1800ae535363fa22fc5d04717f04e0。这个是合约的一个状态变量。跟进check函数,原来里面实际调用的是isValidSignatureNow来计算。这里最终算出来发现签名确实是signeraddress的。
5.这就很奇怪,黑客是怎么让signeraddress给他的恶意行为签名的?所以我们怀疑很可能是前端被黑了,或者signeraddress被黑客拿下了,于是构造了恶意行为的签名,将SGS发送给黑客。
6.最终,黑客将获取的991,360 个SGS代币通过PancakeSwap换成WBNB。
另外,黑客使用另一个地址0x7CE402b6753589965Ae152971F7d7010BF25408A重复攻击,获利2,450SGS,并将SGS换取的560 WBNB发送给第一个地址。
此外,黑客直接还将0x8c9ae2eacee8cb2e1a7e44572d31968c6bf44c00中的110BNB直接发送给了0xa379地址。
经Beosin安全团队统计,发现黑客合计总共获利2,237.47BNB
图片来源: bitquery
并将获利的BNB一起发送给了0x1e091ae02f932be50088cc2e6ac9ca841ecebdb7(疑似黑客另一个地址)。最终将这个地址全部资金发送至MEX交易所。
#事件总结
截止发文时,官方称相关技术漏洞已经修复,但因维护合约已经暂停体提现等功能。
但是针对本次事件,Beosin安全团队还是建议项目方,一是保护好钱包私钥,二是注重签名服务的安全性,此外项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。
Beosin作为一家总部位于新加坡的区块链安全公司,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控、预警与阻断、虚拟货币被盗资产追回、安全合规KYT/KYC等“一站式”区块链安全产品+服务,目前已为全球2000多个区块链企业提供安全技术服务,审计智能合约超过2500份,保护客户资产高达5000多亿美元。
评论(0)
Oh! no
您是否确认要删除该条评论吗?