区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Luna > 正文

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

作者:

时间:

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

什么是“假充值”?

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

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

漏洞分析

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

DeFi协议OpenDAO将扩展至Polygon:据官方消息,将真实世界资产连接到DeFi的去中心化协议OpenDAO现在正在以太坊扩容解决方案Polygon上构建。通过扩展至Polygon,OpenDAO用户将能够体验更低的Gas费和更快的交易执行。[2021/6/3 23:09:18]

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

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

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

以太坊重回2500美元/枚,日内涨幅2.34%:行情显示,以太坊重回2500美元/枚,日内涨幅2.34% 。[2021/5/20 22:24:12]

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

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

总结

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

标签:NFTETHEETHERTHESNFTSETHE币tether币怎么提现PANTHER币

Luna热门资讯
扩容带走了以太坊的热闹?沉默之后是爆发

近期,随着加密市场行情的走低,以及Matic、BSC等侧链的发展,以太坊链上交易的Gas费用大幅度降低,已经连续多日维持在10Gwei左右,在不活跃的时段,甚至低至5Gwei。 上一次以太坊链上Gas费用持续在这个水平,还是在2020年的7月份,DeFi行情爆发之前。彼时ETH的价格还维持在400美元左右。

金色早报 | 万维网代码NFT以540万美元售出

头条 ▌北京地铁可刷数字人民币乘车 自今日起,北京轨道交通开启全路网数字人民币支付渠道刷闸乘车体验测试。已开通工商银行数字人民币业务的乘客,可在北京轨道交通已有24条运营线路及4条市郊铁路范围内,通过亿通行APP参与数字人民币支付刷闸乘车体验测试。

支付宝依托蚂蚁链试水NFT

“在时代的浪潮之巅,互联网巨头也不想错过这个机会。” 6月23日零点,支付宝在“蚂蚁链粉丝粒”小程序上限量发售“敦煌飞天”“九色鹿”两款付款码NFT(Non-FungibleToken)皮肤。这两款皮肤各限量8000份,迅速被抢光。 针对外界对NFT是否相当于发行代币的误解,蚂蚁链在第一时间澄清:NFT不是虚拟币。

金色观察|多国监管向币安发力

金色财经报道,7月2日,泰国证券交易委员会宣布,已对币安启动刑事诉讼程序并调查涉嫌无照经营数字资产业务。当局表示,币安通过其网站“匹配订单或安排交易对手,或提供系统或促进达成协议”,提供了未被许可的加密交易服务。 而这已经了近期第7个国家和地区的机构和监管机构对币安表示了明确态度。

李扬:比特币不能算是局 可以像黄金一样当资产配置

国家金融与发展实验室理事长、中国社科院学部委员李扬接受,在谈到比特币等加密货币时,李扬表示:比特币不能算是局,它是一种新的数据资产,人们可以像投资黄金一样去投它,但是,它不是货币。 李扬认为,黄金非货币化之后,就蜕变为一种投资对象,是诸种可投资资产的一种。现在的比特币也一样,它就是一种数字资产,就此而论,它和黄金是一个等级的东西。

BSC链上“闪电贷攻击”再袭 xWin Finance被薅羊毛事件简析

北京时间6月25日,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)舆情监测显示,基于币安智能链(BSC)的链上DeFi协议xWin Finance遭到“闪电贷攻击”。据统计,xWin Finance代币(XWIN)24小时跌幅达近90%。 成都链安·安全团队第一时间介入分析,针对xWin Finance被黑事件启动安全应急响应。