Web3.0審計指南:CertiK審計有何不同?涵蓋哪些方面 又怎樣提升項目安全性?

發表於 2023-03-06 20:36 作者: CertiK中文社區

在保障區塊鏈項目的安全及穩定方面,審計一直以來都發揮着至關重要的作用。

CertiK的審計專家團隊擁有豐富的經驗,迄今爲止已獲得了4000家企業客戶的認可,挖掘了超過70000個代碼漏洞,保護了超過3600億美元的數字資產。

CertiK的審計過程全面且徹底,我們的安全專家會細致檢查項目的設計、架構和源代碼,以發現漏洞或風險。

憑借我們的安全專業知識和業內領先的端到端安全解決方案,CertiK持續引領着Web3.0行業的安全領域,提供從最基本的token到最復雜的DeFi協議乃至區塊鏈整體架構的安全審計服務。

但是想必會有用戶疑惑於我們具體是如何進行審計的,審計方法是什么,關鍵的審計特點又是什么?

往下看,這篇文章就可以給出答案。我們的審計流程的第一步,是獲得源代碼並搭建一個定制環境。

第二步是審查項目文件並進行威脅模型分析,隨後使用內部工具和人工審計來尋找安全漏洞和設計缺陷。

第三步是提交一份包含所發現的風險及其修復建議的初審報告。

第四步則是出具終審報告,該報告將詳細描述審計工作爲項目帶來的幫助,並展示了CertiK審計專家是如何協助項目規避Web3.0關鍵漏洞的。

環境配置

目前,CertiK的審計及端到端安全解決方案已覆蓋目前市面上大部分生態系統並支持幾乎所有主流編程語言,就區塊鏈平台、數字資產交易平台、智能合約的安全性等領域爲各個生態鏈提供安全技術支持。

雖然某些編程語言所編寫的項目可能需要非常復雜的配置過程,但這個問題可以通過使用預先配置的虛擬機環境得到一定程度的解決——將代碼導入到配置好的環境中,檢查其能否成功編譯和部署,該環境的設置使安全專家能夠運行代碼並編寫測試,以獲得對項目更深刻的理解。

架構審計

確定項目的架構對於了解系統和安全相關的關鍵組件與部分至關重要。

對架構的徹底理解對於有效的威脅模型分析也是必不可少的。

理想情況下,項目團隊會提供一份白皮書和技術文件,概述項目的詳細架構。

然而在許多情況下,這些架構文件是缺失的,審計員必須進行架構提取以確定架構。

架構提取包括檢查組件之間的交互、外部輸入的處理、庫的導入、新想法的實現、對代碼標准的遵守以及對並發的支持。

對於常見的項目類型(例如包含存款、貸款、手續費、收入、價格預言機和清算組件的借貸協議)來說,利用工具生成調用圖和存儲布局圖來輔助進行可視化的過程可能很簡單。

然而,對於組織不完善或非常規的項目,審計員可能需要通過逐個分析功能和源文件來手動確定組件結構及其關系。

確定一個項目是原創設計還是另一個項目的分叉也很重要。因爲分叉很有可能會繼承來自其初始項目的漏洞——PancakeBunny協議遭到閃電貸攻擊,損失超過4000萬美元,其源代碼被其他多個項目分叉,由於未能識別和修復漏洞,導致他們遭受了相同的攻擊。但本來一個徹底的安全審計就可以發現這個漏洞從而規避此種攻擊。

威脅模型分析

威脅模型分析包括對一個項目的關鍵資產、資源和安全需求的描述,以及劃分出了一個潛在漏洞和安全威脅的列表。

抽象的描述是在架構審計期間建立的,安全需求可以通過基於系統架構提出並回答有關問題來確定。例如,在一個治理系統中,可以嘗試提出以下問題:

  • 誰可以創建提案?

  • 創建一個提案有哪些要求?

  • 一個提案需要多少百分比的票數才能通過?

  • 提案的驗證期有多長?

  • 項目使用的是什么投票token和機制?

  • 特權账戶可以修改哪些配置?

