header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP

淺析幣安智能鏈生態安全事件

閱讀本文需 14 分鐘
安全就像達摩克里斯之劍,懸在衆人頭上,揮之不去。
原文標題:《淺析幣安智能鏈生態安全事件》
原文來源: 田七


最近幣安智能鏈(下文簡稱 BSC)上的 dApp 頻頻遭受黑客攻擊,由此引發的智能合約安全問題引起整個行業的廣泛關注和激烈討論。安全就像達摩克里斯之劍,懸在衆人頭上,揮之不去。


根據 rekt.news 上羅列的項目損失排行榜,涉及 BSC 上的項目共 10 個,損失金額總計 2.2 億美元。損失最多的項目是 Uranium Finance,高達 5720 萬美元。而 Merlin Labs,更是在遭受首次攻擊,緊急修復之後,再次被攻擊,短短兩天內被黑客光顧兩次。更有甚者如 Value DeFi,先後受到三次攻擊,簡直成爲黑客的後花園。




這些項目究竟暴露哪些被黑客利用的漏洞?事後他們又做出怎樣的應對措施?造成了哪些影響?對我們普通用戶有什麼教育及警示意義?接下來讓我們逐一分析。


PancakeBunny


PancakeBunny 是基於 PancakeSwap 和 Venus 建立的機槍池協議,曾經一度是 BSC 上鎖倉量最大的機槍池協議。2021 年 5 月 19 日,黑客通過閃電貸借入大量 BNB,並在 PancakeSwap 上與 BUSD 組成 LP,然後將 BNB 兌換成 BUSD 來操縱 LP 代幣價值,再通過調用 VaultFlipToFlip 的 getReward 函數,獲得 697 萬 BUNNY 的挖礦收益,最後砸盤這部分 BUNNY,獲利 4500 萬美元。


事後,PancakeBunny 首先暫停用戶對受影響池子的存款和取款操作,然後部署一個賠償池,受到影響的用戶可以從該池領取相應賠償。爲消除閃電貸對價格操縱的影響,轉而集成 Chainlink,通過 Chainlink 獲取可靠的價格信息數據。


Uranium Finance


Uranium Finance 是一款分叉 Uniswap,克隆到 BSC 上的去中心化交易平臺。但是他們在升級 v2 的時候,對 Uniswap 原代碼進行微小調整,有一行代碼少寫一個 0,使得黑客在 2021 年 4 月 28 號使用較小數額的代幣提走較大份額的流動性,最終導致流動性池損失 5720 萬美元。


事後 Uranium Finance 發表一篇漏洞分析文章,並呼籲用戶儘快移走資金,不要再向合約中提供流動性。自此之後,Uranium Finance 的官方推特再無更新。

 

Meerkat Finance


該項目的漏洞在於允許任何人成爲金庫所有者,並能提走所有資金。於是攻擊者在 2021 年 3 月 4 號通過初始化調用使得自己化身金庫所有人,取走金庫中的 BUSD 和 WBNB,價值 3200 萬美元。


項目方先聲稱這是一次黑客攻擊,然後刪除該聲明,並且退出電報羣。後來又有一個自稱是項目方成員的開發者表示這是一次壓力測試,旨在喚醒用戶的安全意識,資金將在一個新建的電報羣內有序退還。但是當我試圖打開該電報羣鏈接的時候,已經找不到該羣。顯然,這是一起有預謀的跑路事件,用戶對開發者的信任導致個人資金受損。


Spartan Protocol

 

這是一個合成資產協議,黑客在 5 月 2 號通過閃電貸借入 BNB,並將一部分 BNB 兌換成 SPARTA,然後組成 LP。利用 Spartan 池子份額計算漏洞,以較小的份額佔比提走較大的資金,導致 Spartan 池子損失 3050 萬美元。


團隊事後發行新通證 SPARTA,並將流動性池升級到 V2,目前項目仍在更新和運行。


Value DeFi


Value DeFi 是一個部署在多條鏈上的機槍池協議,它第一次被攻擊發生在以太坊鏈上,時間是 2020 年 11 月 14 號。此後,黑客先後於 2021 年 5 月 3 號和 5 月 5 號對 BSC 上的 Value DeFi 進行攻擊,累計掠奪 2800 萬美元。5 月 3 號的攻擊是因爲協議合約的 initialize 函數忘記將 initialized 狀態變量置爲 true,導致攻擊者能夠控制 vBWAP/BUSD 流動性池, 然後移除該池的流動性,兌換成 renBTC 橋接到 BTC 鏈逃離。而 5 月 5 號的攻擊在於 Bancor 公式的錯誤使用,使得黑客可以用較少的幣兌換另外一個較多的幣。


Value DeFi 的事後舉措包括使用團隊自有資金補償和重啓上線計劃兩部分,目前受影響用戶已經可以前往他們的官網領取補償,而重啓時間則要等待後續公告。


bEarn


