织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

技术拆解 THORChain 跨链系统「假充值」漏洞(2)

时间:2021-07-13 10:29来源:未知 作者:admin 点击:
继续验证我们的猜测,我们看到当代币地址在系统中不存在时,会从以太坊主链上去获取合约信息,并以获取到的 symbol 构建出新的代币,此时所有的漏洞

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

bifrost/pkg/chainclients/ethereum/ethereumblockscanner.go

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

bifrost/pkg/chainclients/ethereum/tokens_db.go

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

bifrost/pkg/chainclients/ethereum/ethereumblockscanner.go

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

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

还原攻击真相

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

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

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

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

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

漏洞修复

漏洞补丁:

慢雾:技术拆解 THORChain 跨链系统「假充值」漏洞

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

总结

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

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容