以太坊:详解DeFi协议bZx二次被黑:攻击手法是怎样的,如何防御?

作者:yudan@慢雾安全团队

编者注:原标题为《详解DeFi协议bZx二次被黑》

前言

2月18日早,bZx疑似遭遇第二次攻击,不同的是本次的对象是ETH/sUSD交易对,但也许有人会有疑问,sUSD不是对标USD的稳定币吗?这都能被攻击?攻击手法具体是怎样的?带着这样的疑问,针对此次事件,慢雾安全团队接下来将复盘这两次攻击过程。

在第一次攻击中,攻击者结合Flashloan和Compound中的贷款,对bZx实施攻击,主要分成以下几步:

从dYdX借了10000个ETH

到Compound用5500ETH借了112个BTC准备抛售

到bZx中用1300个ETH开5倍杠杆做空,换了51.345576个BTC,而这里换取的BTC是通过KyberNetwork来获取价格的,然而KyberNetwork最终还是调用Uniswap来获取价格,5倍杠杆开完后兑换回来的51个BTC实际上是拉高了UniSwap中BTC/ETH的价格,换取价格是1/109,但是实际上大盘的价格不会拉到这么多

调查:大多数人根本不知道Web3是什么:金色财经报道,在民意调查公司YouGov与以太坊软件公司Consensys最近进行的一项调查中,全球各地的人们被问及他们对新兴技术的认识、他们对互联网经济状况的看法。调查发现,即使听说过,也没有多少人知道Web3是什么。在4月26日至5月18日期间对15个国家的15,000多人进行了调查。他们被问到了32个问题,与Web3、加密货币以及他们对当前互联网生态系统的看法有关。调查显示,全球24%的受访者表示至少了解Web3,但只有8%的人表示非常熟悉,16%的人表示有些熟悉。相比之下,37%的人表示他们根本不知道Web3。[2023/6/28 22:04:25]

用从Compound借来的112个BTC来在UniSwap中卖掉,由于第三步中bZx中的5倍杠杆已经把价格拉高,所以这个时候出售ETH肯定是赚的,然后卖了6871个ETH

Compound总法律顾问:除非很清楚自己在做什么,否则不要在DeFi上投资:Compound总法律顾问Jake Chervinsky发推称:“尽管我对DeFi实验很着迷,即使是很混乱的那种项目,但我根本不想鼓励投机。大多数人应该坚持BTC和ETH,这样做的风险已经够大了。除非你真的知道你在做什么,否则不要在DeFi(代币或协议)上投资。”[2020/8/16]

归还dYdX中的借贷

第二次攻击与之前稍有不同,但核心都在于控制预言机价格,并通过操纵预言机价格获利。

注:下文中出现的WETH是ETH的token化代币,可统一认为是ETH。与ETH之间的兑换比例是1:1

细节剖析

本次发生攻击的交易哈希为:

0x762881b07feb63c436dee38edd4ff1f7a74c33091e534af56c9f7d49b5ecac15

听证会 | 扎克伯格:应让Libra发行,看看市场有什么反应:金色财经直播报道,在今日听证会上,议员Frank Lucas,你们如何说服那些没有银行账户的人,让他们不信任银行,却使用Facebook的服务吗?扎克伯格回答说,他现在也不知道如何找到答案,唯一的办法是让Libra发行出来,然后看看市场会有什么反应。[2019/10/23]

通过etherscan上的分析,我们看到这笔交易中发生了大量的token转账。

这么多转账交易中,攻击者一共购买了20次sUSD,最终获利离场,那么攻击者具体是怎么操作的呢?我们使用区块浏览器bloxy.info来做进一步分析。

声音 | Circle CEO:不知道什么时候会重新安排午餐时间 但很期待与巴菲特讨论加密货币:据彭博社消息,近日,Circle首席执行官Jeremy Allaire在采访时再次谈及孙宇晨与巴菲特的午餐一事。他表示,“我不知道什么时候会重新安排时间,但我想说的是,我当然非常期待与巴菲特讨论加密货币。如果你目睹了互联网在过去20年的崛起,你已经看到了互联网基础设施如何改变了媒体、通讯、零售、商业和信息产业……我认为这与我们现在看到的加密货币和区块链的诞生是非常相似的。在未来20年里,区块链和加密货币对全球经济体系的重要性将不亚于互联网对通信的变革。因此,我想和巴菲特谈谈这种转变是什么样子的,以及从投资的角度来看,这种转变带来了哪些机遇。”[2019/9/14]

