火星链 火星链
Ctrl+D收藏火星链

HAI:假币的换脸戏法:技术拆解 THORChain 跨链系统“假充值”漏洞

作者:

时间:1900/1/1 0:00:00

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

什么是“假充值”?

当我们在谈论“假充值”攻击时,我们通常谈的是攻击者利用公链的某些特性,绕过交易所的充值入账程序,进行虚假充值,并真实入账。

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

CirclesUBI:请用户警惕Uniswap上的Circles假币:CirclesUBI发推表示,Circles并没有上线Uniswap,请用户不要在上面买名为“Circles”的代币。CirclesUBI系统本身没有单一的Circles代币,Circles并不是通用的可互换代币,注:在Circles注册的用户都会有他们自己版本的Circles代币,因此,CirclesUBI系统中的代币本身的设计决定其不会是投机性资产。[2020/10/19]

漏洞分析

我们从业务逻辑入口去追踪分析此漏洞的成因。

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

FTX创始人:警惕Uniswap上的SRM假币:8月6日消息,加密衍生品交易所FTX的创始人Sam Bankman-Fried发推提醒用户警惕Uniswap上的SRM假币。他表示,目前SRM还不能交易,如果你在Uniswap等平台上看到SRM,那么这是假币。[2020/8/6]

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go?

在 getAssetFromTokenAddress 方法里,我们看到它调用了 getTokenMeta 去获取代币元数据,此时也传入了资产合约地址作为参数,但在此处有一个定义引起我们的警觉,在初始化代币时,默认赋予了代币符号为 ETH,这就是漏洞的关键点之一:asset := common.ETHAsset,如果传入合约地址对应的代币符号为 ETH,那么此处关于 symbol 的验证将被绕过。

动态 | 警惕市场上各种假币局 避免真币兑换假币:据CoinHunter.io监测,在过去一周内,仿冒知名代币进行的行为依旧活跃。其中,仅火币token(HT)的仿冒代币就多达10个。CoinHunter在此提醒广大交易者,切勿轻易相信陌生人提供的代币地址,转帐前应对代币合约的名字(name)、缩写(symbol)、交易活跃度、持有人数量等信息进行核对,以免受上当。

以下是部分仿冒火币token的假币地址:

0xf797472…;0x66eda29…;0xc50f43d…;0xb4a3d3b…;

0x34bc412…;0x223fe58…;0xb0bf377…;0xaae0d7d…;

0x31e02d2…;0xC671D15…;[2019/7/15]

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

精选 | Newdex回应EOS假币事件 用户利益并未受到伤害:Newdex今日针对假EOS攻击事件作出回应,媒体对于事件造成平台用户蒙受5.8万美元损失的报道与事实不符。事件中,Newdex及时启动应急措施,完成漏洞修复并发布公告。平台承担全部损失,用户资产并未受损。肇事黑客全数归还IQ、ADD,其转入Bitfinex交易所的资产已被冻结。[2018/9/20]

继续验证我们的猜测,我们看到当代币地址在系统中不存在时,会从以太坊主链上去获取合约信息,并以获取到的 symbol 构建出新的代币,此时所有的漏洞成因都已经显现:

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

- bifrost/pkg/chainclients/ethereum/tokens_db.go

- bifrost/pkg/chainclients/ethereum/ethereum_block_scanner.go

总结一下,首先是由于错误的定义,如果跨链充值的 ERC20 代币符号为 ETH,那么将会出现逻辑错误,导致充值的代币被识别为真正的以太币 ETH。

还原攻击真相

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

我们在 Etherscan 上查看这个代币合约地址:

发现这个地址对应的合约的代币符号正是 ETH,攻击者正是通过部署了假币合约,完成了这次跨链假充值。

漏洞修复

漏洞补丁:

项目方在发现攻击后快速对代码进行了修复,删除了默认的代币类型,使用 common.EmptyAsset 进行空代币定义,并在后续逻辑中使用 asset.IsEmpty() 进行判断,过滤了没有进行赋值的假充值代币。

总结

幸运的是项目方及时发现了本次攻击,未造成巨额财产损失,但作为跨链系统,未来可能聚集巨额的多链资金,安全性不容忽视,因此慢雾安全团队建议在进行跨链系统设计时应充分考虑不同公链不同代币的特性,充分进行“假充值”测试,做好状态监控和预警,必要时可联系专业安全公司进行安全审计。

标签:ETHCIRCLEHAIETHYS币CircleSwapKuwa OracleBidao Smart Chain

比特币交易热门资讯
区块链:认知偏差降低用户购买欲 比特币也需要新单位

本轮牛市中加密货币的狂欢在5月份达到了巅峰,当时最引人关注的无疑是各种Meme代币,无数新用户涌入造成各种山寨币狂涨.

1900/1/1 0:00:00
ETH:最受欢迎的稳定币Tether会成为加密市场的末日吗?

由于缺乏透明度,最受欢迎的稳定币 Tether 在加密货币社区中一直具有一定程度的不确定性并受到怀疑.

1900/1/1 0:00:00
比特币价格:加密市场现在是牛市还是熊市?用数据说话

自4月14日比特币价格冲上64840美元的历史高位之后,此后便掉头向下,甚至一度跌至30000美元,跌幅超过50%。比特币的总市值也从1.18万亿美元跌至6100亿美元.

1900/1/1 0:00:00
比特币:金色前哨丨软银拥有的LINE进军CBDC 推出开源央行数字货币平台

金色财经  区块链7月11日讯   日本跨国企业集团软银旗下的韩国软件和技术服务公司 LINE PLUS 发布了一个区块链平台.

1900/1/1 0:00:00
BTC:金色观察丨算力暴跌抛压来袭 最慌的竟然不是矿工?

金色财经 区块链7月2日讯 比特币价格在今年五月出现了年内第一次“投降”,紧接着比特币市场开始出现抛售迹象.

1900/1/1 0:00:00
ICA:境外区块链基金设立之卢森堡篇

卢森堡,全称卢森堡大公国,虽然是一个袖珍之国,但是却是一个高度发达的资本主义国家,也是世界上最富有的国家.

1900/1/1 0:00:00