火星链 火星链
Ctrl+D收藏火星链
首页 > UNI > 正文

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

作者:

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

By:慢雾安全团队

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

什么是“假充值”?

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

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

?

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

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

火币:警惕假币局,务必认准 TRC20-HT 官方合约地址:据官方消息,火币全球站已于9月18日在波场TRON网络中发行 TRC20-HT跨链资产(非增发式发行,此部分TRC20-HT将锚定等量ERC20资产,HT总量保持不变)。

同时有用户反馈,波场网络近期出现了一批假的HT合约地址和HT代币。为谨防用户上当受,火币提示用户,切勿轻易相信陌生人提供的代币地址,不要交易任何非官方合约地址的代币,请务必认准TRC20-HT官方合约地址:TDyvndWuvX5xTBwHPYJi7J3Yq8pq8yh62h

对伪造HT合约代币用于的行为,火币保留追究相关责任人法律责任的权利。其中部分假HT合约地址如下:[2020/9/23]

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

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

开发者:目前发现在UNISWAP非项目方用户创建了rSOV假币对:soviet.finance开发者Comrade Ivan发推称,目前发现在UNISWAP非项目方用户创建了rSOV假币对,且已经有受害者进行交易。他提醒广大用户rSOV不会有交易对,仅作为项目治理代币SOVIET流动性挖矿开启后的一号池质押挖矿用途。

另外,该地址中还有大量的Moonswap、CRUST、TON、高尔夫、阻尼、SYFI等假币。Comrade Ivan已知会相关项目方。请大家使用UNISWAP时,一定要反复核对智能合约地址,谨防上当受。[2020/9/21]

漏洞分析

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

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

声音 | 中央财经大学邓健鹏:目前我国关于反假币的相关规定难以适用于数字货币:金色财经报道,中央财经大学法学院教授邓健鹏认为,目前,我国关于反假币的相关规定难以适用于数字货币。由于对货币的定义仅停留在纸币和硬币层面,货币发行制度也仅针对纸币和硬币的特性而设计。根据中国人民银行法和人民币管理条例相关规定,首先,“伪造”“变造”的概念对数字货币不适用;其次,反假币工作程序对数字货币不适用。[2019/12/4]

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

?

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

分析 | 慢雾发布TronBank “假币攻击”手法技术分析:TRC10 是 TRON 区块链本身支持的技术代币标准,没有 TRON 虚拟机(TVM)。TRC10 提供了 2 个新参数:tokenValue、tokenId,msg.tokenvalue 表示当前 msg 调用中的标记值,默认值为 0。 msg.tokenid 表示当前 msg 调用中的标记 id,默认值为 0。tokenId 也是 Odyssey_v3.2 中的新功能。它可以在帐户中名为 assetV2 的新地图字段中找到。 使用 GetAccount(Account)获取 tokenId 及其值。 TokenId 由系统从数字 1_000_001 开始设置。 创建新的 TRC10 代币时,数字加 1 并设置此代币的 ID。

TronBank 合约在 invest 函数内没有判断 msg.tokenid 导致任意的代币(假币)转入,合约都以为是真币 BTT。然后攻击者再调用 withdraw 从合约中提取真币 BTT。[2019/4/11]

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

动态 | “去中心化交易所”混入EOS假币 用户损失数万美元:据thenextweb消息,攻击者创造了一种全新的EOS代币,并将其命名为“EOS”,EOS账户oo1122334455发行了10亿个EOS假币。经测试发现攻击可行之后,该账户开始挂出大额买单,用11800个EOS假币购买BLACK、IQ和ADD这三种代币。Newdex透露,攻击者拿到了4028个EOS(价值2万美元)。Newdex dApp因此承受了5.8万美元的损失。[2018/9/19]

继续验证我们的猜测,我们看到当代币地址在系统中不存在时,会从以太坊主链上去获取合约信息,并以获取到的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()进行判断,过滤了没有进行赋值的假充值代币。

总结

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

****

往期回顾

强扭的瓜不甜——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社区的运作机制

标签:ETHAINTOKEHAItogetherbnb手游下载女鬼hitchain币利好消息Kaleido TokenZK-Chain

UNI热门资讯
OIN:关于BCH和BSV充值地址更新的公告

尊敬的用户:为了提升用户体验,保障用户资产安全。CoinBene已更新BCH和BSV充值地址。并已经暂停BCH和BSV旧地址充值服务,因此强烈推荐您及时更新充值地址。对此造成的不便敬请谅解.

1900/1/1 0:00:00
比特币:中币行情看点:摩根大通策略师:机构对比特币的兴趣将会增加

本文由中币研究院原创编辑,下载全球领先的数字货币交易所中币APP:www.zb.land热点摘要:1.美参议员:比特币是实现退休策略多元化的一种方式;2.Coinbase推出USDC储蓄服务;3.

1900/1/1 0:00:00
ULM:BKEX Global 关于支持CATGE(catgecoin)V2版本升级和智能合约地址置换的公告

尊敬的用户:?BKEXGlobal将支持CATGEV2版本升级和智能合约地址置换的计划,详情如下:现已暂停CATGE充值与提现功能,进行合约置换.

1900/1/1 0:00:00
COIN:KuCoin上线BarnBridge (BOND)!

亲爱的KuCoin用户:我们很高兴的宣布,KuCoin将上线BarnBridge(BOND)项目并支持交易对BOND/USDT.

1900/1/1 0:00:00
TER:关于ZT创新板即将上线OLYMPUS的公告

尊敬的ZT用户:ZT创新板即将上线OLYMPUS,并开启OLYMPUS/USDT交易对。具体上线时间如下:充值:已开启;交易:2021年7月2日17:30;OLYMPUS项目简介:Olympus.

1900/1/1 0:00:00
XEC:BKEX Global 关于支持BCHA(Bitcoin Cash ABC)更名和代币增量计划的公告

尊敬的用户:根据BitcoinCashABC官方消息,BitcoinCashABC已经开启向XEC(eCash)的迁移计划。用户需要将BCHA代币兑换为XEC代币.

1900/1/1 0:00:00