在 DeFi,有人能逃過駭客攻擊嗎——xToken 攻擊事件簡析

買賣虛擬貨幣

北京時間5月13日,CertiK安全技術團隊發現DeFi質押和流動性策略平臺xToken遭到攻擊,xBNTaBancor池以及xSNXaBalancer池立即被耗盡,造成近2500萬美元損失。

5月還未過去一半的時間,這次的攻擊事件加上5月已發生的其他攻擊事件,竟已有大約8500萬美元被盜了。

攻擊是如何發生的?

CertiK安全團隊在2020年發現的關鍵bug分為三類:邏輯錯誤,閃電貸和專案方欺詐。

本次事件部分可以算的上是一次並非“典型”的閃電貸攻擊。

閃電貸可以在無需提供任何抵押的情況下進行貸款,當然所有操作必須在一個交易區塊內完成。

開發人員可以從Aave或dYdX等協議中借貸,條件是在交易結束之前將流動資金返還到資金池中。

如果資金未能及時返回,則交易將被撤回,從而確保儲備池的安全。

閃電貸具備多種功能和用例,但我們目前看到的多數閃電貸都被用於套利交易。

而惡意使用方式則是攻擊其他一些DeFi協議或操縱價格預言機的價格——這也正是此次xToken發生的情況。

弗蘭克研究員在推特上解釋攻擊是如何發生的

細節分析

針對xSNXa的攻擊

1. 駭客在dYdX上利用閃電貸借出大約61800個ETH。

2. 在Aave上存入10000個ETH借出56.4萬個SNX,然後透過SushiSwap將5500個ETH換成約70萬個SNX。

之後在Uniswap v2上賣出120萬SNX,獲得818ETH,藉此大大降低了SNX的價格。

3. 在價格降低後,攻擊者只用了0.12個ETH就鑄造了12億xSNXa。

這是因為該協議透過Kyber價格預言機購買SNX並鑄造xSNXa,而Kyber價格預言機參照了Uniswap v2的價格。

4. 然而在Balancer協議中,xSNXa的價格還是原來的價格,這使得攻擊者可以將1.05億 xSNX換成414個 ETH。

5. 之後,攻擊者在Uniswap和Sushiswap上用ETH購買SNX來償還Aave上的借貸, 將現有的xSNXa賣給Balancer的SNX/ETH/xSNXa(25/25/50)池子, 獲利的同時償還了dYdX的閃電貸。

針對xBNTa的攻擊

xBNTa的合約透過ETH來鑄造xBNTa。

其原理是在智慧合約中在Bancor協議中將ETH換成BNT,並利用換來的BNT數量來計算鑄造的xBNTa數量。

然而合約中的"mint"方法並未驗證用ETH換來的幣是否為BNT,攻擊者使用了一個總量極大的代幣SPD替換了BNT,偽造了BNT的數量,使其可以無限增發xBNTa。

攻擊者呼叫了“mint”方法四次,每次使用0.03ETH鑄造大量的xBNTa,最終獲得了39億xBNTa,並將獲得的一半的xBNTa換成了大約78萬BNT。

但為什麼說這次駭客攻擊和以往的閃電貸攻擊不同呢?

因為攻擊者的這筆交易使用了Flashbots MEV來實施,保證了交易的私密性, 防止這筆交易在和AMM互動時被別的使用者進行了“三明治攻擊”。

■ 術語詳解

①Flashbots是一個研究和開發組織,成立的初衷是緩解由 "礦工可抽取價值(miner-extractable value, MEV)" 給智慧合約平臺型區塊鏈帶來的負面影響和生存風險。

他們提議為 MEV設計一種無需許可、透明且公平的生態系統,來保衛以太坊的理念。

②礦工可抽取價值(MEV)是一種設計用來研究共識安全的標準,它模擬了礦工(或節點驗證者)透過任意包含、去除或重新排序他們產生的區塊中的交易的能力而獲得的利潤。

例如,攻擊者可以看到一個有利可圖的交易,並試圖透過支付更高的交易費用來提前進行交易,從而獲得利潤。或者透過對AMM交易進行三明治攻擊。

③三明治攻擊:當攻擊者在交易池中觀察到一筆資產X換取資產Y的交易後,攻擊者可以提前買入資產Y,隨後讓受害者執行交易來提升Y資產的價格,然後在Y資產價格上升後出售先前購入的資產Y來獲取利潤。

因此,即使是攻擊者也需要警惕黑暗森林中所有潛伏的掠奪者。

Flashbots需要使用者使用個人的API金鑰,攻擊者極有可能在使用Flashbots的時候留下自己的蹤跡。

因此查詢該API金鑰的使用歷史也可作為追回損失的手段之一。

寫在結尾

xToken作為一個已經過大型安全公司審計的優秀DeFi專案遭受這樣的攻擊其實是並不常見的。

這也再次向我們揭露了一個事實:靜態安全審計並無法保障100%的安全。

安全並非是一次性的,它是一個持續的過程。

區塊鏈技術日新月異,新的攻擊方式同樣層出不窮。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;