1、赛前准备

和第一次一样,首先攻击者需要从Flashloan借入一定的金额开始本次的攻击,第一次攻击是从?dYdX?借入10000ETH,这次,攻击者选择从bZx本身支持的Flashloan下手,借入7500个ETH。

福建省发布首个数字藏品行业团体标准:8月3日消息,福建省首个区块链行业团体标准《区块链数字藏品通用技术要求》(征求意见稿)正式发布,并对外广泛征求意见。该技术标准由福建省区块链协会发布,熵链科技(厦门)有限公司、特步 (中国)有限公司等二十余家企业共同参与标准制定。

本版技术标准从区块链技术选型、生命周期管理要求、数字藏品技术存储要求、数字藏品核验等多个角度为数字藏品行业设定技术标准,指明行业未来发展方向。本次对外发布标准“征求意见稿”,旨在邀请区块链、数字藏品相关行业有识之士参与,提出宝贵意见,共同为数字藏品建设发展出谋划策,为数字中国建设做出贡献。[2022/8/3 2:57:07]

2、发球

在完成从bZx的借入之后,攻击者开始通过Kyber进行sUSD的买入操作,第一次使用了540个ETH购买了92,419.7个sUSD,这个操作令WETH/sUSD的价格瞬间拉低,捧高了sUSD的价格。这次的交易兑换的比例大概为1:170,而Kyber最终是通过UniSwap来进行兑换的,所以此时Uniswap的WETH/sUSD处于低位,反过来,sUSD/WETH升高。

在完成第一次的540个ETH的兑换之后,攻击者再次在Kyber进行18次小额度的兑换,每次使用20个ETH兑换sUSD,从etherscan我们能够看到,每一次的兑换回来的sUSD金额在不断减少。

这表明sUSD/WETH的价格被进一步拉升,这加剧了Uniswap中sUSD/WETH的价格,此时价格已经达到顶峰了,大概是1:157。

在完成以上两步操作之后,攻击者已经完成狩猎前的准备,随时可以开始攻击。

3、一杆进洞

在完成对sUSD/WETH的拉升后,攻击者此时需要采集大量的sUSD,为后续兑换WETH做准备。为了达成这个目的,攻击者向Synthetix发起sUSD的购买,通过向Synthetix发送6000ETH购买sUSD,直接把Synthetix中的sUSD买空,Synthetix合约返还2482个ETH给攻击者。

完成了上面的操作后,攻击者直接对bZx发动总攻,直接用之前操作得来的一共1,099,841个sUSD向bZx兑换WETH,此时由于bZx兑换还是要去查询Uniswap的sUSD/WETH的价格,而这个价格已经被攻击者人为拉得很高了,此时兑换,就能通过1,099,841个sUSD换取大量的WETH,此次交易一共用1,099,841个sUSD换取了6792个WETH,此时攻击已经完成。

4、归还借贷

完成了对bZx的攻击之后,将7500ETH归还给bZx,完成闪电贷流程,从bZx来,再回到bZx去,还使bZx遭受了损失。

赛后复盘

通过分析攻击者的攻击手法,我们统计下攻击者在攻击过程中的支出和收入情况。

收入

7500=>bZx闪电贷+2482=>Synthetix返还+6792=>使用sUSD在bZX兑换WETH=16774ETH

支出

540+(20*18)=>拉高sUSD/WETH价格+6000=>买空sUSD+7500=>归还bZx闪电贷=14400ETH

总的收益为:16774-14400=2374ETH

防御建议

两次攻击的主要原因还是因为Uniswap的价格的剧烈变化最终导致资产的损失,这本该是正常的市场行为,但是通过恶意操纵市场,攻击者可通过多种方式压低价格,使项目方造成损失。针对这种通过操纵市场进行获利的攻击,慢雾安全团队给出如下建议:

项目方在使用预言机获取外部价格的时候,应设置保险机制,每一次在进行代币兑换时,都应保存当前交易对的兑换价格,并与上一次保存的兑换价格进行对比,如果波动过大,应及时暂停交易。防止市场被恶意操纵,带来损失。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-4:463ms