Balancer因通縮代幣STA遭遇閃電貸攻擊,價值50萬美元資產被黑

來源 | 巴比特資訊

封圖 | CSDN 下載自視覺中國 

寫在前面:北京時間6月29日,知名defi項目Balancer的兩個資產池遭遇閃電貸攻擊,價值50萬美元的代幣被攻擊者抽走,對此,defi服務商1inch及Balancer項目方相繼對攻擊事件進行了覆盤。此外,Balancer聯合創始人兼CTO Mike McDonald還提醒稱,任何惡意的ERC20代幣都有可能被添加到Balancer合約層,因此需要注意這種未知的風險,根據此前的計劃,Balancer很快將進行第三次安全審計。

今天,至少有兩個Balancer多幣資產池遭到閃電貸攻擊,導致價值50萬美元的資產被耗盡,原因是AMM(自動化做市商)和通縮代幣模型環境造成的漏洞。

Balancer池是類似Uniswap的自動做市商(AMM),其包含了多種資產,並通過特殊數學公式形成價格,爲交換任何資產創造套利機會。

據defi服務商1inch分析,攻擊者向以太坊主網發送了一筆複雜的交易,導致對其中一個Balancer資產池發起攻擊,幾分鐘後,其發起了第二筆交易,並耗盡了另一個Balancer資產池,以下是1inch編寫的分析報告:

  1. 攻擊者使用智能合約在單筆交易中自動執行多個操作。在第一步,攻擊者通過閃電貸從dYdX獲得10.4萬 WETH,這些資金被用於將WETH與STA 代幣來回交換24次,從而將STA餘額從Balancer池中抽走,然後池中資產變成了1 weiSTA(0.000000000001 STA)。

  2. 造成這個問題的原因在於,Balancer資產池合約跟蹤合約中的代幣餘額,而STA代幣有一個通縮模型,從接收方收取1%的傳輸費,從而導致transfer()和 transferFrom() 的錯誤行爲。因此,每當攻擊者將WETH交換到STA時,Balancer池收到的STA就比預期的少1%。

  3. 然後下一步,攻擊者多次將1 weiSTA換成WETH,由於STA代幣傳輸費的實施,資產池中從未收到STA,但它卻釋放了WETH。重複相同的步驟,攻擊者就從Balancer資產池中抽走了WBTC、SNX以及LINK代幣餘額。

  4. 而最後一步,攻擊者向dYdX償還了10.4萬WETH,攻擊者通過存入一些weiSTA迅速增加其在Balancer 池中的份額,然後,他通過Uniswap V2將收集的Balancer池代幣交換成13.6萬STA,然後再次將13.6萬STA交換成109 WETH 。

  5. 所有被盜資金都被轉移到以下地址:0xbf675c80540111a310b06e1482f9127ef4e7469a;

1inch總結稱:這次攻擊的幕後黑手,是一位非常老練的智能合約工程師,他對領先的DeFi協議有着廣泛的知識和理解。 顯然,這次攻擊是有着充分計劃的,此外,他還用Tornado Cash來獲得初始資金,用於部署智能合約和執行攻擊,從而隱藏了ETH的來源。

Balancer項目方的分析與反應

在攻擊發生後,Balancer項目方也進行了分析:

  1. 通過閃電貸從dYdX借出ETH並轉換爲WETH;

  2. 不斷交易 WETH & STA;

  3. 在每筆交易中,STA都有一筆轉移費,而資產池希望它在沒有這筆費用的情況下獲得餘額;

  4. 經過足夠的調用後,攻擊者調用gulp(),該函數將代幣餘額的內部池記帳同步到代幣跟蹤器合約中存儲的實際餘額;

  5. 由於STA的餘額接近於零,因此它相對於其他代幣的價格非常高,攻擊者現在可以使用STA,以極低的成本交換池中的其他資產;

對此,Balancer聯合創始人兼CTO Mike McDonald在博客中寫道:

“儘管事先我們並不知道這種特定類型的攻擊是可能的,但我們在文檔、discord及其他渠道中始終警告ERC-20與傳輸費可能在協議中產生的意外影響。這就是爲什麼STA不包含在最近彙總的BAL 挖礦白名單中的原因。

該系統是爲符合ERC20標準而設計的,當代幣表現出意外的行爲時,可能會發生不良情況。Balancer是一種無需許可的協議,始終可以在合約層添加損壞或惡意的代幣。

至於下一步,我們將開始向UI黑名單中添加傳輸費代幣,類似於我們對無bool轉移代幣所做的一樣。請注意,這些列表並不詳盡,任何新代幣都可以隨時添加到Balancer。

我們將添加更多文檔,說明這些資產池如何工作,以及存在漏洞或惡意設計的代幣可能如何從資產池中耗盡資產的風險。

Balancer已經過2次全面審覈,並且已經制定了第三次審覈計劃(在今天之前),這次審覈很快將開始。我們將繼續審覈和審查Balancer協議。

推薦閱讀

真香,朕在看了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章