主页 > imtoken官网下载1.0 > 慢雾科技:THORChain跨链系统“虚假充值”漏洞的技术拆解

慢雾科技:THORChain跨链系统“虚假充值”漏洞的技术拆解

imtoken官网下载1.0 2023-01-17 03:49:03

原标题:《假币换脸术——THORChain跨链系统“虚假充值”漏洞的技术拆解》

作者:Johan,慢雾安全团队

据慢雾消息,2021年6月29日,去中心化跨链交易协议THORChain发推称发现针对THORChain的恶意攻击,THORChain节点已响应并进行隔离防御。 慢雾安全团队第一时间介入分析。 经分析发现,这是一次针对跨链系统的“假充值”攻击。 结果分享如下:

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

什么是“虚假充值”?

当我们说到“虚假充值”攻击时,通常是指攻击者利用公链的某些特性,绕过交易所的充值入账流程,进行虚假充值,真正进入账户。

比特币怎么比特币钱包_比特币分叉会影响比特币价格吗_比特币漏洞

慢雾早期曾披露过多次“假充值”攻击:

随着RenVM、THORChain等跨链服务的兴起,跨链节点充当交易所,通过扫描另一条公链的资产转移,在本地公链上生成资产映射。 THORChain 正是通过这种机制将以太坊上的代币转移到其他公链上。

漏洞分析

我们从业务逻辑入口跟踪分析该漏洞产生的原因。

首先在处理跨链充值事件时,调用**getAssetFromTokenAddress**方法获取token信息,并传入资产合约地址作为参数:

bifrost/pkg/chainclients/ETHereum/ETHereumblockscanner.go

比特币漏洞_比特币怎么比特币钱包_比特币分叉会影响比特币价格吗

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

在 getAssetFromTokenAddress 方法中,我们看到它调用了 **getTokenMeta** 来获取令牌元数据。 这时候资产合约地址也作为参数传入,但是这里有个定义引起我们警惕。 上币时默认给的token symbol为ETH,这是漏洞的关键点之一:asset := common.ETHAsset,如果传入合约地址对应的token symbol为ETH,则验证这里的符号将是旁路。

bifrost/pkg/chainclients/ETHereum/ETHereumblockscanner.go

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

继续验证我们的猜测。 我们看到,当代币地址在系统中不存在时,会从以太坊主链获取合约信息,并用获取的符号构造新的代币。 至此,所有产生漏洞的原因都已排除。 出现:

bifrost/pkg/chainclients/ETHereum/ETHereumblockscanner.go

比特币分叉会影响比特币价格吗_比特币怎么比特币钱包_比特币漏洞

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

bifrost/pkg/chainclients/ETHereum/tokens_db.go_

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

bifrost/pkg/chainclients/ETHereum/ETHereumblockscanner.go

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

综上所述比特币漏洞,首先,由于错误的定义,如果跨链充值的ERC20代币的符号是ETH,那么就会出现逻辑错误,导致充值的代币被识别为真正的以太坊以太币。

比特币漏洞_比特币怎么比特币钱包_比特币分叉会影响比特币价格吗

还原袭击真相

我们来看一次攻击交易的执行过程,可以提取出充值的token合约地址:

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

我们在 ETHerscan 上查看代币合约地址:

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

发现该地址对应的合约代币符号为ETH,攻击者通过部署假币合约完成跨链假充值。

比特币漏洞_比特币分叉会影响比特币价格吗_比特币怎么比特币钱包

Bug修复

漏洞补丁:

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

项目方发现攻击后,迅速修复代码,删除默认token类,使用common.EmptyAsset定义空token,并在后续逻辑中使用asset.IsEmpty()进行判断,过滤掉no assignment fake top-上令牌。

总结

幸运的是,项目方及时发现了此次攻击事件,没有造成巨大的财产损失。 但是,作为跨链系统,未来可能会聚集庞大的多链资金,安全也不容忽视。 因此,慢雾安全团队建议在设计跨链系统时,应充分考虑不同公链、不同代币的特点,全面开展“虚假充值”测试比特币漏洞,做好状态监测和预警工作,必要时可以联系专业的安全公司进行安全审计。