原文標題:《黑客攻同源漏洞 「團滅」Fork 協議》
撰文:凱爾
2021 年 5 月,加密資產市場頗為動蕩,BTC 從 5 萬美元上方最低跌至 29000 美元,幾近腰斬,大多數加密資產最大跌幅超過 50%。
二級市場巨震之下,鏈上生態也不太平,5 月份,DeFi 市場發生至少 13 起黑客攻擊事件,多集中在幣安智能鏈(BSC)上,折損資金達到 2.7 億美元,超過了 2020 年所有 DeFi 安全事件的資產損失。BSC 官方認為,一個有組織的黑客團隊盯上了 BSC。
為何 BSC 鏈上項目集中失竊?黑客又如何做到快速捕捉項目漏洞?區塊鏈安全公司 PeckShield 發現,很多被攻擊的項目都存在同源漏洞。
比如,在 BSC 收益聚合器 PancakeBunny 被攻擊后,Fork (分叉)自 PancakeBunny 的 AutoShark 和 Merlin Labs 在接下來的一周內接連失竊;而被攻擊的 BurgerSwap 和 JulSwap,代碼都是 Fork 自 Uniswap,但它們似乎在進行改動時產生了漏洞,
PeckShield 相關安全負責人告訴蜂巢財經,這些 Fork 出的協議被攻擊主要是在沒有完全理解原協議背后的邏輯下,進行微創新,導致一個小的更新或小的組合就可能產生漏洞。
屢次發生的安全事件再度給協議開發者提了個醒,在進行 DeFi 的模式創新時,不應忽視底層代碼的安全性,
12 個項目被攻擊 折損 2.7 億美元
屋漏偏逢連夜雨,在加密資產市場跌勢不止時,鏈上協議的安全事故頻發。
5 月 30 日,BSC 上的穩定幣兌換協議 Belt Finance 遭遇閃電貸攻擊,損失 620 萬美元。根據區塊鏈安全公司 PeckShield 的追蹤,此次攻擊源于攻擊者在 PancakaSwap 完成 8 筆閃電貸后,通過重復買入賣出 BUSD,利用 bEllipsisBUSD 策略余額計算中的漏洞操縱 beltBUSD 的價格進行獲利,
被攻擊后,Belt Finance 就閃電貸攻擊事件發推致歉并發表報告,其表示將進行進一步審計,并將在 48 小時內發布用戶補償計劃。
受此影響,Belt Finance 治理代幣 BELT 大幅下跌,從 28 日的 58 美元高點跌至 27 美元,短期跌幅達到 53.44%,
這已是 5 月份第 12 個被攻擊的 BSC 鏈上項目,蜂巢財經統計,自 5 月 2 日以來,Spartan Protocol、Value DeFi、BearnFi、Venus、PancakeBunny 等項目接連失竊,共計損失 2.7 億美元資金,Value DeFi 更是兩次遭攻擊,
BSC 被攻擊項目一覽
2.7 億美元的資產損失已經超過了 2020 年所有 DeFi 安全事件的損失。根據此前 PeckShield 發布的數據,2020 年 DeFi 安全事件達到 60 起,損失逾 2.5 億美元。
短短一個月時間,BSC 鏈上連續不斷遭到黑客光顧,顯得頗為蹊蹺。壓力之下,BSC 官方不久前在社交平臺發文稱,最近已經接連發生超過 8 起針對 BSC 鏈上項目的閃電貸攻擊,「我們認為現在有一個有組織的黑客團隊盯上了 BSC,」
BSC 官方呼吁所有 DApp 防范風險,建議鏈上項目與審計公司合作進行健康檢查,如果是分叉項目,需反復檢查相對原始版本進行的更改;采取必要的風險控制措施,實時主動監控異常情況,一旦出現異常及時暫停協議;制定應急計劃,以防出現最壞的情況;如果條件允許可設定漏洞賞金計劃,
的確,復盤 12 起安全事件,閃電貸攻擊是黑客最常用的手段,Spartan Protocol、PancakeBunny、Bogged Finance、BurgerSwap、JulSwap 等項目都是閃電貸攻擊的受害者。
需要明確的是,閃電貸本身并非是一種攻擊手段,它只是一種高效的借貸模式,能夠放大任何人的本金。正如 Chainlink CMO Adelyn Zhou 所言,「閃電貸不會在 DeFi 內部產生漏洞——它只是揭示了已經存在的漏洞,」
在 DeFi 經過了高速發展后,BSC 上仍有如此多項目在短時間內暴露出漏洞,令鏈上用戶感到心驚。不禁要問,為什么這些安全事件集中爆發在 BSC 鏈上?又為何黑客能夠快速找到這么多項目的漏洞并實施攻擊?
Fork 隱患爆發 事發項目多遭同源攻擊
今年以來,BSC 異軍突起,作為以太坊的側鏈,它憑借更高效的交易處理效率和低廉的手續費,吸引了大量的項目和鏈上玩家入駐,巔峰時期,其鏈上總鎖倉價值超過 344 億美元,是僅次于以太坊的第二大 DeFi 集結地,
BSC 生態的快速崛起,搶占鏈上先發紅利,大量項目扎堆部署。由于此前,以太坊上大多項目已經開源,不少開發者采用了 Uniswap、Curve 等成熟項目的開源代碼,經過簡單修改后便在 BSC 上快速上架。而這種匆忙地 Fork (分叉)成了 BSC 鏈上項目成批量被黑客攻擊的隱患,
據 PeckShield 披露,近期被攻擊的 BurgerSwap 和 JulSwap,代碼都是 Fork 自 Uniswap,PeckShield 指出,「但它們似乎并沒有完全理解 Uniswap 背后的邏輯。」
根據事發后 BurgerSwap 的報告,攻擊者自發「假幣」,隨后與協議的原生代幣 BURGER 形成交易對,改變了后者的價格,很顯然,分叉自 Uniswap 的 BurgerSwap 在某些方面不夠成熟,被黑客鉆了空子,
Fork 協議的來源不僅是以太坊,BSC 鏈上一些早期協議應用也被后來者 Fork 上鏈,AutoShark 和 Merlin Labs 兩個聚合器協議,皆因 Fork 了 PancakeBunny 被黑客洗劫,從時間線來看,5 月 20 日,PancakeBunny 遭到閃電貸攻擊,此次攻擊源于攻擊者利用該協議操縱了 LP Token BNB-BUNNY 和 BNB-BUSDT 的價格,
看到 PancakeBunny 被攻擊后,AutoShark 發文強調自己的安全性,表示其做了 4 次代碼審計,其中 2 次正在進行中,但打臉接踵而至,僅僅 4 天后,AutoShark 遭遇閃電貸攻擊,其代幣 SHARK 瞬間下跌 99%。根據 PeckShield 的分析,此次攻擊手法與 PancakeBunny 被攻擊的手段相似,
被打臉的還有 Merlin Labs,在被攻擊前,它也曾發文表示已經反復執行代碼的審核,為潛在的可能性采取了額外的預防措施,但 5 月 26 日,黑客就「乘勝追擊」,洗劫了 Merlin Labs。
PeckShield 認為,這是攻擊 PancakeBunny 后的模仿案,攻擊者都不需要太高技術和資金的門檻,只要耐心地將同源漏洞在 Fork 出的協議上重復試驗,就能撈上可觀的一筆。「Fork 的 DeFi 協議可能尚未成為 Bunny 挑戰者,就因同源漏洞損失慘重,被嘲笑為『頑固的韭菜地』 ,」
此外,在 Belt Finance 被攻擊的案例中,黑客利用了 bEllipsisBUSD 策略余額計算中的漏洞,操縱了 beltBUSD 的價格,而 Ellipsis 則 Fork 自以太坊知名協議 Curve。
PeckShield 相關安全負責人告訴蜂巢財經,這些 Fork 的協議被攻擊主要是在沒有完全理解原協議背后的邏輯,進行微創新,導致一個小的更新或小的組合就可能產生漏洞。
該負責人表示,從已知的漏洞下手是攻擊者對尚處發展階段的 DeFi 領域常用的「覓食」方法,對于項目方來說,對 DeFi 協議安全的重視,不是嘴上說說而已,而是要做到「吾日三省代碼」:協議上線前有沒有做靜態審計?其他協議遭到攻擊后,有沒有自查代碼,檢查是否出現類似漏洞?交互的協議有沒有安全風險?
從上述案例來看,BSC 鏈上一批項目集中失竊,主要是黑客找到了多個協議的同源漏洞,只需模仿攻擊手段,就能「舉一反三」,在短時間內完成對多個項目的剽竊。
屢次發生的安全事件也給協議開發者提了個醒,在進行 DeFi 的模式創新時,不應忽視底層代碼的安全性。
對此,PeckShield 建議,新合約上線前要進行審計,也需要注意排查與其他 DeFi 產品進行組合時的業務邏輯漏洞,同時要設計⼀定的風控熔斷機制,引⼊第三⽅安全公司的威脅感知情報和數據態勢情報服務,完善防御系統。「所有 DeFi 協議都存在變數,即使⼀個協議進行了多次審計,⼀個小的更新也會使審計變得無用,因此即使⼀個小的更新都要重新進行審計。」