bEarn 是一款跨鏈機槍池協議,對它的攻擊發生在 2021 年 5 月 16 號,利用度量單位的漏洞,即當從合約中取走資產的時候,設計上是以 ibBUSD 爲單位,實際實現的代碼卻以 BUSD 爲單位,由於 ibBUSD 比 BUSD 貴,因此黑客能夠取出比應該取出多的 ibBUSD。當黑客使用閃電貸借入大筆 BUSD 進行反覆充提操作的時候,池子裏的資金很快被取幹,最終獲利 1800 萬美元。


事後 bEarn 發表文章對上述漏洞進行分析,並且制定了後續賠償計劃,賠償分爲兩部分,首先使用當前金庫資金賠償,這一部分目前已經可以領取;其次使用 BDOv2 和 BDEX 進行賠償,這一部分預計到 6 月中旬上線。截止目前,項目仍然在維持運營。


BugerSwap


BugerSwap 是 BSC 上的一款 DEX,在 2021 年 5 月 28 號被黑客使用 14 筆交易攻擊,損失 720 萬美元。漏洞出現在黑客能夠重入並在池子儲備資金進行更新前進行二次兌換,這是因爲 Buger 使用常量積 x*y=k 算法,卻在代碼中移除了 x*y>k 的校驗。


BugerSwap 的事後反應包括暫停交易、修復漏洞、空投新幣進行賠償。


Belt


在 2021 年 5 月 29 日,Belt Finance 因爲 bEllipsisBUSD 策略池餘額計算漏洞被黑客利用,使用閃電貸操縱 beltBUSD 價格,盜走價值 630 萬美元的 BUSD。


事後,Belt 暫停合約相關操作,並在 6 月 2 日重新開放,同時公告將鑄造新幣進行賠償。


Merlin Labs


Merlin Labs 是一個分叉 PancakeBunny 的協議,它的漏洞也與 PancakeBunny 類似,在 2021 年 5 月 26 日被黑客使用錢包中的 CAKE 作爲策略收益,從 Merlin 合約中騙得 MERL 挖礦收益,通過循環調用獲利 68 萬美元。而當 Merlin 聲稱修復漏洞,重新部署上線後,修復的代碼又爆出漏洞,這次則是因爲在計算價格的時候,多乘了 100 億,兩次攻擊累計損失 123 萬美元。


Merlin Labs 剛爲第一次攻擊制定賠償計劃,如今賠償不得不再次包含第二次攻擊。


Autoshark


Autoshark 是另外一個 PancakeBunny 分叉協議,同樣繼承了 Bunny 的漏洞,被黑客在 2021 年 5 月 25 日使用相似手段盜走 74.5 萬美元。


Autoshark 進行的應對舉措包括修復後重啓協議,空投代幣進行補償等。


就在梳理這些被攻擊項目的時候,BSC 上又先後出現 Impossible Finance 被黑客掠走 50 萬美元,代碼漏洞與 BugerSwap 如出一轍;Eleven Finance 因爲一個函數未執行銷燬漏洞被黑客攻擊,損失 500 餘萬美元。


從以上項目分析來看,我們發現它們的特點如下:

 

1. 損失金額相對較大,很容易引起用戶對項目方、BSC 乃至整個行業安全性的懷疑,影響深遠;

2. 黑客往往選擇跨鏈出逃,使得黑客身份追蹤和資金追回幾乎不可能,造成用戶的永久損失;

3. 相似的漏洞多次復現,包括使用閃電貸操縱價格,利用代碼邏輯缺陷進行攻擊等漏洞類型,都曾經在以太坊上發生過;

4. 項目方大多沒有放棄,而是採取多種措施自救。


作爲普通用戶,可能既沒有讀懂代碼的能力,又難以理解複雜的經濟模型。那麼,以後應該如何儘可能的防範被攻擊的風險呢?  


1. 重點關注項目方選取的預言機,預言機是獲取價格信息的關鍵組件,預言機的質量決定價格數據質量,很多閃電貸的價格操縱之所以得逞,就是因爲預言機選型考慮欠缺。使用 Chainlink 去中心化預言機的衆多協議,基本上從未遭受價格操縱攻擊。

2. 謹慎使用剛剛推出的協議,因爲這些協議還未經時間的檢驗,很難判斷是否安全。

3. 抱着歸零的心態,用自己能承受得起損失的資金參與各類項目。

4. 警惕超高收益的項目,對於收益保有理性預期,寧肯錯過,不要犯錯。


BSC 從正式推出到現在還不到一年的時間,能發展成現在已經出乎很多人意料。當新興事物在起步階段時,不可避免會遭遇一些困難和挑戰,BSC 上部分應用的安全漏洞並不意味着 BSC 本身出了問題,更不應該因噎廢食,懷疑 BSC 上所有應用。提前暴露安全漏洞,也意味着規避未來更大的損失,在付出慘痛的教訓和沉重的代價之後,無論項目方還是用戶都將對安全問題的重視提升一個臺階,也會將安全工作放在重中之重。希望未來安全事故越來越少,用戶越來越放心的使用各類應用。

 

本文來自投稿,不代表律動BlockBeats觀點


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交