Bter比特儿交易平台

The home of digital asset trading

真假不分&蜀贾卖药--xToken被黑事件分析

Bter4个月前991

北京时间2021年5月13日,DeFi 质押和流动性策略平台 xToken 遭到攻击,xBNTa Bancor 池以及 xSNXa Balancer 池立即被耗尽,造成约 2500 万美元损失,其中,xSNXa 合约上直接损失的总价值为 416 枚 ETH,xBNT 合约上没有造成直接损失。

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

一、事件分析

经过分析,此次攻击中有两个合约受到了攻击,分别是xBNT.sol和xSNX.sol。

首先分析一下xBNT.sol,此合约中被攻击的是mint方法。看到这个方法的合约代码,可以看出这是一个使用其它货币铸造xBNT的方法,项目方的本意是使用他们生态内的头寸代币进行铸造,但是没有做识别判定,导致了任何代币都可以进行铸造。攻击者自己发行了一个“假币”,以假当真,使用假币也可以进行兑换。

另一个xSNX.sol合约,攻击者采用了典型的闪电贷操纵预言机攻击,被攻击的原因是因为其合约中的xSNX使用了Kyber上的SNX价格,而Kyber的SNX价格是参考的Uniswap的预言机价格的。当SNX的价格被影响后直接导致xToken中xSNX价格不正常波动,造成攻击套利空间,攻击步骤如下:

  1. 黑客先从dYdX中通过闪电贷借出大量的以太坊。

(2)从AAVE中抵押ETH并借出SNX。

(3)从Sushiswap中将ETH Swap成 SNX。至此,黑客储备了大量SNX

  1. 将SNX在Uniswap中全部Swap成ETH,此时SNX的价格会变得非常低。

(5)攻击者此时通过xSNX合约使用ETH置换xSNX,由于xSNX使用了Kyber上的SNX价格,而Kyber的SNX价格是参考的Uniswap的预言机价格的,所以此时攻击者置换出了更多的xSNX。

(6)攻击者将账户中所有的xSNX置换成以太坊和SNX后,归还闪电贷。

(7)攻击者手中剩下攻击所得xSNX,市场价格恢复正常后,在其他交易所置换为其他代币后获利。

(8)此次闪电贷操纵预言机攻击问题核心出在xSNXAdmin.sol合约中的calculateNetAssetValueOnMint方法,如下图:

二、SharkTeam区块链安全知识课堂

此次事件是又一次与闪电贷攻击有关的区块链安全事件,DeFi项目的业务逻辑设计复杂,涉及的经济学计算和参数较多,却不同项目和协议之间可组合性极其丰富,很难预测,非常容易出现安全漏洞。如下表,利用闪电贷这种新型产品进行攻击的DeFi事件在过去的一年里层出不穷,已增加到15起。其中,攻击者通过操纵 AMM 资产池内的资产价格或者资产数量使关联协议蒙受损失,我们不妨称之为经济攻击。至今出现的经济攻击分为“哄抬套利”和“操纵预言机”两种手法。此次xToken事件就是典型的“操纵预言机”攻击。

  • 操纵预言机

操纵预言机攻击可以认为是哄抬套利攻击的一种对称操作,其攻击目标依赖 AMM 提供的信息对其内部资产进行定价。

操纵预言机攻击的基础模型(序号代表攻击步骤,实线表示必要步骤,虚线代表或有步骤;攻击目标的净值计算环节和 AMM 的定价函数在设计上存在被黑客利用的风险)。

这种情况下攻击者虽然无法利用攻击目标内的资产去哄抬 AMM 内某资产的价格,但可以考察 AMM 模块作为预言机能否被操纵,从而哄抬攻击目标内的资产。

攻击目标依赖 AMM 提供信息的主要目的有两种:

(1)对抵押物进行估值;

(2)对头寸代币进行定价。

我们也可将其视为净值计算,而攻击者则专门寻找在净值计算中与实际情况出现偏差的合约进行操纵。一般步骤为:

第一步,准备。获得用于操纵 AMM 预言机的资产 Y 及准备存入攻击目标的资产 A。

第二步,抵押。将资产 A 抵押至攻击目标,获得代表抵押物的头寸代币 B,有些情况下,不发放头寸代币 B,只在智能合约内部记账。

第三步,操纵。将资产 Y 投入 AMM 兑换资产 X,改变 AMM 流动性池内资产的比例从而改变报价,更新攻击目标合约内资产 A 或头寸代币 B 的定价;

第四步,收尾。若为借贷业务,则通过抬高的抵押物估值借出更多资产并不再归还;若为机枪池业务,则通过抬高价格后的头寸代币 B 赎回资产,获得增值收益。

三、安全建议

操纵预言机和哄抬套利攻击模式本质上都是对净值计算环节的利用和操纵行为。故而在设计 DeFi 系统的时候,妥善处理这一环节至关重要。

