DeFi 生態安全全景
作者:BlockSec
引言
隨著 DeFi 發展不斷重塑金融格局,安全始終是 DeFi 生態面臨的重大挑戰,安全問題每年都造成數十億美元的資產損失。
根據 Chainalysis 的數據,2023 年 DeFi 黑客攻擊導致超過 11 億美元的資產損失。儘管這一數字較 2022 年有所下降,但 2023 年出現了新的 DeFi 攻擊趨勢。例如,一些長期安全運行的知名協議,如 Curve 和 KyberSwap,也遭到攻擊。此外,還出現了針對基礎設施漏洞(如 Flashbots Relay)的複雜攻擊。
Security Incident Dashboard 數據顯示,2024 年上半年共發生超過 50 起造成 10 萬美元以上損失的黑客攻擊事件。
近期黑客攻擊事件
(來源: Security Incident Dashboard)
https://app.blocksec.com/explorer/security-incidents
安全對於 DeFi 協議發展至關重要。部分協議管理著數十億美元的用戶資產,安全事件會給用戶帶來重大損失。雖然在某些情況下,被盜資金可以(部分)追回(例如 Euler 攻擊事件),但我們不能將希望完全寄托於此。每一次的攻擊事件,都在削弱用戶對 DeFi 的信心。
儘管業界已提出許多增強安全性的措施,但 DeFi 安全仍有很大的提升空間。從積極的一面來看,代碼審計已成為社區共識,大多數協議在上線前都會進行審計,這有助於降低由智能合約漏洞導致的攻擊風險。然而,單靠代碼審計遠遠不足以解決所有安全問題。代碼審計無法防止由合約升級、配置更改和外部依賴引入漏洞所導致的攻擊。鑑於這些局限性,一些協議開始採用更加主動的解決方案,如運營監控和攻擊檢測系統。
在本文中,我們將縱覽協議從上線前(Pre-Launch)、上線運營(Post-Launch)、到攻擊響應(Attack Response)階段可採取的安全舉措,來了解 DeFi 安全全景。我們將詳細介紹每類安全舉措及其主要的供應商/產品,以及它們的優缺點。希望本文能幫助社區更好地了解 DeFi 安全現狀,為創新的安全解決方案帶來啟發。
DeFi 安全全景
DeFi 協議的安全舉措應當貫穿協議上線前到上線後的全生命周期,確保協議本身以及運營期間的安全性。此外,針對潛在攻擊提前部署預防措施和響應計劃同樣至關重要。為幫助讀者清楚地了解目前有哪些 DeFi 安全解決方案,我們將相關供應商(產品)分為以下幾類。
Pre-Launch Security
協議上線前可採取的安全措施,包括代碼審計、形式化驗證和安全測試。
代碼審計服務\&競賽
代碼審計是社區公認的保障協議安全的做法。在此過程中,安全公司會對已凍結的代碼進行半自動化審查,即自動化掃描代碼中的常見漏洞,再通過人工審查複雜漏洞,代表性的審計公司有 OpenZeppelin、ChainSecurity、BlockSec 等。
此外,還有審計競賽平台。與直接提供審計服務的審計公司不同,這些平台公開發布審計需求,吸引社區中的安全研究人員參與審計競賽,並將獎勵分配給發現協議漏洞的參賽者。審計競賽平台包括 Code4rena、SHERLOCK、Cantina、Secure3 等,各平台在漏洞嚴重級別、分配獎勵和參與標準上都存在一些差異。
代碼審計是協議安全的第一道防線。然而,它也存在一些局限性,這也是為什麼許多由知名公司審計的協議仍舊未能避免黑客攻擊。
首先,靜態代碼審計無法解決由協議依賴引起的安全問題,DeFi 協議的可組合性更加劇了這一點。
其次,在代碼審計過程中,一些問題沒有受到足夠的重視。例如,精度損失是一個常見問題,可能會被審計員和協議方忽視。直到 Hundred Finance 和 Channels Finance 事件發生後,社區才充分認識到精度損失的安全影響。
最後,高質量的代碼審計仍然是稀缺資源,需要具有安全、金融和計算機科學知識的跨學科人才,而目前很少有大學能夠持續且大規模地提供此類人才。因此,一些協議儘管進行了審計,但提供審計服務的審計人員專業性上是不足的。
形式化驗證
"形式化驗證根據某種形式規範或屬性,使用數學方法證明系統的正確性或不正確性。" 形式化驗證可以確保 DeFi 協議的行為符合形式規範。例如由 Certora 開發的 Prover 可以對 DeFi 協議進行形式化驗證。開發者提供規則(規範),Prover 將探索每一種可能的程序狀態,將結果與規則進行比較,從而識別漏洞。 形式化驗證的最大優勢在於它能夠通過數學證明管理數十億資產的 DeFi 協議的正確性。然而,實際應用中的一些限制阻礙了其廣泛採用。
- 首先,規範需要由開發者提供,這要求開發者對協議的預期行為有詳細的文檔說明,而大多數開發並非這一領域的專家。
- 其次,協議的頻繁升級可能需要更新規範並重新評估協議,一些協議可能無法付出這麼多的時間和精力。 儘管存在這些限制,我們仍然認為協議應該進行形式化驗證,特別是那些尚未經過時間檢驗且管理大量用戶資產的新協議。但是,如何增強形式化驗證的可操作性並提高其採用率,仍然是當下面臨的一個巨大挑戰。
安全測試
安全測試通過測試用例來發現協議中存在的潛在問題。相較於通過數學方法證明協議正確性的形式化驗證,安全測試一般使用具體的輸入數據(而非形式化驗證中的符號輸入),因此效率更高,但全面性略低。
Foundry 是一個頗受歡迎的智能合約開發測試框架。開發者可以在 Foundry 中執行測試,還能夠對 DeFi 協議進行差分測試、不變性測試及差異測試。其他安全測試工具還包括 Tenderly 和 Hardhat。
Post-Launch Security
協議上線後可採取的安全措施,包括 Bug Bounty、攻擊檢測和運營監控。
Bug Bounty
Bug Bounty 搭建起了協議和安全研究人員之間的橋樑。協議在 Bug Bounty 平台發布賞金計劃,詳細說明賞金範圍和獎勵金額,安全研究人員通過報告協議的零日漏洞來獲取獎勵。Immunefi 是一個具有代表性的 Web3 Bug Bounty 平台。
攻擊檢測
攻擊檢測平台通過掃描交易識別惡意交易。具體來說,這些平台會掃描與協議交互的每筆交易來尋找惡意行為,在識別惡意交易後系統觸發警報。
例如,BlockSec Phalcon 掃描每一筆內存池和鏈上交易,通過分析交易的行為特徵來識別惡意行為(如惡意合約、惡意提案)。它就像一位安全衛士,不眠不休地監控每一筆交易的每一個細節尋找不尋常的動向。它從這些交易中提取行為模式,並使用金融模型(類似銀行用於檢測欺詐的模型)來識別潛在攻擊。類似的系統還包括 Hypernative 和 Hexagate 提供的產品。此外,Ironblocks 的 Venn Security Network 提供了一個去中心化基礎設施,能夠聚合多個來源的檢測結果。
運營監控
顧名思義,運營監控框架監控協議上線後的運營安全。比如,實時掌握管理員密鑰變更情況、智能合約的部署與更新,並自動檢測拉取請求中的安全漏洞。OpenZeppelin Defender 平台能夠幫助開發者安全地編寫、部署、運行智能合約。BlockSec Phalcon 能夠監控合約升級、Safe 錢包交易(如被發起、新簽署、執行)、訪問控制及治理相關風險。另外,通過實時監控系統 Forta Network,用戶能夠創建機器人監控協議,或者訂閱現有機器人來接收釣魚等安全威脅警報。
Attack Response
攻擊發生後自動觸發或緊急採取的安全措施,包括攻擊阻斷、自動響應、War Room、攻擊成因分析以及攻擊者資金流追蹤。
在這五項響應措施中,尤其值得注意的是攻擊阻斷,因為項目方能夠提前部署,在攻擊發生前阻斷攻擊,將損失降至零,自動響應平台也有助於減少攻擊造成的損失。
建立 War Room、進行攻擊成因分析和資金流追蹤是攻擊發生後採取的應對措施,雖然有助於減少損失、防範未來的類似攻擊,但很可能已經造成重大損失且難以追回。此外,項目聲譽受損及用戶信任流失可能帶來深遠的負面影響。風險似乎無處不在、防不勝防,但項目方並非只能被動應對,可以提前部署防範措施,這也是更為推薦的做法。
攻擊阻斷
攻擊檢測是獲知黑客攻擊的重要渠道,但如果要對抗黑客攻擊,只有檢測遠遠不夠。因為如果沒有自動化的攻擊阻斷能力,手動採取響應措施往往來不及。以 KyberSwap、Gamma Strategies 和 Telcoin 攻擊事件為例,這些協議在攻擊的數分鐘甚至幾小時後才採取了響應措施,黑客在這段時間內發起多筆攻擊交易,盜走巨額資產。七月的 Velocore 和 Rho 攻擊事件則導致 Linea 和 Scroll 全鏈暫停運行,引發了用戶對 L2 鏈中心化問題的關注。
攻擊阻斷能夠自動防範黑客攻擊,這依賴於兩項核心技術:提前檢測和自動搶跑。提前檢測指的是在交易上鏈之前,還在內存池階段時,就能識別出哪些是攻擊交易。自動搶跑則是在攻擊交易上鏈之前,優先提交一筆搶跑交易暫停協議,從而阻止攻擊交易的執行。這種方法在攻擊實質發生之前就進行阻斷,從而避免了損失。
在這一類別中,BlockSec Phalcon 是唯一擁有這些核心技術的產品。黑客發起攻擊交易後,Phalcon 的攻擊監測引擎可以提前檢測到這筆交易,向用戶推送攻擊告警,同時自動搶跑暫停協議,將損失降低至0。該產品的攻擊阻斷能力已在過往的二十多次白帽救援中得到驗證,共挽救了超過 2000 萬美元資產。
自動響應
除了攻擊阻斷平台外,Phalcon、Hexagate、Hypernative 等平台也可以在發生攻擊時自動響應。
訂閱此類平台後,用戶可以針對各類協議風險設置監控以及響應措施。如果一筆交易命中了監控規則,系統就會自動發起用戶提前設置的響應措施(如暫停協議),從而降低損失。不過,部分平台不具備攻擊檢測引擎,系統無法直接識別攻擊交易並告知用戶,而是需要用戶自定義一筆交易滿足哪些條件下可以判定為攻擊。由於攻擊交易的特徵非常複雜,而用戶(往往是合約開發者)不一定具備足夠的安全知識,這對用戶來說是很有挑戰性的。
War Room
當協議面臨攻擊時,建立 War Room 顯得尤為關鍵。這有助於協議掌握情況、與社區及時同步信息,並有效整合資源以採取應對措施,這需要多領域專家的密切合作。
SEAL 911 旨在"在緊急情況下,幫助用戶、開發者和安全研究人員直接聯繫到值得信賴的安全專家"。用戶可以通過 SEAL 911 Telegram Bot(https://t.me/seal911bot) 獲取這個服務,在項目遭到攻擊時,迅速組建 War Room 應對安全挑戰。
攻擊成因分析
當協議遭受攻擊時,關鍵是要識別出問題的根源,例如智能合約內部的漏洞以及漏洞是如何被利用的。分析攻擊交易需要借助一些工具,Phalcon Explorer、OpenChain 和 Tenderly 都是不错的选择。
資金流追蹤
資金流追蹤是指鏈上追蹤攻擊者的初始資金和攻擊獲利,來定位相關的地址和實體。如果這些資產流向了中心化實體(例如,中心化交易所和其他機構級實體),可以聯繫執法機關幫助凍結資金。
Chainalysis、TRM Labs、ARKHAM、ELLIPTIC 和 MetaSleuth 是該領域的代表性公司/產品。例如,MetaSleuth 可以自動追蹤跨鏈資金流,並提供豐富的地址標籤。ARKHAM 建立了一個社區,協議方可以在此發布調查 Bounty 激勵社區成員協助追蹤攻擊者的資金流向。
安全教育資源
知識是最好的防線。除了前面提到的安全供應商和產品外,還有一類角色對於 DeFi 安全至關重要:教育平台。這些平台提供的資源或資訊能夠幫助 DeFi 從業者和用戶深入理解安全知識、提高安全意識、培養安全技能,為推動 DeFi 安全發展提供了重要作用。我們對這些平台致以敬意,並分享以下幾個值得關注的平台。
- SΞCURΞUM :一個專注於以太坊安全的 Discord 社區,並且定期舉辦智能合約安全競賽 "Secureum RACE"。 https://x.com/TheSecureum
- Security Incidents Dashboard :該平台彙總並實時更新損失超過十萬美元的攻擊事件,並提供損失金額、受影響的鏈、漏洞類型、攻擊成因分析和 PoC 等詳細信息。 https://app.blocksec.com/explorer/security-incidents
- Rekt :被稱為 DeFi 新聞的暗網,提供對 DeFi 漏洞利用、黑客攻擊和詐騙行為的深入分析。 https://rekt.news/
- RugDoc :DeFi 安全和教育社區。該平台提供項目風險評估信息,還有一個介紹 DeFi 生態和技術的平台 RugDocWiKi。 https://rugdoc.io/
- DeFiHackLabs :Web3 安全社區,致力於幫助 Web2 安全人才進入 Web3 領域,在全球擁有兩千多成員和近兩百位白帽黑客,DeFiHackLabs 的倉庫提供了豐富的學習資源。 https://x.com/DeFiHackLabs
- Solodit :該平台收錄了 Web3 審計公司過往的審計報告。 https://solodit.xyz/
- Ethernaut :一款基於 Web3/Solidity 的遊戲,玩家需要識別以太坊合約的漏洞,形式類似於 CTF。 https://ethernaut.openzeppelin.com/
結語
安全問題每年造成數十億美元的損失,是 DeFi 生態長期面臨的嚴重威脅。目前,大多數安全措施針對的是項目上線前的安全問題。然而,安全領域沒有"銀彈"。在協議發展的不同階段,都應該有相應的措施來保障其安全,並且貫穿協議的全生命周期。
我們期待行業能夠認識到項目上線後安全的重要性,採取措施監控協議風險並自動阻斷攻擊。
我們也希望 DeFi 生態能夠形成安全第一的共識,從而更好地保護用戶的資產安全。