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

By:慢雾安全团队

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

什么是“假充值”?

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

慢雾在早期已经披露过多起“假充值”攻击事件:

?

USDT假充值:USDT虚假转账安全?险分析|2345新科技研究院区块链实验室

EOS假充值:EOS假充值(hard_fail状态攻击)红色预警细节披露与修复方案以太坊代币假充值:以太坊代币“假充值”漏洞细节披露及修复方案

JustSwap白名单上SSK疑似为假币:9月23日,JustSwap白名单上SSK疑似为假币。根据SunStake(SSK)官方消息,SSK代币地址:TW1sqqq7UphAqGNHDXSLXsEainYHJuQeyC。而JustSwap上的SSK代币地址为:TYbtUJpoAos99Kt3ih81s6P8TZ1ATTv6Cj。(律动BlockBeats)[2020/9/23]

比特币RBF假充值风险:比特币RBF假充值风险分析

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

漏洞分析

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

波卡生态项目Acala:此前ACA假币局是网站Bug目前已被修正:9月23日,波卡生态项目Acala官方再次发推,对此前Uniswap上的ACA假币局作出声明。官方表示,现已被告知ACA假币是网站网站Bug,目前已被修正。官方再次提醒称,用户需保持警惕。此前9月7日及15日,Acala官方两次发推提醒称,官方还没有发行ACA代币,用户需警惕Uniswap上的ACA假币。[2020/9/23]

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

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

?

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

孙宇晨就Justswap上线致币圈的公开信:关于解决假币问题:据最新消息显示,波场TRON创始人兼BitTorrent CEO孙宇晨发布了Justswap上线致币圈的公开信,孙宇晨表示:“解决假币问题。Justswap团队将重拳出击整改假币问题,我们将会把下拉列表栏的代币全部审查一遍,确保列表中的代币为真币,与此同时,官方开启假币审核,推出假币举报通道(report@justswap.org),一经审核发现为假币的,将做下架处理。”[2020/8/19]

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

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

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

动态 | 账号创建10亿个EOS假币,项目方应提高警惕:Beosin成都链安态势感知安全预警:今日下午14:20:11?根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,账户larry5555555 发布了10亿 EOS假币并分发到了数个小号(pandoras1111,pandoras.e等),鹰眼将持续追踪这些假币的流向,请各项目方持续关注事件走势,做好及时应急措施预警准备和自查,检查自己的合约是否正确判断接收代币的发行方,必要时可以找区块链安全公司进行代码审计,并可加入成都链安鹰眼态势感知系统,我们将第一时间为大家免费提供预警报警服务,避免用户资产受损。[2019/6/21]

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

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

声音 | 安全专家:假币攻击已不是个例:TronBank被报遭假币攻击,1小时内被盗约1.7亿枚BTT。针对此事件,北京链安安全专家hardman表示,本次发生的假币漏洞不是个例,类似的事件已经在其它公链发生过多起,主要分为假充值漏洞和假币漏洞。假充值漏洞如usdt、以太坊假充值漏洞,假币漏洞如eos公链上的多个dapp曾经也发生过假币漏洞。在这里需要说明的是,目前所有的假币漏洞或者假充值漏洞都是由于开发者代码编写不当导致的,公链和代币本身并没有漏洞。[2019/4/11]

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

还原攻击真相

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

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

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

漏洞修复

漏洞补丁:

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

总结

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

****

往期回顾

强扭的瓜不甜——SafeDollar被黑分析

“不可思议”的被黑之旅——ImpossibleFinance被黑分析

走过最长的路,竟是自己的套路——Alchemix事件分析

HPOOL入驻慢雾区,发布「安全漏洞与威胁情报赏金计划」

重磅!慢雾的安全审计结果已集成到CoinMarketCap

慢雾导航

慢雾科技官网

https://www.slowmist.com/

慢雾区官网

https://slowmist.io/

慢雾GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

币乎

https://bihu.com/people/586104

知识星球

https://t.zsxq.com/Q3zNvvF

火星号

http://t.cn/AiRkv4Gz

链闻号

https://www.chainnews.com/u/958260692213.htm

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

慢雾科技

现已在非小号资讯平台发布68篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10123951.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

简析三个典型DAO模型,揭示DAO社区的运作机制

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

FTXCOM:XT关于上线 NEWD/BTC的公告

尊敬的XT用户: XT.COM将于2021年7月2日16:00上线NEWD/BTC交易对,邀您体验!NewDoch(NEWD)是一种基于币安链的代币,旨在改变世界上的数字内容流媒体.

[0:15ms0-0:532ms