(1)最根本的预防措施就是取消用户自动触发交易策略链式执行或更新净值的权限,从根本上阻断攻击者完成一整套连贯的操纵行为。

(2)安全审计:智能合约安全关系用户的财产安全,至关重要!区块链项目开发者应与专业的安全审计公司合作,为用户的数字资产安全和项目本身安全提供保障。

(3)增加交易延迟:操纵价格预言机是一个对时间敏感的操作,因为套利者总是在观察,并希望有机会优化任何次优市场。如果攻击者想把风险降到最低,他们会希望在单笔交易中完成操纵价格预言机所需的两笔交易,这样就不会有套利者夹在中间。作为协议开发者,可能只需要将用户进出系统之间的时间间隔增加1个区块的延迟就可以一定程度上防范此类攻击。

(4)时间加权平均价格(TWAP):Uniswap引入了一个TWAP预言机,供链上开发者使用。有文档详细地介绍了该预言机提供的具体安全保障。一般来说,对于长期没有链上拥堵的大型资产池来说,TWAP预言机对预言机操纵攻击有很强的抵抗力。不过,由于其实施的性质,在市场波动较大的时刻,它的响应速度可能不够快,而且只适用于链上已经有流动性的数字资产。

(5)M-of-N报告者机制:如今很多项目都在使用这种方法。Maker运行了一组由可信实体运营的喂价

四、SharkTeam智能合约审计服务

智能合约安全关系用户的财产安全,至关重要!区块链项目开发者应与专业的安全审计公司合作,为用户的数字资产安全和项目本身安全提供保障。

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

  • SharkTeam为客户提供高级别的区块链安全服务,区块链安全专家团队7*24小时为智能合约提供全生命周期的安全保障,服务包括:VIP安全审计服务、VIP合规审计服务、安全事故应急响应等。

  • SharkTeam也提供自动化审计工具,自动化审计以云服务的方式为用户提供服务。运用符号执行、形式化验证等智能合约分析技术,满足开发者智能合约日常审计需求。

上一篇 下一篇

猜你喜欢

  • 红海中崛起,Celo打造去中心化移动支付

    红海中崛起,Celo打造去中心化移动支付

    作者:Rachel出品:2020年,Celo繁荣联盟因Libra(Diem前身)协会成员、联合创始人的加入,在币圈一炮而红,再加上a16z、Polychain的加持,自诞生起,Celo一路走得颇为顺利,致力于移动端支付市场的稳定币发展,生态也逐渐繁荣。顺应当下行业趋势,8月底,Aave、Curve...

    7天前17阅读更多
  • Arbitrum来势汹汹,L2助推以太坊稳固霸主地位

    Arbitrum来势汹汹,L2助推以太坊稳固霸主地位

    作者:陈一晚风出品:最近几天,数字资产领域备受瞩目的就是Arbitrum的爆发式增长。据DuneAnalytics统计数据显示,以太坊Layer2网络Arbitrum的资产桥TVL已突破21亿美元,其7天的TVL增长率超过了3200%,这样惊人的成绩,让大众都开始重新对以太坊L2燃起了斗志。据...

    7天前13阅读更多
  • SharkTeam独家分析 | 闪电贷攻击:Zabu Finance被黑事件分析

    SharkTeam独家分析 | 闪电贷攻击:Zabu Finance被黑事件分析

    北京时间9月12日,Avalanche上ZabuFinance项目遭受闪电贷攻击。攻击流程与之前发生的多起安全事件非常相似,内部的交易攻击手法与今年7月份发生的PolyYeldFinance攻击事件相同。均使用当前合约的代币余额作为除数来计算奖励因子,攻击者利用合约的漏洞使得合约的余额消耗到...

    1周前17阅读更多
  • Yam Finance将把误造的200亿枚YAM发送至其DAO金库,在下一个链上治理提案中销毁

    Yam Finance将把误造的200亿枚YAM发送至其DAO金库,在下一个链上治理提案中销毁

    9月13日消息,DeFi项目YamFinance发布YAM铸造漏洞事件分析,团队于9月9日发现因Yam的链上治理提案YIP-79,错误地铸造了200亿枚YAM代币,并将它们发送到YAM多重签名地址,但由于YAM代币合约不允许发送至销毁地址,因此无法直接从多重签名地址中销毁它们。团队表示解决方案是...

    1周前13阅读更多
  • Cardano主网部署Alonzo硬分叉升级并启用智能合约功能

    Cardano主网部署Alonzo硬分叉升级并启用智能合约功能

    9月13日消息,Cardano开发公司InputOutput发推表示,已在Cardano主网部署了Alonzo硬分叉升级,正式进入智能合约时代,将通过HFC(硬分叉组合器)协议升级事件将Plutus智能合约功能部署到Cardano主网上。团队表示接下来的几个月将继续每两周发布一次代码更新,并定期...

    1周前14阅读更多

网友评论