原文标题:《假币的换脸戏法 —— 技术拆解 THORChain 跨链系统「假充值」漏洞》 据慢雾区消息,2021 年 6 月 29 日,去中心化跨链交易协议 THORChain 发推称发现一个针对 THORChain 的恶意攻击,THORChain 节点已作出反应并进行隔离和防御。慢雾安全团队第一时间介入分析,经分析发现,这是一起针对跨链系统的「假充值」攻击,结果分享如下: 什么是「假充值」?当我们在谈论「假充值」攻击时,我们通常谈的是攻击者利用公链的某些特性,绕过交易所的充值入账程序,进行虚假充值,并真实入账。 慢雾在早期已经披露过多起「假充值」攻击事件:
随着 RenVM、THORChain 等跨链服务的兴起,跨链节点充当起了交易所的角色,通过扫描另一条公链的资产转移情况,在本地公链上生成资产映射。THORChain 正是通过这种机制,将以太坊上的代币转移到其它公链。 漏洞分析我们从业务逻辑入口去追踪分析此漏洞的成因。 首先看到在处理跨链充值事件时,调用了 **getAssetFromTokenAddress **方法去获取代币信息,并传入了资产合约地址作为参数:
在 getAssetFromTokenAddress 方法里,我们看到它调用了 **getTokenMeta **去获取代币元数据,此时也传入了资产合约地址作为参数,但在此处有一个定义引起我们的警觉,在初始化代币时,默认赋予了代币符号为 ETH,这就是漏洞的关键点之一:asset := common.ETHAsset,如果传入合约地址对应的代币符号为 ETH,那么此处关于 symbol 的验证将被绕过。
(责任编辑:admin) |