0

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

 3 years ago
source link: https://www.tuoniaox.com/news/p-500265.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

SharkTeam 2021-05-13 21:21
article_qmarks.svg 摘要:

北京时间2021年5月13日,DeFi 质押和流动性策略平台 xToken 遭到攻击,xBNTa Bancor 池以及 xSNXa Balancer 池立即被耗尽,造成约 2500 万美元损失。

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

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

image.png

一、事件分析

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

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

image.png

另一个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的价格会变得非常低。

image.png

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

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

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

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

image.png

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

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

image.png

  • 操纵预言机

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

image.png

操纵预言机攻击的基础模型(序号代表攻击步骤,实线表示必要步骤,虚线代表或有步骤;攻击目标的净值计算环节和 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运行了一组由可信实体运营的喂价来源,Compound创建了Open Oracle,并拥有Coinbase等报告者,Chainlink聚合了Chainlink运营商的价格数据,并在链上公开。此方法也可有效的防范操纵预言机攻击。

四、SharkTeam智能合约审计服务

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

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

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

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

image.png

来源:SharkTeam

和11万人同时接收最新行情资讯

搜“鸵鸟区块链”下载

和2万人一起加入鸵鸟社群

添加微信ID:Blockchain610

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK