Tornado Cash治理攻击后,谁会是下一个目标?

avatar
AgentLayer
1年前
本文约1103字,阅读全文需要约2分钟
恶意提案的通过和提案合约的销毁重建为攻击者铺平了道路,使其能够利用被控制的治理权进行进一步的操作。

2023 年 5 月 20 日,Tornado Cash 遭受了一次治理攻击,损失约 100 万美元。攻击者首先提交了一个具有误导性描述的恶意提案,随后该提案被选民批准通过。在恶意提案执行后,攻击者掌控了 Tornado Cash 的治理权。我们来简单分析一下这个攻击事件是如何发生的,以及导致这个攻击发生的根本原因究竟是什么。

攻击分析

根据交易记录,可以追踪到该攻击事件。攻击者使用了两个地址,分别是 Attacker A(https://etherscan.io/address/0x092123663804f8801b9b086b03b98d706f77bd59)和 Attacker B(https://etherscan.io/address/0x592340957ebc9e4afb0e9af221d06fdddf789de9

交易记录查询:https://etherscan.io/tx/0x65fa5b475f34a954a10f88f2c84f316a048a0e67d273c7abb098717b1a4a46a3

Tornado Cash治理攻击后,谁会是下一个目标?

恶意提案的代码存放在以下地址:https://etherscan.io/address/0x c 503893 b 3 e 3 c 0 c 6 b 90922 2b 45 f 2 a 3 a 259 a 5275 2d#code。

被攻击的合约是 TornadoVault(https://etherscan.io/address/0x 2 f 50508 a 8 a 3d 323 b 91336 fa 3 ea 6 ae 50 e 55 f 32185 #code)。

具体攻击步骤如下:

1. 攻击者 AttackerB 创建恶意提案 0x c 503893 b 3 e 3 c 0 c 6 b 90922 2b 45 f 2 a 3 a 259 a 5275 2d

Tornado Cash治理攻击后,谁会是下一个目标?

2. Attacker B 提交具有欺骗性的提案#20 

Tornado Cash治理攻击后,谁会是下一个目标?

3. Attacker A 操作多个账户锁仓 0 个 TORN 代币

Tornado Cash治理攻击后,谁会是下一个目标?

4. 被欺骗的用户发起了对#20 提案投票

Tornado Cash治理攻击后,谁会是下一个目标?

5. 达到票数后攻击者发起攻击

Tornado Cash治理攻击后,谁会是下一个目标?

  • 销毁旧提案。 Attacker B 调用 emergencyStop 函数销毁了地址0xC50389 上的旧提案。https://etherscan.io/tx/0xd3a570af795405e141988c48527a595434665089117473bc0389e83091391adb

Tornado Cash治理攻击后,谁会是下一个目标?

  • 更新提案合约。Attacker B 在同一个地址0x C 50389 上创建新合约. 交易: https://etherscan.io/tx/0xa7d20ccdbc2365578a106093e82cc9f6ec5d03043bb6a00114c0ad5d03620122 

Tornado Cash治理攻击后,谁会是下一个目标?

  • Prove of Concept

  测试文件: https://github.com/MetaTrustLabs/SmartContractAttackPoC/blob/main/test/TornadoCash

  这个测试模拟了攻击者创建恶意合约、销毁合约,同时在相同地址创建新合约的步骤。

Tornado Cash治理攻击后,谁会是下一个目标?

6. 转移代币

  • Attacker B 转移代币到 Tornado.Cash: Governance Staking

Tornado Cash治理攻击后,谁会是下一个目标?

  • Attacker A 转移代币到攻击者控制的账号

Tornado Cash治理攻击后,谁会是下一个目标?

最终,Attacker A 通过此次攻击获得价值 100 M 的代币。

安全分析

这次治理攻击的根本原因可以归结为两个方面:恶意的提案得到了通过,以及提案合约被攻击者销毁并在同一地址重新创建。

首先,攻击者通过创建恶意提案引诱投票人误判情况,导致投票人在未充分了解其潜在风险的情况下予以批准。这种误导性描述可能隐藏了攻击的真实意图,误导投票人相信该提案是有益的或无害的。

其次,攻击者采取了措施销毁原有的提案合约,并在同一地址重新创建了新的提案合约。通过调用 emergencyStop 函数,攻击者成功破坏了原始提案逻辑,使得该提案的执行结果不再符合预期。这种行为给攻击者提供了掌控治理权的机会,为后续的攻击奠定了基础。

这两个因素的结合使得攻击者能够成功实施治理攻击并夺取 Tornado Cash 的控制权。恶意提案的通过和提案合约的销毁重建为攻击者铺平了道路,使其能够利用被控制的治理权进行进一步的操作。

这次事件凸显了在去中心化治理过程中的安全性和风险管理的重要性。开发者和社区应加强对提案的审查,确保提案的描述准确透明,同时也要加强对合约的安全性审查,以防止被攻击者利用漏洞和恶意操作。此外,用户和投票人也需要更加谨慎和审慎地评估提案内容,并确保了解其潜在风险和后果。

对于 Tornado Cash 及类似项目来说,这次治理攻击事件应当被视为一次教训,以加强其治理流程和安全机制,从而提高整体系统的安全性和抵御风险的能力。只有通过持续的安全审计和风险评估,以及加强社区参与和意识,我们才能建立起更加安全可靠的区块链生态系统。

About Us

MetaTrust 是全球领先的 Web3 AI 安全服务及审计服务提供商,我们为开发者和项目方提供丰富的 AI 安全工具,安全审计以及平台,让开发者得以高效保护项目以及合约安全。Build Fast, Stay Secure.

原创文章,作者:AgentLayer。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选