当前位置:首页 > 知识 >

SharkTeam揭示Tornado.Cash提案攻击方法

中国北京时间2023年5月20日,Tornado.Cash遭到提案攻击,攻击者已盈利约68万美金。

SharkTeam对于此事展开了技术指标分析,并归纳了安全防护方式,期待新项目能够以此为戒,共铸区块链行业安全屏障。

一、事件分析

攻击者详细地址: - 0x092123663804f8801b9b086b03B98D706f77bD59 - 0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9

攻击合约: - 0xAF54612427d97489707332efe0b6290F129DbAcb - 0x03ecf0d22f9ccd21144a7d492cf63b471916497a - 0x7dc86183274b28e9f1a100a0152dac975361353d(布署合约) - 0xc503893b3e3c0c6b909222b45f2a3a259a52752d(假提案合约)

被攻击合约: - 0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce

发起提案买卖: - 0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d

攻击买卖: - 0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d

攻击步骤: - 最先,攻击者(0x59234095)向被攻击合约(0x5efda50f)发起了一个提案,并声称此提案是16号提案补充。 - 但提案中事实上存在一个额外自弃函数公式。 - 很遗憾的是小区没有发现提案中的问题,大部分组员都通过了这个提案。 - 攻击者创立了多个合约来推行货币的迁移。 - 攻击者(0x59234095)销毁了提案合约(0xc503893b)和他的建立合约(0x7dc86183),然后在同样的地址 因为布署合约(0x7dc86183)是由create2进行部署的,而假提案合约(0xc503893b)是由create进行部署。在这两个合约都销毁后,由于布署合约(0x7dc86183)的字节码没有变化,所以再次应用create2部署可以在同样地址上部署0x7dc86183,而攻击合约应用create操作码部署,在销毁布署合约(0x7dc86183)后,nonce修复初值,使得攻击合约可以在合约改动的情况下部署在同样地址0xc503893b。而且提案执行是通过delegatecall的方式启用,攻击合约可以随意改动被攻击合约的值。

事情汇总: 此次事情发生的主要原因是小区在检查提案时没有发现风险,并没有认真核查提案合约代码的网络安全问题。

二、安全建议

对于此次攻击事情,大家在实施过程中要遵循以下常见问题: - 在开展提案设计时要综合考虑提案体制的安全性,并尽量降低提案被去中心化操纵的风险。可以通过降低攻击者的价值、提高选举权的成本以及提高实施攻击的费用等方式合理设计方案。 - 在进行提案的网络投票前,小区应仔细检验合约编码是否存在后门。 - 在提案执行之前,可以联系第三方网络安全审计企业对合约逻辑代码进行网络安全审计。

关于我们

SharkTeam的美好愿景是全方位维护Web3全球的安全性。我们的精英团队由来自各地的资深安全专业人员和高级科学研究人员构成,熟悉区块链智能合约的底层基础理论,提供专业的智能合约财务审计、链上剖析、应急处置等服务。我们已与Polkadot、Moonbeam、polygon、OKC、HuobiGlobal、imToken、ChainIDE等区块链生态系统的重要参与者建立了长期合作伙伴关系。

官方网站:https://www.sharkteam.org Twitter:https://twitter.com/sharkteamorg Discord:https://discord.gg/jGH9xXCjDZ Telegram:https://t.me/sharkteamorg 转载:驼鸟区块链

猜你喜欢

微信二维码

微信