木星链 木星链
Ctrl+D收藏木星链

ETH:PeckShield:硬核技术解析,bZx协议遭黑客漏洞攻击始末

作者:

时间:1900/1/1 0:00:00

编者按:本文来自PeckShield,Odaily星球日报经授权转载。02月15日,bZx团队在官方电报群上发出公告,称有黑客对bZx协议进行了漏洞攻击,且已暂停除了借贷外的其他功能。对于攻击细节,bZx官方并没有进行详细披露。PeckShield安全人员主动跟进bZx攻击事件,发现这起事件是针对DeFi项目间共享可组合流动性的设计进行攻击,特别在有杠杆交易及借贷功能的DeFi项目里,该问题会更容易被利用。

Figure1:FiveArbitrageStepsinbZxHack漏洞的攻击细节如下:此攻击事件发生在北京时间2020-02-1509:38:57。攻击者的transaction信息可以在etherscan上查到。此攻击过程可以分为以下五个步骤:第一步:闪贷获取可用资金

攻击者通过在部署的合约中调用了dYdX闪贷功能借入了10,000个ETH。这部分是已知的dYdX的基本借贷功能,我们不做进一步解释。

ApeCoin新提案拟为以太坊社区提供100万美元捐赠:4月16日消息,ApeCoin社区发起新提案AIP-230,旨在为以太坊社区提供100万美元捐赠,其中包括向ETH Global捐赠30万美元,以及向11场ApeCoin黑客松和至少5项公益活动赞助70万美元。[2023/4/16 14:07:00]

Figure2:FlashloanBorrowingFromdYdX当第一步操作过后,如下表中攻击者资产,此时并没有收益:

第二步:囤积WBTC现货

通过第一步闪贷获得ETH后,攻击者将其中的5,500ETH存入Compound作为抵押品,贷出112WBTC。这也是正常的Compound借贷操作,贷出的WBTC将在第四步中被抛售。

Figure3:WBTCHoardingFromCompound在此步骤操作后,我们可以看到关于攻击者控制的资产发生了改变,但此时仍然没有获益:

TradeDog Group推出1亿美元Web3 Special Situation基金:金色财经报道,TradeDog Group 宣布推出 1 亿美元Web3 特殊情况基金(Web3 Special Situation Fund),Web3 孵化器 TdeFi 将成为该基金战略合作伙伴。该基金将重组并投资于产品和业务良好但 Token 表现不佳的项目。据悉,多策略基金 TD VC 将会把一部分资金分配给特殊情况投资,TD VC 将根据 Token 项目要求为加密企业提供相匹配的资金注入,以支持数字生态系统长期增长,使 Web3 领域的创造者能够进一步发展现有的多层区块链生态系统。[2022/12/28 22:11:24]

第三步:杠杆拉盘WBTC价格

利用bZx的杠杆交易功能,做空ETH购入大量WBTC。具体步骤是:攻击者存入1,300ETH并调用bZx杠杆交易功能,即接口mintWithEther(),在内部会继续调用接口marginTradeFromDeposit()。接下来,攻击者将从bZx5倍杠杆获得的5,637.62个ETH,通过KyberSwap兑换成51.345576WBTC。请注意,此处做空ETH是借来的5倍。本次交易导致将WETH/WBTC的兑换率提高到109.8,大约是正常兑换率的3倍。为了完成此交易,KyberSwap基本上会查询其储备金并找到最优惠的汇率,最终只有Uniswap能提供这样的流通性,因此这个交易从本质上推动了Uniswap中WBTC价格上涨了3倍。

PeckShield:Defrost_Finance被黑客利用,损失约173,000美元:金色财经报道,PeckShield监测,Defrost_Finance被利用,导致黑客获得约173,000美元的收益。由于 flashloan()/deposit() 函数缺少可重入锁,因此黑客攻击成为可能,黑客使用该函数在不偿还的情况下借出所有 USDC。[2022/12/23 22:03:53]

Figure4:MarginPumpingWithbZx(andKyber+Uniswap)应该注意的是,这步操作在合约内部实现有个安全检查逻辑,但是实际上在交易之后并没有验证锁仓值。也就是说,当攻击发生时,此检查没有启用,我们在后面会有一节详细介绍此合约中的问题。在这一步之后,我们注意到关于黑客控制的资产有以下改变。不过,在这一步之后仍然没有获利。

Swipe宣布Swipechain测试网上线,开发人员可以开始在协议上运行节点:官方消息,多资产数字钱包和Visa借记卡平台Swipe宣布,Swipechain测试网现已上线,开发人员可以开始在协议上运行节点。[2021/7/6 0:31:50]

第四步:抛售WBTC现货

在Uniswap中WBTC价格飙升后,攻击者将第二步中通过Compound借的112WBTC全部卖给Uniswap并返还了相应的WETH。这次交易攻击者共计获得6,871.41个ETH的净额作为回报。在这一步之后,可以看到攻击者已经获得不少利润。

Figure5:WBTCDumpingWithUniswap

第五步:闪贷还款

