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

By:慢雾安全团队

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

什么是“假充值”?

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

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

?

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

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

慢雾xToken被黑事件分析:两个合约分别遭受“假币”攻击和预言机操控攻击:据慢雾区消息,以太坊 DeFi 项目 xToken 遭受攻击,损失近 2500 万美元,慢雾安全团队第一时间介入分析,结合官方事后发布的事故分析,我们将以通俗易懂的简讯形式分享给大家。

本次被黑的两个模块分别是 xToken 中的 xBNTa 合约和 xSNXa 合约。两个合约分别遭受了“假币”攻击和预言机操控攻击。

一)xBNTa 合约攻击分析

1. xBNTa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 BNT,使用的是 Bancor Netowrk 进行兑换,并根据 Bancor Network 返回的兑换数量进行铸币。

2. 在 mint 函数中存在一个 path 变量,用于在 Bancor Network 中进行 ETH 到 BNT 的兑换,但是 path 这个值是用户传入并可以操控的

3. 攻击者传入一个伪造的 path,使 xBNTa 合约使用攻击者传入的 path 来进行代币兑换,达到使用其他交易对来进行铸币的目的。绕过了合约本身必须使用 ETH/BNT 交易对进行兑换的限制,进而达到任意铸币的目的。

二)xSNXa 合约攻击分析

1. xSNXa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 xSNX,使用的是 Kyber Network 的聚合器进行兑换。

2. 攻击者可以通过闪电贷 Uniswap 中 ETH/SNX 交易对的价格进行操控,扰乱 SNX/ETH 交易对的报价,进而扰乱 Kyber Network 的报价。从而影响 xSNXa 合约的价格获取

3. 攻击者使用操控后的价格进行铸币,从而达到攻击目的。

总结:本次 xToken 项目被攻击充分展现了 DeFi 世界的复杂性,其中针对 xSNXa 的攻击更是闪电贷操控价格的惯用手法。慢雾安全团队建议 DeFi 项目开发团队在进行 DeFi 项目开发的时候要做好参数校验,同时在获取价格的地方需要防止预言机操控攻击,可使用 Uniswap 和 ChainLink 的预言机进行价格获取,并经过专业的安全团队进行审计, 保护财产安全。详情见官网。[2021/5/13 21:57:48]

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

DeFiBox安全提醒:警惕Heco链上APN假币风险:DeFi门户网站DeFiBox项目监测发现,目前Heco上搜索到的APN代币为假冒APN项目假币,且买入假币的用户无法卖出,安全风险极高。据了解,目前APN项目Token并未在Heco发行。

DeFiBox提醒广大用户全面了解项目信息,注意查看Token合约辨别真伪,杜绝假币风险。[2021/4/22 20:48:48]

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

漏洞分析

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

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

dYdX官方:市场上出现dYdX假币售卖,谨防上当受:dYdX平台上线以来,随着De-Fi热度的持续增高,用户对于dYdX平台通证的期待也越来越高。但是近期发现有人冒充官方人员在市场上?进行dYdX平台通证售卖的现象。

dYdX官方特此声明,目前还未有发币计划,且从未对外进行售卖平台通证额度以及系列募资行为。

dYdX官方谨此呼吁所有爱好者特别注意,dYdX暂无发币计划,请不要参与任何dYdX平台币投资行为,谨防上当受,造成资金受损。[2021/2/10 19:25:39]

-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

动态 | 去年2月至今年1月期间共收录虚假币368个:根据BT110的数据统计,从2018年2月至2019年1月的12个月间,共收录虚假币368个,相当于一天发一币。368个虚假币中被查获的只有11个,占比不到3%。另外还有22个项目潜逃,占比不到6%。剩余的虚假币仍在运营中。记录在案的虚假币中,币占比68%,空气币占比24%,剩余部分是其他虚假币行为,包括基金代币、虚拟资产交易代币等。[2019/3/15]

-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社区的运作机制

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

银河链

以太坊价格关于ZT创新板即将上线IBNB的公告

尊敬的ZT用户: ZT创新板即将上线IBNB,并开启IBNB/USDT交易对。具体上线时间如下:充值:已开启;交易:2021年7月1日11:45; IBNB 项目简介:iBNB是第一个动态DeFi代币,通过引入革命性的新机制:动态税收.

[0:62ms0-2:59ms