Fairyproof:2023 區塊鏈生態安全年報
作者:Fairyproof
觀點綜述
相比2022年,2023年加密市場的狀況有了明顯改善,加密資產的整體市值有了顯著的上揚,與此同時,安全事件的發生次數也有了大幅的增加。
在Fairyproof調研的489個典型案例中,價值將近12.3億美元的加密資產被盜。
隨著比特幣尤其是銘文生態的迅速成長,這個生態的安全隱患日漸突出,2023年出現了13起針對比特幣生態尤其是銘文設施的攻擊。
駭客利用私鑰洩露發起的攻擊造成的加密資產損失達5.18億美元,這個金額占所有由駭客攻擊導致的損失金額的45.07%。安全穩妥地保管私鑰至始至終都是所有區塊鏈用戶必須首要重視的事務。
2023年,Fairyproof廣泛研究了零知識證明[1]相關的技術及應用,熟悉掌握了業界主流的解決方案和應用場景。在開發方面,Fairyproof打磨了一套完整的流程、模式,可以根據用戶需求及應用場景快速研發、部署解決方案。在審計方面,Fairyproof積累了豐富的經驗,能夠熟練將目標問題轉換為零知識電路,專業地審計電路、證明的生成、證明的驗證等。此外,Fairyproof還在零知識應用的實現方案上進行了優化,研發了自己的系統,相比現有的流行方案在安全性和去中心化方面更優。
2023年,Fairyproof在多方安全計算[2](簡稱MPC)技術方面也有大膽地佈局,同樣確立了自己的一套完整的開發流程和模式,能夠因應客戶需求和場景需要快速地開發和部署MPC方案。
背景介紹
在詳細呈現Fairyproof的研報結果之前,有必要對本報告中的相關術語進行解釋、說明。
CCBS
CCBS指代"中心化加密資產或區塊鏈服務機構"。它通常指人為運作管理的非鏈上服務平台,其核心技術主要依賴傳統的中心化技術,其日常運維活動主要為鏈下活動。傳統的加密資產交易所(如Binance)、加密資產發行承兌平台(如Tether)即為此類典型。
閃電貸(FLASHLOAN)
閃電貸是駭客在攻擊以太坊虛擬機平台上智能合約的一種常見和流行的方式。閃電貸是知名DeFi應用AAVE[3]團隊發明的一種合約調用方式。這種合約調用讓用戶無需任何抵押物便可以直接從支持這種功能的DeFi應用中借出加密資產,只要用戶在一個區塊交易內歸還該資產即可使該交易有效[4]。起初這個功能的發明是為了給DeFi用戶更靈活、便利的手段進行各項鏈上的金融活動。但後來,閃電貸因其靈活性高使得其使用得最多的場景變成了駭客借出ERC-20[5]代幣然後用其進行攻擊。在發起一筆閃電貸之前,用戶需要將借出(資產)和歸還(資產、利息及相關手續費)的邏輯清晰地在一個合約中描述,然後調用該合約發起閃電貸。
跨鏈橋(CROSS-CHAIN BRIDGE)
跨鏈橋是連結多個獨立區塊鏈的一種基礎設施,它讓部署於不同區塊鏈的代幣在各個區塊鏈之間相互流通。
隨著越來越多區塊鏈有了自己的生態、應用和加密資產,這些應用和資產對跨區塊鏈通信和交易的需求顯著增長。這也使得跨鏈橋成為駭客眼中熱門的攻擊對象。
報告重點
Fairyproof詳細研究了2023年發生的489起典型安全事件,在本報告中對這些事件造成的損失金額、成因等各種要素進行了統計分析,並給出了相應的防範建議和措施。
2023安全事件的統計及分析
Fairyproof研究團隊詳細研究了2023年較為突出的489起安全事件,從遭受攻擊的目標和造成攻擊的根源兩方面列舉了統計結果並對其進行了分析研究。
在2023年一整年,這489起安全事件造成的加密資產損失總額達12.3億美元,Tradingview顯示的主流加密資產總值達1.62萬億美元。損失資產占總市值的比例為0.08%。
基於受害對象劃分的安全事故
Fairyproof研究的安全事件按其受害對象分可以分為以下四類:
- 中心化加密資產或區塊鏈服務機構(CCBS,下文所指CCBS即為此概念)
- 區塊鏈(Blockchains)
- 去中心化應用(dApps)
- 跨鏈橋(Cross-chain Bridges)
本報告所指的CCBS安全事件是指受到攻擊或損害的對象是CCBS系統。在這些事件中,CCBS所保管的資產被盜或運作的服務被迫中斷。
區塊鏈安全事件是指區塊鏈主網、側鏈或依附區塊鏈主網的第二層擴展系統受到攻擊或損害。通常在這些事件中,駭客從系統內、系統外或者兩方面都發起攻擊,導致系統軟件或硬件失常,資產損失。
dApp安全事件是指dApp受到攻擊而無法正常工作,從而使駭客有機會盜取dApp中管理的加密資產。
跨鏈橋安全事件是指跨鏈橋受到攻擊,導致其無法正常工作,甚至導致其經手交易的加密資產被盜。
Fairyproof對總共489起事件按上述四類進行了劃分,其比例分佈圖如下所示:
由圖中可知,dApp安全事件的數量占總量的88.34%。其中20起為CCBS安全事件,26起為區塊鏈安全事件,432起為Dapp安全事件。
區塊鏈安全事件
涉及區塊鏈的安全事件可以進一步細分為以下三類:
- 區塊鏈主網(Blockchain mainnets)
- 側鏈(Side chains)
- 第二層擴展系統(Layer 2 solutions)
區塊鏈主網也被稱為Layer 1,它是獨立的區塊鏈,有自己的網絡、協議、共識和驗證者。區塊鏈主網可以驗證交易、數據和區塊,所有這些驗證工作都由自己的驗證者完成並最終取得一致性。比特幣和以太坊就是典型的區塊鏈主網。
側鏈是與區塊鏈主網並行運作的一條單獨的區塊鏈。它也有自己的共識和驗證者,但是它會以某種方式(如雙向錨定[6])和區塊鏈主網連結,
第二層擴展系統是依賴於區塊鏈主網的系統,它需要區塊鏈主網提供安全和最終一致性[7]。它主要為了解決區塊鏈主網的可擴展性,能以更低的費用、更低的價格處理交易。自從2021年以來,依附於以太坊的第二層擴展系統有了飛速地發展。
側鏈和第二層擴展系統都是為了解決區塊鏈主網的可擴展性。兩者主要的區別在於,側鏈不依賴區塊鏈主網提供安全性和一致性,但第二層擴展系統卻需要。
2023年總共有26起與區塊鏈有關的安全事件。下圖展示了區塊鏈主網、側鏈和第二層擴展系統各所占的比例。
由圖中可以看出,區塊鏈主網和第二層擴展分別占84.62%(22起)和15.38%(4起),沒有較為嚴重的側鏈事件發生。4起涉及以太坊第二層擴展的為Metis[8]、zkLink[9]、Boba[10]和Arbitrum[11]。而涉及區塊鏈主網的事件中Mixin所遭受的攻擊損失為最大,其它針對主網項目的攻擊則主要為社交攻擊,並沒有造成很大的資產損失。
DAPP安全事件
在432起涉及dApps的安全事件中,有45起是跑路,263起被連累,124起直接被攻擊。直接對dApp的攻擊通常會涉及三個方面:Dapp的前端、後台和智能合約。因此,我們將124起直接被攻擊的事件分為下列三類:
- dApp前端
- dApp後台
- dApp合約
在dApp前端受攻擊的事件中,駭客主要通過前端漏洞發起攻擊,盜取資產或癱瘓其服務。
在dApp後台受攻擊的事件中,駭客主要通過後台漏洞發起攻擊,比如劫持後台和合約的通信,劫持資產或癱瘓服務。
在dApp合約受攻擊的事件中,駭客主要通過合約漏洞發起攻擊,盜取資產或癱瘓其服務。
下圖展示了這三個類別受攻擊事件的比例:
由上圖所示,合約、後台和前端受攻擊的事件比例分別為95.16%、0%和4.84%。在總共124起事件中,6起為前端受攻擊,118起為合約受攻擊。
我們進一步研究了各類事件所造成的加密資產損失金額。其中前端受攻擊導致的損失達23.8萬美元,合約受攻擊導致的損失達5.42億美元。
顯然,合約安全仍然是最大的问题。而在眾多合約漏洞中,邏輯缺陷、私鑰洩露、閃電貸攻擊、重入攻擊為典型的漏洞。
我們研究了118起涉及合約受到攻擊的安全事件,得到下列比例圖:
上圖所示,邏輯缺陷導致合約安全事件占比最高,其次為閃電貸攻擊。邏輯缺陷中通常包括缺少參數驗證、缺少權限驗證等。53起事件為邏輯缺陷,28起事件為閃電貸。
下圖展示了各個漏洞造成的損失金額比:
由上圖可知,邏輯缺陷造成的損失金額在所有類別中排第一,53起安全事件造成了2.86億美元的損失,占總金額的比例為52.83%;私鑰洩漏造成的損失排第二,6起事件造成了1.74億美元的損失,占比32.1%;重入攻擊造成的損失金額排第三,10起安全事件造成了2906萬美元的損失,占比5.36%。
基於成因劃分的安全事故
基於造成區塊鏈安全事故的成因,我們將事故分為三類:
- 由駭客攻擊所致
- 跑路
- 其它
我們的研究結果如下圖所示:
由上圖所示,駭客攻擊和跑路導致的安全事故分別占比為88.75%(434起)和9.2%(45起)。
我們研究了這些成因所造成的損失,如下圖所示:
由上圖所示,駭客攻擊和跑路導致的損失金額分別占比93.04%和3.87%,前者導致了11.5億美元的損失,後者導致了4776萬美元的損失。這表明2023年,駭客攻擊仍然是行業安全面臨的主要威脅。
駭客攻擊事件
我們研究了駭客攻擊事件,如下圖所示:
由上圖所示,駭客攻擊dApp、CCBS和區塊鏈的事件占比分別為89.38%(387起)、4.62%(20)和6%(26起)。
我們研究了各類事件所導致的損失金額,如下圖所示:
駭客對dApp、CCBS和區塊鏈攻擊所導致的資產損失占比分別為58.95%、24.03%和17.02%,具體的損失金額分別為6.94億美元、2.83億美元和2億美元。
跑路事件
2023年發生的跑路事件主要發生在dApp項目。總共45起跑路事件造成的損失金額達4776萬美元。這個損失金額相比駭客攻擊造成的損失金額規模要小得多。
研究發現
從我們的統計數據來看,2023年駭客最偏愛攻擊的目標仍然是dApp項目,對dApp的攻擊事件遠超其它任何對象,所造成的資產損失卻高居首位,達到6.94億美元,占所有攻擊事件總金額比例的58.95%。這表明當前dApp的安全狀況存在相當大的隱憂,是當下整個區塊鏈生態安全需要關注的重點問題。
對整個區塊鏈生態來說,駭客仍然是最大的安全威脅,無論從其造成的安全事件數量還是從其造成的資產損失來看都是如此,由駭客攻擊造成的安全事件數量占整個安全事件數量的比例超過88.75%,攻擊造成的資產損失金額占所有損失金額的比例超過93.04%,遠超跑路事件對生態造成的威脅。
2023年,駭客對第二層擴展系統的攻擊無論在數量上還是在損失金額上都低於2022年。我們認為這是第二層擴展技術更加成熟,以及在安全性上得到了更多重視的結果。
一個典型的dApp包括三部分:前端、後台和智能合約。當駭客攻擊一個dApp時,會攻擊其中一部分或同時攻擊多個部分。根據我們的統計數據,對智能合約的攻擊無論在數量還是在金額上都遠超對前端和後台的攻擊。這表明智能合約仍然是駭客攻擊dApp時最主要的攻擊目標。
2023年發生的典型跑路事件都為dApp項目。這表明dApp跑路仍然是用戶考慮跑路風險時要防範的重點。
在智能合約受到駭客攻擊的事件中,邏輯缺陷引發的攻擊事件次數和導致的損失金額都高居榜首,遠超其它類別。
探索與思考
越來越多的創業團隊已經並且正計劃湧向零知識證明相關的應用領域,包括基於以太坊的ZK第二層擴展方案、基於ZK的社交應用等。我們認為隨著這些應用的爆發和湧現,對基於ZK系統的開發和審計需求將迅猛增長。
防範安全事故的實踐方案和措施
本節,我們將根據2023年所發生的安全事故的特點總結一些幫助區塊鏈開發者和用戶管理及防範區塊鏈風險的方案和措施。我們建議無論是區塊鏈開發者還是用戶都積極地在平時的操作和工作中盡可能落實和實踐這些方案及措施,最大限度保護項目安全和加密資產安全。
注:"區塊鏈開發者"既指區塊鏈項目本身的開發工程師,也指和區塊鏈系統相關或其延申系統(如加密資產等)的開發者。"區塊鏈用戶"是指所有參與到區塊鏈系統活動(比如管理、運作、維護等)或加密資產交易等的用戶。
對區塊鏈開發者
跨鏈橋的開發者需要高度關注跨鏈橋的安全。跨鏈橋方案一般包括鏈上操作和鏈下操作兩部分。而鏈下操作相對而言更容易受到駭客的攻擊,因此跨鏈橋需要特別注意鏈下操作的安全性和可靠性。
儘管2023年對第二層擴展攻擊造成的損失金額相對跨鏈橋而言不算大,但它的安全性同樣值得重視。因為接下來,第二層擴展方案的發展和落地將會出現井噴,對其方案安全性的研究將是業界面臨的重大挑戰。
在區塊鏈應用中,當項目部署並穩定運行一段時間後,將項目中掌控關鍵操作的權限轉移到多簽錢包或者DAO組織來進行管理是非常有必要的步驟。
當駭客發現智能合約的漏洞時,往往會借助閃電貸對合約進行攻擊。這些可能被利用的漏洞通常包括重入漏洞、邏輯缺陷(比如缺乏權限驗證、錯誤的價格算法)等。嚴謹防範和處理這些漏洞對智能合約開發者而言時刻需要引起高度重視,甚至需要排在重要性的首位。
我們的統計數據還顯示越來越多的駭客會通過社交媒體軟件(如Discord、Twitter等)發起釣魚攻擊。這個現象貫穿了整個2022年。不少用戶從中遭受了損失。項目方需要對其運作的社交媒體實施嚴格、周全的管理,部署相應的安全方案保證其社交媒體運作的安全和穩定,防範被駭客利用。
區塊鏈用戶
越來越多用戶開始參與各類區塊鏈生態的活動,並持有各類區塊鏈生態的資產。在這個過程中,跨鏈交易活動也再迅猛增長。當用戶參與跨鏈交易時,用戶需要和跨鏈橋進行交互,而跨鏈橋卻是駭客經常關注的攻擊目標。因此當用戶在發起跨鏈交易前,需要詳細調查和了解其所使用的跨鏈橋的安全狀況和運營狀況,確保跨鏈橋的安全、穩定、可靠。
當用戶和dApp進行交互時,必須高度關注其智能合約的質量和安全,同時也需要關注dApp前端的安全。對前端顯現的一些不明來歷、高度存疑的信息、提示、對話等要小心處理,不要隨意點擊或跟隨其指引進行操作。
我們強烈建議用戶在和任何區塊鏈項目交互前或投資區塊鏈項目前,要仔細檢查並閱讀該項目的審計報告。對沒有審計報告或報告可疑的項目,要謹慎參與。
我們建議用戶儘量使用冷錢包或多簽錢包管理大額資產或不用于頻繁交易的資產。時刻小心熱錢包的運作安全,並確保安裝熱錢包的硬件平台本身是安全、可靠和穩定的。
用戶需要對區塊鏈項目的團隊背景進行一定程度的調查和了解。對團隊背景模糊、信用缺失的團隊要小心。對這類項目要小心其可能發生的跑路風險。對使用較為頻繁的中心化交易所,用戶更要關注其背景和信用,儘可能從多個第三方數據源查證這些交易所的背景、信息、數據,確保交易所能夠長久持續的安全運作。
參考資料
[1] zero-knowledge proof. https://en.wikipedia.org/wiki/Zero-knowledge_proof
[2] MPC. https://en.wikipedia.org/wiki/Securemulti-partycomputation
[3] Aave. https://aave.com/
[4] Flash-loans.. https://aave.com/flash-loans/
[5] ERC-20 TOKEN STANDARD. https://ethereum.org/en/developers/docs/standards/tokens/erc-20/
[6] Sidechains. https://ethereum.org/en/developers/docs/scaling/sidechains/
[7] Layer-2. https://academy.binance.com/en/glossary/layer-2
[8] Metis. https://www.metis.io/
[9] zkLink. https://zk.link/
[10] Boba. https://boba.network/
[11] Arbitrum. https://arbitrum.io/