攻击者从抛售的112WBTC中获得的6,871.41个ETH,将闪贷的10,000个ETH偿还给dYdX,从而完成闪贷还款。在这一步之后,我们重新计算了以下资产详情。结果显示,攻击者通过此次攻击获得71ETH,加上这两个锁仓:Compound和bZx。bZx锁仓处于违约状态,Compound的锁仓是有利可图的。显然,在攻击之后,攻击者就开始偿还Compoud债务以赎回抵押的5,500个WETH。由于bZx锁仓已经处于违约状态,攻击者也不再感兴趣了。

Specter发布v1.4.6,添加支持硬件钱包Keystone:基于Bitcoin Core且专注连接硬件钱包的桌面钱包工具Specter发布v1.4.6,包括添加支持硬件钱包Keystone、重新设计Tor设置屏幕、在备份时导出设备数据、重构PSBT创建、错误修复和改进等。[2021/6/29 0:13:35]

参考1WBTC=38.5WETH的平均市场价格,若攻击者以市场价格购入112WBTC花费约需4,300个ETH。此112WBTC用以清偿Compond债务并取回抵押品5,500ETH,则最终攻击者总共获利为71WETH+5,500WETH-4,300ETH=1,271ETH,合计大约$355,880。硬核解析:bZx可规避风险代码逻辑缺陷

通过前面攻击者在合约中实现的步骤可以看出,问题的核心原因是在第三步调用marginTradeFromDeposit()通过借贷的1,300ETH,加5倍杠杆来实现做空ETH/WBTC交易的,于是我们进一步审查合约代码,发现这是一个「可避免的套利机会」,但因为代码存在的逻辑错误造成可用于规避风险的代码逻辑没有生效。具体代码追踪如下:

首先是marginTradeFromDeposit()调用_borrowTokenAndUse(),此处由于是以存入的资产作杠杆交易,第四个参数为true。

在_borrowTokenAndUse()里,当amountIsADeposit为true时,调用_getBorrowAmountAndRate()并且将borrowAmount存入sentAmounts。

在1,355行,sentAmounts被设置为sentAmounts并且于第1,370行调用_borrowTokenAndUseFinal()

经由IBZxinterface进入bZxContract的takeOrderFromiToken()函数。bZxContract属于另一个合约iTokens_loanOpeningFunctions于是我们我们继续分析合约代码,在函数中发现有一个关键的逻辑判断:

在第148行,bZx事实上尝试利用oracle合约的shouldLiquidate()检查这个杠杆交易的仓位是否健康。然而,因为第一个条件已经为true,则继续执行,而忽略了shouldLiquidate()的逻辑判断。事实上,在合约BZxOracle的shouldLiquidate()中实现了对getCurrentMarginAmount()<=loanOrder.maintenanceMarginAmount判断,如果执行到shouldLiquidate()就可以有效避免这个攻击的发生。

如前所述,这是一次很有意思的攻击,它结合了各种有趣的特性,如贷款、杠杆交易和拉高价格等。之所以可能发生这种攻击,是因为当前项目共享可组合流动性的设计。特别是,5倍杠杆交易允许用户以相对较低的成本借入大量代币,加上DeFi项目间共享的流动性,导致交易价格更容易被操控。

标签:ETHBTCBZXWBTCETHE价格BTCS币BZX币Aave WBTC

Gate交易所热门资讯
数字货币:OKB领涨启示录

出品|CoinVoice文|辛夷OKB开启了一轮大涨,到2月15日晚间,突破了2018年的6.68美元,刷新了历史新高,OKB也跨入全球数字货币市值前十之列.

1900/1/1 0:00:00
COI:?FCoin受害者:连追两天两夜,我把张健亲属堵进了派出所

编者按:本文来自北纬31度,作者:CarmenTse,Odaily星球日报经授权转载。“谁在杭州,我们抓到李莹莹父母了!”.

1900/1/1 0:00:00
区块链:摩根大通在下一盘加密证券交易领域的大棋

作者:ClaireWu最近和摩根大通相关的新闻不绝于耳。我们来把故事串联起来,看看摩根大通究竟在下一盘什么大棋?2020年2月20日,据新浪财经新闻显示,摩根大通和高盛集团支持建立一个新的股票交.

1900/1/1 0:00:00
区块链:区块链技术将推动公益慈善机构变革

暨南大学传播学教授吴文虎说,「在社会出现阶层鸿沟、垄断群体依靠特权实现欲望的环境下,底层群体的被剥夺感很容易被扩大和加剧,敏感的民众迅速结成了集体不信任,因此,越是不透明的制度和立场.

1900/1/1 0:00:00
加密货币:星球前线 | 继印度、韩国等国之后,会有更多国家“站台”加密货币吗?

Odaily星球日报译者|薯条 过去几天,各国在加强加密货币采用方面令人瞩目,印度、韩国、德国和法国的金融监管机构和立法者都通过了对加密友好的法律,缓和了他们对加密货币的态度.

1900/1/1 0:00:00
比特币:比特币总量2100万是一种“宗教式”信仰?

币圈老生常谈的一个话题近日再次浮出水面:比特币的扩容。根据Trustnodes于2月24日的报道,比特币1MB区块的主要倡导者彼得托德PeterTodd称,比特币2100万枚的供应上限“实际上只.

1900/1/1 0:00:00