一旦確定了安全需求,就該考慮可能會面臨的威脅了。

在Web2.0中,常用的威脅分類模型是STRIDE,它將威脅分爲六類:欺詐、篡改、抵賴、信息泄漏、拒絕服務和權限的提升。

這個方法在Web3.0中需要稍作修改。例如在DeFi項目中,源代碼是在區塊鏈上驗證的,所有交易信息和存儲數據都是公开的,所以“信息泄露”的威脅並沒有那么大。

威脅模型分析最後的結果將會生成一個安全檢查表,用以指導安全審計,並可更加全面的評估系統安全狀況。

靜態分析和形式化驗證

我們通過端到端安全解決方案以及運用CertiK豐富的審計經驗和技術底蕴來爲Web3.0提供安全服務。

包含在端到端安全解決方案內的工具和服務均依托於一個龐大數據庫——這些數據來自CertiK數以千計的審計歷史和挖掘的超過70000個漏洞。

其中,我們的安全工具會在源代碼和字節碼層面對代碼進行靜態測試,識別不安全的代碼模式並生成圖表以提供對智能合約的可視化分析。

隨着機器學習與智能合約風險環境的不斷變化、威脅情報庫和智能合約漏洞庫的不斷積累,這些安全工具也將隨之進步。

除了靜態分析外,我們還通過形式化驗證來確保項目代碼的安全,並確保程序運行符合其預期的規範。

形式化驗證,是一種驗證計算機程序是否按照預期運行的數學證明方法。

它將程序的屬性和預期行爲表達成爲數學公式,然後使用自動化工具來檢查這些公式是否成立。該過程有助於確保其程序符合預期,其主要發現包括邏輯問題、重入風險、缺乏訪問控制、溢出/下溢和gas優化等等。

但最終產生的結果需要經過審計專家的人工驗證,以保證結果的准確。

人工審計

安全工具的確非常強大但是也有其相應的局限性,這也是我們經驗豐富的工程師團隊發揮作用的地方。

人工審計的內容包括對代碼進行極爲細致的逐行檢查,這是整個審計過程中最爲耗時的步驟。

人工審計可以分爲兩個部分:微觀審計和宏觀審計

微觀審計包括分析代碼以了解所有功能,在這個過程中我們經常會發現代碼的問題。這一審計部分涉及到的技術包括分析每個參數、變量和字段,審計函數訪問控制和修改狀態變量,以及對類似的函數進行比較。

而宏觀審計是通過了解項目的調用/合約層次,搜索狀態變量和函數的出現位置,以及檢查不同的假想場景來識別全局漏洞

例如那些關鍵性漏洞的誘因通常不只局限於單一的函數,而是可能由位於代碼不同部分、多個功能之間的不正確交互導致。

上文我們提到了架構審計和從威脅建模結果中得出的“安全檢查表”,人工審計的過程也將參考這些結果。

在人工代碼審計過程中,審計員將同時採用黑客和开發者的視角。黑客的思維方式將被用來發現那些可能被利用的潛在漏洞,而开發者的思維方式將被用來驗證執行情況並識別代碼中的不足,如低效的gas使用和缺乏的代碼模塊化。

在必要情況下,我們還會將單元測試納入人工審計。

單元測試是根據每個項目的不同特點爲其量身定制的安全評估,包括驗證項目組件是否正確地響應特定的輸入、輸出和邊緣案例。

如果單元測試被成功運行,那么就意味着代碼的確是在按照預期規範運行。

針對大型項目,CertiK將安排多位審計員作爲一個團隊進行審計,建立審計計劃並分配相應職責,定期舉行會議以討論審計進度和結果,並在必要時協同完成工作。除此之外,也將爲項目與審計團隊之間建立一個便捷的溝通渠道,以便第一時間就項目審計相關內容進行溝通。

CertiK的審計方法整合了各項安全技術,包括靜態分析、形式化驗證和人工審計,以確保項目代碼庫的安全。這種全面的方法可將安全漏洞發生的風險降到最低,爲項目賦予對其代碼正確性和安全性的充分信心。

審計報告和代碼修復

我們的審計報告從項目的類型、生態系統和審計範圍的描述开始,對項目的安全狀況進行了詳細的分析。這些報告解釋了我們用於評估項目安全性的方式和審計方法。

而爲了讓讀者更容易理解報告中的安全評級和術語,在報告的附錄部分,我們提供了有關審計的定義和其他信息,這些信息包括圖表和審計員注釋。所做的具體測試(如形式化驗證)將在報告中專門提及,解釋其執行過程和最終的結果。

我們提供的每個風險「Finding」都包括對項目中發現的問題進行識別、分類和提供的建議,以及對這些內容的詳細解釋。

每個挖掘出的風險「Finding」均包括標題和數據(如類別、嚴重程度、文件位置和解決狀態)。

接下來的四個版塊准確地詳述了安全注意事項:

Description(描述):定義了風險漏洞的背景並概述了其安全影響。

Scenario(情景):介紹了觸發一個漏洞或者造成項目故障的步驟及其前提。

Proof of Concept(概念驗證):包括了漏洞利用腳本和說明,以及用於在客戶端重現漏洞時的預期日志輸出。

Recommendations(建議):通過提供可操作的解決或修復措施來總結所有調查結果。

這些版塊提供了詳細及具備針對性的信息,以便於讀者理解。

在修復階段,項目團隊將與審計團隊進行持續地溝通,進一步提高項目的安全性。

初審報告是出具給項目團隊的,隨後項目團隊可以通過源代碼更新或是評論來回復。我們將根據項目團隊提交的回應對評估結果進行更新,並在終審報告中標注其對代碼做出的修改。

這一過程可以重復進行直到項目團隊對安全評估滿意爲止。終審報告除提交給項目團隊以外,也將公布於CertiK安全排行榜,社區成員和其他用戶均可免費查看該項目在接受CertiK審計和安全服務後提升安全等級的細節內容。

寫在最後

除了審計服務,CertiK的安全工程師還身兼威脅事件響應、安全研究、發表教育技術類分析、參與會議、奪旗比賽和內部培訓多領域技能,這些多樣化的技能和經驗幫助更加深入了解安全領域,且通過持續的教育和研究深入理解最新的行業標准和最佳實踐。

CertiK的審計有幾個有別於其他審計服務的主要特點:

① 我們的定制環境允許審計專家運行專有工具和定制測試。這將確保全面且徹底地測試項目的安全性。

② 我們的審計專家擁有的專業水平可以確保人工審計能在最高水平上進行代碼的細致檢查。因此即便是最爲復雜的代碼庫,我們也可以挖掘出潛在的漏洞。

③ CertiK的審計報告是完全定制的,爲項目團隊提供風險的解決方案。項目的开發者可以獲取解決風險和漏洞的可操作步驟,從而提高項目的整體安全性。

CertiK審計服務的目的是爲項目的代碼提供全面的安全評估。因此這意味着盡管項目代碼得到了基礎安全評估,但同樣也非常需要CertiK的安全解決方案以進一步增強安全性。

CertiK的端到端安全解決方案中包含了滲透測試、漏洞賞金以及額外的測試服務,可進一步確保項目的安全。

Skynet天網系統和24*7威脅事件響應可爲項目提供鏈上監控,防止惡意利用和威脅。

安全排行榜和Web3.0項目團隊的KYC盡調可以提高社區透明度和信任度。

CertiK端到端安全解決方案不僅能爲靜態和鏈上運行環境中的項目提供全面的安全性,同時也可做到在社區內建立信任,用戶可以更好地了解他們正在交互的項目的風險——這也是我們公开審計報告的原因。

提高整個Web3.0行業的安全標准和透明度是我們的使命,其中的部分內容在本文中得以體現。我們期待Web3.0的未來是健康且安全的,也將一步步助力其達成這個目標。

標題:Web3.0審計指南:CertiK審計有何不同?涵蓋哪些方面 又怎樣提升項目安全性?

地址:https://www.coinsdeep.com/article/11089.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