据慢雾 AML 团队分析统计,THORChain 三次攻击真实损失如下:
2021 年 6 月 29 日,THORChain 遭 “假充值” 攻击,损失近 35 万美元;
2021 年 7 月 16 日,THORChain 二次遭 “假充值” 攻击,损失近 800 万美元;
2021 年 7 月 23 日,THORChain 再三遭攻击,损失近 800 万美元。
这不禁让人有了思考:三次攻击的时间如此相近、攻击手法如此相似,背后作案的人会是同一个吗?
慢雾 AML 团队利用旗下 MistTrack 反洗钱追踪系统对三次攻击进行了深入追踪分析,为大家还原整个事件的来龙去脉,对资金的流向一探究竟。
第一次攻击:“假充值”漏洞
攻击概述
本次攻击的发生是由于 THORChain 代码上的逻辑漏洞,即当跨链充值的 ERC20 代币符号为 ETH 时,漏洞会导致充值的代币被识别为真正的以太币 ETH,进而可以成功的将假 ETH 兑换为其他的代币。此前慢雾安全团队也进行了分析,详见:假币的换脸戏法 —— 技术拆解 THORChain 跨链系统“假充值”漏洞。
根据 THORChain 官方发布的复盘文章[1],此次攻击造成的损失为:
9352.4874282 PERP1.43974743 YFI2437.936 SUSHI10.615 ETH
资金流向分析
根据官方提供的黑客地址,慢雾 AML 团队分析并整理出了攻击者相关的钱包地址情况如下:
经 MistTrack 反洗钱追踪系统分析发现,攻击者在 6 月 21 号开始筹备,使用匿名兑换平台 ChangeNOW 获得初始资金,然后在 5 天后 (6 月 26 号) 部署攻击合约。
在攻击成功后,多个获利地址都把攻击获得的 ETH 转到混币平台 Tornado Cash 以便躲避追踪,未混币的资金主要是留存在钱包地址 (0xace...d75) 和 (0x06b...2fa) 上。
慢雾 AML 团队统计攻击者获利地址上的资金发现,官方的统计遗漏了部分损失:
29777.378146 USDT78.14165727 ALCX11.75154045 ETH0.59654637 YFI
第二次攻击:取值错误导致的 “假充值” 漏洞
攻击概述
根据分析发现,攻击者在攻击合约中调用了 THORChain Router 合约的 deposit 方法,传递的 amount 参数是 0。然后攻击者地址发起了一笔调用攻击合约的交易,设置交易的 value(msg.value) 不为 0,由于 THORChain 代码上的缺陷,在获取用户充值金额时,使用交易里的 msg.value 值覆盖了正确的 Deposit event 中的 amount 值,导致了 “空手套白狼” 的结果。
根据 THORChain 官方发布的复盘文章[2],此次攻击造成的损失为:
2500 ETH57975.33 SUSHI8.7365 YFI171912.96 DODO514.519 ALCX1167216.739 KYL13.30 AAVE
资金流向分析
慢雾 AML 团队分析发现,攻击者相关的钱包地址情况如下:
MistTrack 反洗钱追踪系统分析发现,攻击者地址 (0x4b7...c5a) 给攻击者地址 (0x3a1...031) 提供了初始资金,而攻击者地址 (0x4b7...c5a) 的初始资金来自于混币平台 Tornado Cash 转出的 10 ETH。
在攻击成功后,相关地址都把攻击获得的币转到地址 (0xace...70e)。
该获利地址 (0xace...70e) 只有一笔转出记录:通过 Tornado Cash 转出 10 ETH。
慢雾 AML 团队统计攻击者获利地址上的资金发现,官方的统计遗漏了部分损失:
2246.6 SUSHI13318.35 DODO110108 KYL243.929 USDT259237.77 HEGIC
第三次攻击:退款逻辑漏洞
攻击概述
本次攻击跟第二次攻击一样,攻击者部署了一个攻击合约,作为自己的 router,在攻击合约里调用 THORChain Router 合约。但不同的是,攻击者这次利用的是 THORChain Router 合约中关于退款的逻辑缺陷,攻击者调用 returnVaultAssets 函数并发送很少的 ETH,同时把攻击合约设置为 asgard。然后 THORChain Router 合约把 ETH 发送到 asgard 时,asgard 也就是攻击合约触发一个 deposit 事件,攻击者随意构造 asset 和 amount,同时构造一个不符合要求的 memo,使 THORChain 节点程序无法处理,然后按照程序设计就会进入到退款逻辑。
(截图来自 viewblock.io)有趣的是,推特网友把这次攻击交易中的 memo 整理出来发现,攻击者竟喊话 THORChain 官方,表示其发现了多个严重漏洞,可以盗取 ETH/BTC/LYC/BNB/BEP20 等资产。
(图片来自 https://twitter.com/defixbt/status/1418338501255335937)
根据 THORChain 官方发布的复盘文章[3],此次攻击造成的损失为:
966.62 ALCX20,866,664.53 XRUNE1,672,794.010 USDC56,104 SUSHI6.91 YEARN990,137.46 USDT
资金流向分析
慢雾 AML 团队分析发现,攻击者相关的钱包地址情况如下:
MistTrack 反洗钱追踪系统分析发现,攻击者地址 (0x8c1...d62) 的初始资金来源是另一个攻击者地址 (0xf6c...747),而该地址 (0xf6c...747) 的资金来源只有一笔记录,那就是来自于 Tornado Cash 转入的 100 ETH,而且时间居然是 2020 年 12 月!
在攻击成功后,攻击者将资金转到了获利地址 (0x651...da1)。
总结
通过以上分析可以发现,三次攻击的初始资金均来自匿名平台 (ChangeNOW、Tornado Cash),说明攻击者有一定的 “反侦察” 意识,而且第三次攻击的交易都是隐私交易,进一步增强了攻击者的匿名性。
从三次攻击涉及的钱包地址来看,没有出现重合的情况,无法认定是否是同一个攻击者。从资金规模上来看,从第一次攻击到第三次攻击,THORChain 被盗的资金量越来越大,从 14 万美金到近千万美金。但三次攻击获利的大部分资金都没有被变现,而且攻击间隔时间比较短,慢雾 AML 团队综合各项线索,推理认为有一定的可能性是同一人所为。
截止目前,三次攻击后,攻击者资金留存地址共有余额近 1300 万美元。三次攻击事件后,THORChain 损失资金超 1600 万美元!
(被盗代币价格按文章发布时价格计算)
依托慢雾 BTI 系统和 AML 系统中近两亿地址标签,慢雾 MistTrack 反洗钱追踪系统全面覆盖了全球主流交易所,累计服务 50+ 客户,累计追回资产超 2 亿美金。(详见:慢雾 AML 升级上线,为资产追踪再增力量)。针对 THORChain 攻击事件, 慢雾 AML 团队将持续监控被盗资金的转移,拉黑攻击者控制的所有钱包地址,提醒交易所、钱包注意加强地址监控,避免相关恶意资金流入平台。
跨链系统的安全性不容忽视,慢雾科技建议项目方在进行跨链系统设计时应充分考虑不同公链不同代币的特性,充分进行 “假充值” 测试,必要时可联系专业安全公司进行安全审计。
参考资料
THORChain 官方复盘文章:
[1] https://medium.com/thorchain/eth-parsing-error-and-exploit-3b343aa6466f
[2] https://thearchitect.notion.site/THORChain-Incident-07-15-7d205f91924e44a5b6499b6df5f6c210
[3] https://thearchitect.notion.site/THORChain-Incident-07-22-874a06db7bf8466caf240e1823697e35