CertiK:在DeFi有人能逃過黑客攻擊嗎——xToken攻擊事件簡析
CertiK
2021-05-14 06:39
本文约2008字,阅读全文需要约8分钟
北京時間5月13日,CertiK安全技術團隊發現DeFi質押和流動性策略平台xToken遭到攻擊

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

攻擊是如何發生的?
攻擊是如何發生的?
如果資金未能及時返回,則交易將被撤回,從而確保儲備池的安全。
如果資金未能及時返回,則交易將被撤回,從而確保儲備池的安全。
閃電貸可以在無需提供任何抵押的情況下進行貸款,當然所有操作必須在一個交易區塊內完成。
開發人員可以從Aave或dYdX等協議中藉貸,條件是在交易結束之前將流動資金返還到資金池中。
如果資金未能及時返回,則交易將被撤回,從而確保儲備池的安全。
閃電貸具備多種功能和用例,但我們目前看到的多數閃電貸都被用於套利交易。
二級標題
二級標題

細節分析

  • 針對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的價格。
    二級標題
    二級標題
  • 針對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來獲取利潤。
因此,即使是攻擊者也需要警惕黑暗森林中所有潛伏的掠奪者。
寫在結尾
寫在結尾

寫在結尾

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

這也再次向我們揭露了一個事實:靜態安全審計並無法保障100%的安全。
安全並非是一次性的,它是一個持續的過程。
迄今為止,CertiK已進行了超過700次的審計,保護了超過300億美元的數字資產與軟件系統免受安全損失。
迄今為止,CertiK已進行了超過700次的審計,保護了超過300億美元的數字資產與軟件系統免受安全損失。
迄今為止,CertiK已進行了超過700次的審計,保護了超過300億美元的數字資產與軟件系統免受安全損失。
  • 歡迎點擊CertiK公眾號底部對話框,留言免費獲取諮詢及報價!

CertiK
作者文库