0VIX攻击事后分析及恢复步骤

2023年4月28日,0VIX协议遭遇了一次高度复杂的DeFi攻击,攻击者采用闪电贷、价格操控和毒性清算螺旋等手法,使0VIX协议损失净流动资金433万美元。攻击后,0VIX团队与法律及安全专家合作展开调查并计划恢复流动性,同时着手实施安全升级,以防止此类事件重演。

0VIX 漏洞后分析与恢复步骤

日期:2023年5月11日

概述:2023年4月28日,0VIX Protocol遭遇了一个DeFi漏洞攻击。该攻击涉及闪电贷、价格操纵和一种导致攻击者获利的有害清算螺旋。整个攻击在Polygon PoS区块高度#42054769的一个单一交易中执行。

I. 攻击概述

2023年4月28日,UTC时间10:45:16,攻击者针对0VIX Protocol进行了攻击,区块高度为42054769。攻击者使用了三个地址(0x4070x49c0x702)执行了一项复杂的漏洞攻击,涉及闪电贷、价格操纵和自我执行的有害清算螺旋。所有这一切都发生在一个包含278个事件的交易中。此次攻击导致0VIX Protocol的净流动性损失为433万美元,资金在转移到多个不同的智能合约之前,通过Stargate Finance桥接到以太坊1069 ETH,并随后存入Tornado Cash。所有参与此次漏洞的实体的资金流动总览见下图。

总结出的资金流动总览。以未经操纵的(攻击前)GHST和vGHST价格计算以美元计值。累计的AMM费用总计用于匹配所有实体的最终余额。0VIX内部的流动金额应视为指示性,因为在整个攻击过程中oToken的分享价格不断变化。尽管如此,最终余额仍可被视为准确到0.1%的精度。

II. 攻击流程

A) 设定

攻击者通过地址0x407发起攻击,闪电贷总计2450万美元的USDC、615万美元的USDT和195万美元的GHST,来自AAVE和Balancer平台。615万美元的USDT被存入0VIX Protocol,并用于借入各种资产,达到了0x407的借款上限。攻击者的借款忽略了stMATIC、jEUR、gDAI和MAI市场。

随后,0x407将2450万美元的USDC和283.146k vGHST(用部分闪电贷的GHST余额铸造)转移到0x49c。后者将资金存入0VIX Protocol并借入更多的稳定币流动性,在此过程中循环利用了所有可用的vGHST(共计借款11392k vGHST)。0x49c还借入720k USDC和541.9万美元的USDT。借入的资金随后连同在循环过程中的所有ovGHST余额一起转回0x407。在这些操作结束时,0x49c的资产组合保持了79.7%的超额抵押。

B) 漏洞

接着,0x407使用初始闪电贷剩余的165.6万GHST对vGHST价格进行了操纵,将vGHST-GHST的汇率从1.03抬升到1.78。0VIX使用的预言机按照GotchiVault的建议构建,根据GotchiVault中GHST代币的总量与该金库未流通的股份计算汇率。通过使用_GHST.transfer(vault)_而不是_vault.enter()_将GHST捐赠给金库,攻击者修改了金库持有的GHST总量,而未更改股份数量。这导致了ovGHST价格的72%的激增。因此,0x49c的vGHST借款增加了价值,使得其资产组合以135%的贷款价值比(LTV)出现了低抵押的情况。

攻击过程中0x49c的资产组合的贷款价值比(LTV)变化。X轴追踪与0x49c资金有关的事件数量。

攻击者使用0x407触发了24次连续的强制清算,从0x49c那里追回USDC。由于0x49c的LTV超过了90.9%的有害阈值(0VIX上的清算激励静态设置为10%),每次清算反而增加了0x49c的LTV,而不是减少。这样就确保了清算将可以持续执行,形成一种有害清算螺旋。该螺旋在0x49c的所有抵押品被没收时结束,留下了646万美元的坏账在0x49c的资产组合上。产生的一部分坏账,总值735k美元,被作为协议的费用分享捕获。由于该协议的杠杆特性,攻击者为清算费用(0VIX本该收取的费用)借入了足够的USDC,以使得在攻击结束时,0VIX的USDC流动性被完全抽干。

C) 退出

在清算螺旋终止后,0x407从协议中赎回了2376.5万美元的USDC和336k vGHST。从起始闪电贷的3280万美元中,直接存入0VIX的金额为3092万美元,0x407从协议中提取的代币价值总额为3519万美元。包括回收的闪电贷资金、0x49c上剩余的646万美元坏账、名义价值为$139万美元的0x407的超额抵押剩余仓位,以及名义上支付给0VIX的735k美元的清算收入份额。

此次漏洞攻击中提取的总价值为433万美元,全部由0VIX的用户资金支付。其中,140万的多余GHST代币留在GotchiVault,用于处理用户在价格上涨时的进一步提现,直到金库最终被停止,而978k GHST代币正在由Aavegotchi DAO和GotchiVault DAO返还至0VIX。攻击者随后将所有资产换成以太坊以偿还初始的闪电贷。由于GHST价格的突然上涨,许多兑换遭受了重大滑点成本。总体而言,0x407共计承担了79.2万美元的总成本。攻击者是否在AMMs中部署了其他流动性以试图捕获这些滑点成本的任何部分目前尚不清楚。

剩余的ETH被通过Stargate桥接到以太坊,存入地址0x702。攻击者立即将520 ETH存入Tornado Cash,第二天又转移了239 ETH。在将剩余的310 ETH保持沉默超过一周后,0x702在5月9日将最后一批ETH发送到Tornado Cash。截至撰写时,0x702不再持有任何资金

详细的技术流程图,追踪涉及攻击的各实体之间的基础代币资金流动。

III. 影响

本次攻击被我们的安全合作伙伴Hexagate实时发现。所有协议合约迅速被停止。在停止之前,还有额外的28万美元流动性通过正常操作流出协议。安全合作伙伴紧跟攻击者的资金转移到以太坊,并首先指出了0x407与GotchiVault的重大互动。0VIX团队迅速联系了GotchiVault团队,在攻击发生后12小时内暂停了他们的合约。在此期间,一些用户设法在价格激增时卖出了他们的vGHST代币。调查发现有一位特定用户(0x797ef3a808092557c6c54a0fae161fb41a3ccc5e)在攻击后约2小时内,通过价格操控成功提取了255,786 GHST代币(撰写时价值为256,000美元)的净利润。

在经过了一次GotchiVault DAO投票,得出了一种不常规的盗款分配方案后,0VIX已恢复前期的206k vGHST。余下的763k GHST仍由AaveGotchi DAO持有,以便支持该次攻击的实施,所有受影响方不断努力达成协议,因为AaveGotchi DAO对是否退还资金持保留态度。

由于触发价格操控所用的资金直接来自AAVE的闪电贷,该闪电贷是用0VIX用户的资金偿还的。因此,剩余的GHST数量无法与整个漏洞分离。

截至撰写时,协议目前可用流动性如下:

IV. 结论与讨论

0VIX Protocol因一起协调良好的原子DeFi漏洞攻击遭受了重大的损失,该攻击利用了闪电贷、价格操纵,以及自我造成的有害清算螺旋。在攻击的直接后果中,0VIX Protocol的净TVL(总供应减去借款)维持在140万美元,而事发前为580万美元。在考量了合同完全暂停之前,280,000美元的资产流出后,协议目前持有的总流动性大约为120万美元(见上表)。此数字未考虑自GotchiVault/Aavegotchi救援过程预期的额外96万美元。

这一事件突显出一旦触发的有害清算螺旋的风险。我们借此机会再次强调,这种脆弱性目前在所有以Compound和AAVE为基础的DeFi协议中均存在,因此亟需关注。预言机价格可以通过多种方式操控,有害清算螺旋则始终遵循同一基本机制。

为了防止这一已知的共同风险,团队已经开始着手解决这一问题。清算激励需要随着清算用户的贷款价值比进行调节,或者在用户的贷款价值比突破有害清算阈值时彻底停止清算。在0VIX上实施这些更改需要对核心合约进行重大调整。这涉及到开发人员的时间、风险评估以及安排新的审计。尽管0VIX核心团队当时正在积极处理这些,但在安全更改和增强风险措施得到全面落实之前,漏洞发生了。

观察钱包活动和合约部署,很明显在实施这次攻击之前进行了测试和准备。此外,我们发现攻击者在攻击的一个小时前,使用不同的钱包部署了几个类似的合约(0xbef0xb3d)。真正的攻击合约在攻击发生前一分钟部署。在对所有可疑合约进行反编译后发现,许多合约由于资金流动的错误会计而无法工作。更具体而言,旧合约试图进行25次清算而不是24次。攻击者最终在攻击前一分钟部署了他们的最终合约,并在一次交易中利用了该协议。

V. 致谢

特别感谢0VIX的主要安全合作伙伴Hexagate,他们在实时发现攻击并协助攻击分析、资金流动和损害评估方面发挥了重要作用。攻击后,我们打算进一步加深与他们的关系,近期将会宣布更多消息,因为Hexagate在攻击前能够检测到恶意合约。

恢复步骤

0VIX Protocol协会正在通过执法和安全专家的协助追踪攻击者并将其绳之以法。大家都全力以赴,尽快追回被盗的流动性,并将其分配给所有受影响的用户。

在让每个人都能恢复的利益之下,包括社区和协议。

在433万美元的净流动性损失中,978.3k GHST将在当前价值96万美元的情况下进行兑换并转移到0VIX,造成大约330万美元的流动性缺口(撰写时计算)。

截至目前,0VIX的总可用流动性约为230万美元(包括GotchiVault/Aavegotchi的资金)。

尽管一部分坏账(735k美元)被确认为协议费用,但由于没有足够的USDC流动性,无法将该费用提取并分配给受影响的用户。因此,或许可以考虑燃烧这些费用并将坏账减少735k美元。

协会将向Aavegotchi DAO请求归还被盗的768k GHST(当前价值约752k美元),这些GHST目前在他们手中。似乎Aavegotchi DAO希望在对此前从0VIX用户那里被盗的768k GHST采取任何措施之前,更深入地了解情况。第一步是发布此后分析,并帮助回答Aavegotchi DAO成员的任何问题。

协会将在恢复任何资金后,向社区提出治理提案中的资金分配选项。将考虑几个选项,目前正在仔细研究这些选项,以了解潜在的后果,届时将与更广泛的社区分享。

一旦制定了恢复计划,并实施了安全检查和额外升级,0VIX PoS上的操作将恢复。

目前在恢复0VIX Polygon PoS之前采取的安全升级措施包括:

  1. 在第一阶段,全面整合能够检测恶意链上活动的安全合作伙伴,并在可以执行漏洞或攻击之前暂停协议操作。

  2. 一旦可行,实施一种机制,在有害清算螺旋的情况下暂停清算,从而大大保护协议免受无力偿债的风险。

请通过关注官方Twitter了解最新信息。如有任何问题,以及加入我们社区中心,请访问0VIX的Discord

Twitter | Discord | Telegram | 网站 | Hexagate

免责声明

不构成财政或税务建议。此博客仅为教育用途,不是投资建议,也不是购买或出售任何资产或做出任何财政决定的邀请。此博客不构成税务建议。DeFi和整体加密领域仍在发展中,参与其中存在风险。请与你的会计师交谈。请自行研究。

  • 原文链接: keomprotocol.medium.com/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
keomprotocol
keomprotocol
江湖只有他的大名,没有他的介绍。