细节决定成败:QBridge被黑事件分析

  • SharkTeam
  • 更新于 2022-03-07 11:19
  • 阅读 3127

QBridge被黑事件分析

2022 年 01 月 28 日,Qubit 项目的 QBridge 遭受攻击,损失约 8000 万美金。 image.png

SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

攻击过程如下: 1.攻击者账户在Ethereum上面通过Tornado获取1 Ether的Token,作为发送交易以及发起攻击的最初资产。 image.png

2.攻击者在Ethereum上面先后连续发起2次deposit ETH交易(调用depositETH函数)到QBridge合约,每次存入0.1 Ether,用于跨链交易。 image.png

3.攻击者在Ethereum上面再次先后连续发起多次deposit交易(调用deposit函数)到QBridge合约,用于跨链交易。 image.png 从合约函数来看,调用depositETH函数应该是在存入Ether用于跨链交易,而调用deposit函数应该是存入ERC20 Token用于跨链交易。

以交易0xac7292e7d0ec8ebe1c94203d190874b2aab30592327b6cc875d00f18de6f3133为例, image.png image.png

以上交易并没有任何Ether或者ERC20 Token的转账记录。这里调用deposit函数应该是存入ERC20 Token,至少应该有ERC20 Token的转账记录,但实际上并没有。在没有ERC20 Token转账的情况下交易应该revert,不应该被执行。

从交易执行过程中,我们发现在调用ERC20 Token的转账函数时,ERC20 Token的地址为零地址,如下所示: image.png

合约中实际是有白名单校验的,交易执行成功说明零地址也在白名单之中,即白名单校验是通过的。另外,tokenAddress是零地址的情况下,调用safeTransferFrom函数,EVM不会报错,也不会执行任何操作,因此deposit函数在没有转账的情况下最终执行成功而没有报错回滚。之所以出现tokenAddress地址为0的情况,是因为在存入Ether的时候,默认Ether的地址为零地址。

4.账户0xeb645b4c35cf160e47f0a49c03db087c421ab545在攻击者发起deposit交易后,在BSC网络中先后连续发起了多次Vote Proposal交易(调用voteProposal函数),铸造了大量的xETH Token. image.png

以交易0x2ce666d0ec8c976f6895b1ac52f648b5f5e025c42a956c767bf4fbae0982819e为例,如下所示,该交易铸造了5990 xETH。 image.png 但实际上攻击者并没有存入任何Token,这些xETH完全是凭空铸造出来的。

5.攻击者在BSC网络中以凭空铸造的大量的xETH作为抵押物,从Qubit合约中借出了其中的Token。 image.png

以交易0xcfa4379af6fb1da547ae7270485b63f304b1fbec55f2a0c1ccf0a4f59d839b2e为例, image.png

该交易中,攻击者以凭空借出的xETH为抵押物,从Qubit合约中借出了140 Ether.

总结:本次攻击的根本原因在于,分开实现deposit主币(如ETH)和ERC20标准普通代币时,在对白名单内的代币进行转账操作时未对其是否为0地址进行检查,导致本来应该通过native充值函数进行deposit的操作也能通过普通ERC20代币的deposit走通。SharkTeam建议您,在对deposit代币进行白名单检查后仍需对deposit的是否为native代币进行再次检查。

二、安全建议

SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。

SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。

Twitter:https://twitter.com/sharkteamorg

Telegram:https://t.me/sharkteamorg

更多区块链安全资讯与行业分析,点击下方链接查看 D查查|链上风险核查

点赞 1
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
SharkTeam
SharkTeam
0xC0f5...8888
SharkTeam是领先的Web3安全服务提供商,提供智能合约审计、链上分析和应急响应服务。 Web: https://www.sharkteam.org Telegram: https://t.me/sharkteamorg Twitter:https://twitter.com/sharkteamorg