WEEX 唯客博客, 作者:OKX Web3 引言 OKX Web3錢包特別策劃了《安全特刊》欄目,針對不同類型的鏈上安全問題進行專期解答。通過最發生在用戶身邊最真實案例,與安全領域專家人士或者機構共同聯合,由不同視角進行雙重分享與解答,從而由淺入深梳理並歸納安全交易規則,旨在加強用戶安全教育的同時,幫助用戶從自身開始學會保護私鑰以及錢包資產安全。 DeFi世界最大的魅力就是,每個人都有成為「巨鯨」的潛力 但即使「巨鯨」也不能逞強,雖然吃肉,但也有「挨打」的時候 所以,鏈上玩耍,安全第一 不然,又要「白手起家」~ 本期是安全特刊第05期,特邀區塊鏈安全先鋒BlockSec 與OKX Web3錢包安全團隊,從實操指南的角度出發,給所有即將成為或者已經成為「巨鯨」的用戶以及項目方,分享一份DeFi避險攻略。比如,該如何看審計報告、初步評估DeFi項目風險常用的指標和參數、項目方或者巨鯨用戶,如何構建監控感知能力、DeFi安全防護守則等等…請勿錯過! BlockSec安全團隊:BlockSec是全球領先的「全棧」區塊鏈安全服務商,目前公司已服務超300家客戶,包括MetaMask、Compound、Uniswap Foundation、Forta、PancakeSwap、Puffer 等知名項目方,通過白帽援救挽回了超過2000萬美金的資金損失。 BlockSec的CEO & Co-Founder 周亞金是浙江大學計算機教授,Aminer評選的全球最具影響力學者,發表頂尖論文50餘篇,獲得超萬次引用。CTO & Co-Founder 吳磊是浙江大學計算機教授,前派盾聯合創始人,帶領團隊發現了多個知名項目的數十個零日漏洞。產品總監 Raymond,先後在騰訊、360負責安全產品。 OKX Web3 錢包安全團隊:大家好,非常開心可以進行本次分享。OKX Web3 Security團隊主要負責OKX在Web3領域內各類安全能力的建設,比如智能合約安全審計,錢包的安全能力建設,鏈上項目安全監控等,為用戶提供產品安全、資金安全、交易安全等多重防護服務,為維護整個區塊鏈安全生態貢獻力量。 Q1:分享幾個用戶真實遭遇的DeFi風險案例 BlockSec安全團隊:DeFi 因其為資產帶來相對穩定的高收益,吸引了很多大戶參與。很多項目方為了提高流動性,也會主動邀請大戶入駐。例如,我們常常能看到新聞報道,一些大戶存入巨額資產到 DeFi 中。當然,這些巨鯨在參與 DeFi 項目時,除了獲得穩定的收益,也會面臨一些風險。接下來,我們分享一些行業公開的DeFi風險案例: 案例一:2022 年的 PolyNetwork 安全事件中,總共有超過 6 億美元的資產被攻擊。據傳,神魚也有一億美元在裡面,雖然之後攻擊者還錢,事件圓滿解決,神魚也宣布要在鏈上建立一座紀念碑來紀念此事,但想必此過程十分煎熬。儘管當前一小部分安全事件得到好結果,但是大部分安全事件就沒這麼幸運了。 案例二:知名的 DEX SushiSwap 在2023 年被攻擊,大戶 0xSifu 損失超過 330 萬美元,他一個人的損失就達到了總損失的約 90%。 案例三:今年 3 月的 Prisma 安全事件中,總損失為 1400 萬美元,這些損失來自 17 個錢包地址,平均每個錢包損失了 82 萬美元,但其中 4 個用戶的損失就佔到了 80%。這些被盜資產大部分還沒有被追回。 歸根結底, DeFi ,特別是主網的 DeFi, 因為 Gas Fee 不可忽視,只有資產達到一定規模才能真的獲得收益(空投獎勵除外),因此,DeFi 項目的主要 TVL 一般都是由巨鯨貢獻的,甚至在一些項目中 2% 的巨鯨貢獻了 80% 的 TVL。當安全事件發生的時候,這些巨鯨也就必然承擔了絕大部分損失。「不能光看到巨鯨們吃肉,他們也有挨打的時候」。 OKX Web3 錢包安全團隊:隨著鏈上世界的繁榮發展,用戶遭遇的DeFi風險案例也與日俱增,鏈上安全永遠是用戶最基本和最重要的需求。 案例一:PlayDapp 特權賬戶私鑰泄漏事件。2024年2月9日至12日,基於以太坊的PlayDapp遊戲平台由於私鑰泄漏遭受攻擊,攻擊者未經授權鑄造並盜取了17.9億PLA代幣,損失約3,235萬美元。攻擊者在PLA代幣中添加了新的鑄幣者,鑄造了大量PLA,分散到多個鏈上地址和交易所。 案例二:Hedgey Finance攻擊事件。2024年4月19日,Hedgey Finance在以太坊和Arbitrum上遭遇了重大安全漏洞,導致損失約4,470萬美元。攻擊者利用合約缺乏用戶輸入驗證的漏洞,獲得對易受攻擊合約的授權,從而從合約中竊取資產。 Q2:能否歸納當前DeFi領域存在的主要風險類型 OKX Web3 錢包安全團隊:結合真實案例,我們梳理了當前DeFi領域常見的4類風險類型 第一類:釣魚攻擊。釣魚攻擊是網路攻擊中常見的一種,通過偽裝成合法的實體或個人,誘騙受害者提供敏感信息,如私鑰、密碼或其他個人數據。在DeFi領域,釣魚攻擊通常通過以下方式進行: 1)假冒網站:攻擊者創建與真實DeFi項目相似的釣魚網站,誘使用戶簽署授權或轉賬交易。 2)社交工程攻擊:在Twitter上,攻擊者利用高仿賬號或者劫持項目方Twitter或者Discord賬號發布虛假促銷活動或空投信息(實為釣魚鏈接),對用戶實施釣魚攻擊。 3)惡意智能合約:攻擊者發布看似有吸引力的智能合約或DeFi項目,誘騙用戶授權其訪問許可權,從而竊取資金。 第二類:Rugpull。Rugpull是DeFi領域中特有的騙局,指項目開發者在吸引大量投資后突然撤出資金並消失,導致投資者的資金被全部捲走。Rugpull通常發生在去中心化交易所(DEX)和流動性挖礦項目中。主要表現形式包括: 1)流動性撤離:開發者在流動性池中提供大量流動性吸引用戶投資,然後突然撤出所有流動性,導致代幣價格暴跌,投資者損失慘重。 2)偽造項目:開發者創建一個看似合法的DeFi項目,通過虛假的承諾和高收益誘騙用戶投資,但實際上並沒有任何實際產品或服務。 3)更改合約許可權:開發者利用智能合約中的後門或許可權,隨時可以更改合約的規則或撤出資金。 第三類:智能合約漏洞。智能合約是自動執行的代碼,運行在區塊鏈上,一旦部署就不可更改。如果智能合約存在漏洞,將導致嚴重的安全問題。常見的智能合約漏洞包括: 1)重入漏洞:攻擊者在上次調用未完成之前重複調用漏洞合約,導致合約內部狀態出現問題。 2)邏輯錯誤:合約設計或實現中的邏輯錯誤,導致意外的行為或漏洞。 3)整數溢出:合約未正確處理整數運算,導致溢出或下溢。 4)價格操縱:攻擊者通過操縱預言機價格實施攻擊。 5)精度損失:由於浮點數或整數精度問題,導致計算錯誤。 6)缺乏輸入驗證:未對用戶輸入進行充分驗證,導致潛在的安全問題。 第四類:治理風險。治理風險涉及到項目的核心決策和控制機制,如果被惡意利用,可能會導致項目偏離預期目標,甚至導致嚴重的經濟損失和信任危機。常見的風險類型包括: 1)私鑰泄漏 某些DeFi項目的特權賬戶由EOA(Externally Owned Accounts)或者多簽錢包控制,如果這些私鑰被泄漏或盜取,攻擊者可以隨意操縱合約或資金。 2)治理攻擊 某些DeFi項目雖然採用了去中心化的治理方案,但仍然存在以下風險: 借用治理代幣:攻擊者通過借用大量治理代幣,在短時間內操縱投票結果。 控制多數投票權:如果治理代幣高度集中在少數人手中,這些人可以通過集中投票權控制整個項目的決策。 Q3:有哪些維度或者參數,可以初步評估DeFi項目的安全性和風險等級? BlockSec安全團隊:在參與一個 DeFi 項目之前,對項目進行一個整體的安全評估非常有必要的。特別是對於資金體量比較大的參與者來說,必要的安全盡職調查可以最大程度保障資金安全。 第一,建議對項目的代碼安全進行全面評估,包括項目方是否經過審計以及是否具有良好安全聲譽的審計公司審計,是否有多家審計公司參與,最新的代碼是否經過審計等。通常來說,如果線上運行的代碼經過多家具有良好安全聲譽的安全公司的審計,會大幅降低被安全攻擊的風險。 第二,要看項目方是否部署實時的安全監控系統。安全審計保證的安全是靜態的,並不能解決項目上線后引發的動態安全問題。比如,項目方不適當地調整了項目的關鍵運行參數、增加了新的 Pool 等。項目方如果採用了一些實時的安全監控系統,那麼其運行時的安全係數比沒有採用這樣方案的協議會更高一些。 第三,要看項目方是否具有緊急情況下的自動響應能力。這個能力長期被社區忽視。我們發現在多個安全事件中,項目方都沒有能做到自動的功能熔斷(或者資金敏感操作的熔斷)。項目方在緊急情況下大多採用手動的方式來處理安全事件,而這樣的方式被證明是低效甚至是無效的。 第四,要看項目方的外部依賴以及外部依賴的魯棒性。一個 DeFi 項目會依賴第三方項目所提供的信息,如價格、流動性等。因此需要從外部依賴數量、外部依賴項目的安全性、是否有對外部依賴異常數據的監控和實時處理角度來評估項目等安全性。通常來說,外部依賴的項目方是頭部項目方、並且對外部項目異常數據有容錯和實時處理的項目會更安全。 第五,項目方是否具有比較良好的社區治理結構。這包括項目方對於重大的事件是否具有社區投票機制,敏感操作是否是多簽完成,多簽錢包是否引入了社區中立的參與,是否具有社區安全委員會等。這一些治理結構能提高項目透明性,降低用戶在項目中的資金被 rugpull 的可能性。 最後,項目方過往的歷史也非常重要。需要對項目團隊和項目核心成員進行背景調查。如果項目方核心成員過往項目有過多次被攻擊或者 rugpull 等不良歷史記錄,那麼這樣的項目的安全風險也會相對比較高。 總之,在參與 DeFi 項目前,用戶特別是大額資金參與者要做好研究工作,從項目上線前的代碼安全審計到項目上線后的實時安全監測和自動響應能力構建方面,考察項目方的安全投入和安全性,並且要從外部依賴、治理結構以及項目方過往歷史等角度做好被調工作,保障投入到項目中的資金安全。 OKX Web3 錢包安全團隊:雖然無法100%保證DeFi項目的安全性,但用戶可以通過以下維度的交叉結合,來初步評估DeFi項目的安全性和風險等級。 一、項目技術安全性 1、智能合約審計: 1)檢查項目是否經過多個審計公司的審計,審計公司是否具有良好的聲譽和經驗。 2)檢查審計報告中報告的問題個數和嚴重性,確保所有問題都已修復。 3)檢查項目部署的代碼是否跟審計的代碼版本一致。 2、代碼開源: 1)查看項目的代碼是否開源,開源代碼允許社區和安全專家進行審查,有助於發現潛在的安全問題。 2)開發團隊背景:了解項目開發團隊的背景和經驗,特別是他們在區塊鏈和安全領域的經驗,以及該團隊的透明度和公開信息程度。 3)漏洞賞金計劃:項目是否有漏洞賞金計劃,以激勵安全研究人員報告漏洞。 3、財務和經濟安全性 1)資金鎖定量:檢查智能合約中鎖定的資金量,較高的鎖倉可能意味著項目具有較高的信任度。 2)交易量和流動性:評估項目的交易量和流動性,低流動性可能增加價格操縱的風險。 3)代幣經濟模型:評估項目的代幣經濟模型,包括代幣分配、激勵機制和通脹模型。比如,是否存在過度集中的代幣持有情況等等。 4、操作和管理安全性 1)治理機制:了解項目的治理機制,是否有去中心化治理機制,並且社區能否對重要決策進行投票、並分析治理代幣的分配和投票權的集中程度等等。 2)風險管理措施:項目是否有風險管理措施和應急預案,如何應對潛在的安全威脅和經濟攻擊。另外,在項目透明度和社區溝通方面,可以看看項目方是否定期發布項目進展報告和安全更新、以及是否積極與社區溝通並解決用戶問題等等。 5、市場和社區評價 1)社區活躍度:評估項目的社區活躍度和用戶基礎,活躍的社區通常意味著項目有廣泛的支持。 2)媒體和社交媒體評價:分析項目在媒體和社交媒體上的評價,了解用戶和行業專家對項目的看法。 3)合作夥伴和投資方:查看項目是否有知名的合作夥伴和投資方支持,信譽良好的合作夥伴和投資方可以增加項目的可信度,但這並能成為判斷其安全的決定性因素。 Q4:用戶該如何看審計報告,以及開源狀態等等? BlockSec安全團隊: 被審計過的項目,項目方通常會在官方渠道主動向社區公布審計報告。這一些審計報告通常在項目方的文檔、Github 代碼庫等渠道中。另外,還需要對審計報告的真假和鑒別,鑒別的方法包括檢驗審計報告的數字簽名、聯繫審計公司進行二次確認等。 那麼拿到這樣的審計報告,投資者如何去研讀這樣的審計報告呢? 第一,要看審計報告是否被一些安全聲譽比較高的安全公司審計過,比如 Open Zeppelin, Trail of Bits, BlockSec 等頭部審計公司。 第二,要看審計報告中提到的問題是否都已經修復,如果沒有修復,要看項目方不修復的理由是否充分。這裡也需要區分審計報告中的有效漏洞報告和無效漏洞報告。由於審計報告暫無統一的行業標準,因此安全審計公司會根據自己的安全認知來進行項目漏洞風險評級和報告。因此,對於審計報告中發現的漏洞,要重點關注有效漏洞報告。這個過程最好能有自己的安全諮詢團隊引入進行第三方獨立評估。 第三,要看項目方公布的審計報告中的審計時間和最近項目的升級更新時間是否一致(或者接近),另外也需要注意審計報告中的項目方代碼是否覆蓋了項目方當前在線的所有代碼。項目方出於經濟成本和時間成本的考慮,通常會進行部分代碼審計。因此在這種情況下,需要判斷經過審計的代碼是否是核心協議代碼。 第四,要看項目方線上運行的代碼是否經過驗證(開源),經過驗證的代碼是否和審計報告中一致。通常審計會基於項目方的 Github 上代碼(而不是已經部署到線上的代碼)。如果項目最終部署到鏈上代碼沒有開源,或者和被審計代碼具有較大差異,都是需要引起重視的點。 總之,閱讀審計報告本身是一個專業性比較強的事情,建議在過程中引入獨立的第三方安全專家來提供諮詢意見。 OKX Web3 錢包安全團隊:用戶可以通過DeFi項目官網或者第三方網站,例如OKLink查看智能合約的審計報告和開源狀態,下面介紹常見的查看項目審計報告和開源狀態的步驟: 第一,查找官方公告或網站。大多數可信的DeFi項目都會在其官方網站展示其相關的文檔信息,在項目文檔頁面,通常會有一個「安全」、「審計」或者「合約地址」等頁面鏈接到審計報告及項目方部署的合約地址。除了在項目方官方網站,通常其還會在官方的社交媒體如Medium、Twitter等展示審計報告和部署的合約地址信息。 第二,在閱讀項目方官方網站以後,可以通過OKLink瀏覽器,查詢項目方給出的部署的合約地址信息,並在「合約」一欄中查看該地址部署合約的開源代碼信息。 第三,在拿到項目方的審計報告和部署合約的開源代碼信息后,可以開始閱讀項目方的審計報告,閱讀審計報告的時候有以下注意點: 1)理解審計報告的結構,對審計報告的內容有個總體的概念,審計報告大致分為簡介、發現的問題、解決方案和建議和審計結果。 2)在閱讀簡介相關內容時,我們需要關注審計報告審計的範圍和目標,通常審計報告會標註審計文件提交的Github Commit Id,我們需要對比審計報告審計的文件是否和鏈上部署的開源代碼一致。 3)在閱讀發現的問題、解決方案和建議和審計結果部分時,我們需要重點關注項目團隊是否已經按照建議修復了發現的漏洞,以及項目方是否對修改的內容進行了後續審計,以確保所有問題都得到妥善處理。 4)對比多份報告。如果項目進行了多次審計,查看每次審計報告之間的差異,了解項目的安全改進情況。 Q5:黑客攻擊歷史、賞金計劃,對DeFi項目安全性的參考價值? OKX Web3 錢包安全團隊:黑客攻擊歷史和賞金計劃,對於DeFi項目的安全性評估提供了一定的參考價值,主要體現在以下幾個方面: 第一,黑客攻擊歷史 1)揭示歷史漏洞:攻擊歷史可以展示項目曾經存在的具體安全漏洞,讓用戶了解過去哪些安全問題被利用過,以及這些問題是否得到了徹底的修復。 2)評估風險管理能力:項目如何響應歷史上的安全事件,能夠體現出其風險管理和危機處理的能力。一個積極響應、及時修復漏洞並賠償受影響用戶的項目,通常被視為更可靠和成熟的投資選擇。 3)項目信譽:頻繁的安全問題可能減損用戶對項目的信任,但如果項目能展示出從錯誤中學習並加強安全措施的能力,這也能夠構建其長期的信譽。 第二,賞金計劃 賞金計劃在DeFi及其他軟體項目中的實施,是提高安全性和挖掘潛在漏洞的重要策略。這些計劃對項目的安全性評估帶來了多方面的參考價值: 1)增強外部審計:賞金計劃鼓勵全球的安全研究者參與到項目的安全審計中。這種「眾包」方式的安全測試能夠揭露內部審計可能忽視的問題,從而增加了發現和解決潛在漏洞的機會。 2)驗證安全措施的有效性:通過實際的賞金計劃,項目可以在實戰中測試其安全措施的有效性。如果一個項目的賞金計劃歷時較長但報告的嚴重漏洞較少,這可能是一個表明項目相對成熟和安全的指標。 3)持續的安全改進:賞金計劃提供了一種持續改進的機制。隨著新技術和新攻擊手段的出現,賞金計劃幫助項目團隊及時更新和強化其安全措施,確保項目能夠應對最新的安全挑戰。 4)建立安全文化:項目是否設立賞金計劃,以及該計劃的嚴肅性和活躍度,能夠反映出項目團隊對安全的態度。一個積極的賞金計劃顯示了項目對建立堅實的安全文化的承諾。 5)提升社區和投資者信心:賞金計劃的存在和效果可以向社區和潛在投資者證明項目對安全的重視。這不僅可以增強用戶信任,還可能吸引更多的投資,因為投資者傾向於選擇那些顯示出高度安全責任感的項目。 Q6:參與DeFi時,用戶如何構建監控感知能力 BlockSec安全團隊: 以巨鯨用戶為例,巨鯨主要是指個人投資者或小團隊的投資機構,這些用戶的資金規模較大,但通常沒有非常強的安全團隊,也沒有自研安全工具的能力。因此,目前為止,實際上大部分巨鯨都沒有足夠的風險感知能力,否則就不會遭受如此巨大的損失了。 由於面臨巨大損失的風險,一些巨鯨用戶開始有意識地依賴一些公開的安全工具來監控和感知風險。現在,有很多團隊在做監控產品,但是如何選擇非常關鍵。這裡有幾個關鍵點: 首先,是工具的使用成本。許多工具雖然非常強大,但需要編程,使用成本並不低。對於用戶來說,搞清楚合約的架構,甚至收集地址都不是容易的事情。 其次,是精準度。沒有人希望在晚上睡覺時連續收到幾個警報,結果發現是誤報,這樣會讓人心態炸裂。因此,準確度也非常關鍵。 最後,是安全性。特別是在這種資金規模下,不能忽視工具研發及其團隊的各種安全風險。最近的 Gala Game 被攻擊事件,據說就是由於引入了不安全的第三方服務商。因此,可靠的團隊和可信的產品至關重要。 截至目前,也有許多巨鯨找到我們,我們會為其推薦專業的資管方案,從而使巨鯨用戶既能保證資金的安全,又能兼顧日常的資金管理如「挖提賣」,感知風險,甚至在緊急狀態下的資金撤退。 Q7:參與DeFi的安全建議、以及如何處理安全風險 BlockSec安全團隊:對於大額資金參與者,參與 DeFi 協議首要是要保證本金安全,在對可能的安全風險進行了比較充分的研究後進行投資。通常可以從以下幾個方面保證…