慢霧:公鏈安全審計指南全面升級,並新增 Layer2 安全審計方法

avatar
Bitpush
07-17

隨著區塊鏈的普及,越來越多的用戶在 Layer1 上進行交易,Layer1 交易速度變慢、交易費用變高的問題逐漸凸顯。在這樣的情況下,Layer2 被認為是在不影響 Layer1 的安全性和去中心化特性的情況下、增強區塊鏈平臺可擴展性和性能的一種解決方案。據 L2BEAT 統計,現在 Layer2 生態系統的總鎖定價值達 395 億美元,包含了各種具有獨特特性的技術和框架。

圖片

(https://l2beat.com/scaling/summary)

經過多年的實戰和安全研究,慢霧安全團隊積累了大量公鏈主網安全審計的經驗和深厚的漏洞挖掘技術,並向全行業公開了我們的主網安全審計方法,希望能共同打造一個更加安全的區塊鏈生態。


安全沒有止境,審計方案也需要與時俱進,不斷滿足行業的需求。慢霧安全團隊持續關注行業的發展動向,瞭解當前區塊鏈生態中突出存在的安全問題是什麼,用戶的安全需求是什麼,以此為依據來制定和優化安全審計方案。近期,慢霧安全團隊結合當前公鏈和 Layer2 的發展情況,適時升級公鏈安全審計指南,具體的安全審計方案內容如下:

方案一 主網 & Layer2 項目安全審計


在主網 & Layer2 項目安全審計中,慢霧安全團隊採用“黑盒 + 灰盒”策略,以最接近真實攻擊的方式對項目進行快速的安全測試,我們檢查的漏洞包括:

  • 私鑰隨機數熵不足

  • 私鑰種子轉換精度損失

  • 對稱加密算法的理論可靠性評估

  • 對稱加密算法依賴庫的供應鏈安全

  • 密鑰庫加密強度檢測

  • 哈希算法長度擴展攻擊

  • 哈希算法的理論可靠性評估

  • 簽名算法的理論可靠性評估

  • secp256k1 k 值隨機性安全

  • secp256k1 r 值重用私鑰提取攻擊

  • ECC 簽名的可塑性攻擊

  • ed25519 私鑰提取攻擊

  • Schnorr 私鑰提取攻擊

  • ECC 曲線攻擊

  • Merkle 樹可塑性攻擊(CVE-2012-2459)

  • 原生特性虛假充值

  • 基於合約調用的虛假充值

  • 原生鏈交易重放攻擊

  • 跨鏈交易重放攻擊

  • 交易鎖定攻擊

  • 交易費用未動態調整

  • RPC 遠程密鑰盜竊攻擊

  • RPC 端口可識別性

  • RPC 開放跨域漏洞導致本地釣魚攻擊

  • JsonRPC 畸形包拒絕服務攻擊

  • RPC 數據庫注入

  • RPC 通信加密

  • 過度的管理員權限

  • 非隱私/非暗幣審計

  • 核心節點數量不足

  • 核心節點物理位置過度集中

  • P2P 節點最大連接數限制

  • P2P 節點獨立 IP 連接限制

  • P2P 入站/出站連接限制

  • P2P 變形攻擊

  • P2P 通信加密

  • P2P 端口可識別性

  • 共識算法潛在風險評估

  • 區塊時間偏移攻擊

  • 礦工磨礦攻擊

  • PoS/BFT 雙重簽名懲罰


方案二 源代碼安全審計


源代碼安全審計是指採用“白盒”策略,對項目的相關源代碼進行最全面的安全測試。白盒審計通常需要結合自動化靜態代碼分析和人工手動分析兩種形式。

靜態源代碼分析


慢霧安全團隊使用開源或商業代碼掃描工具對代碼進行靜態掃描,並人工解析發現的問題,我們支持所有流行語言,如 C/C++/Golang/Rust/Java/Nodejs/C#。我們檢查的靜態編碼問題包括:

  • 未使用的變量或導入 – 聲明但未使用的變量或導入模塊

  • 代碼格式問題 – 縮進不一致、行長度過長等

  • 資源未正確關閉 – 如文件、數據庫連接等未關閉

  • 魔法數字 – 直接使用數字常量而非命名常量

  • 潛在的安全漏洞 – 如 SQL 注入、XSS 等安全隱患

  • 整數溢出 – 當計算結果超出整數類型的範圍時可能導致意外行為

  • 浮點數精度問題 – 由於浮點數表示的限制,可能導致計算誤差

  • 死鎖 – 多線程編程中,線程互相等待對方釋放資源而陷入僵局

  • 競態條件 – 多線程或併發環境下,程序的行為依賴於不可控的執行順序

  • 內存洩漏 – 動態分配的內存未被正確釋放,導致程序佔用的內存持續增加

  • 無限遞歸 – 遞歸函數沒有正確的終止條件,導致棧溢出

  • 字符串格式化漏洞 – 不安全的字符串格式化可能導致安全問題

  • 除零錯誤 – 在除法運算中未檢查除數是否為零

  • 空指針解引用 – 試圖訪問空指針指向的內存位置

  • 緩衝區溢出 – 向緩衝區寫入超出其容量的數據,可能導致安全漏洞

  • 類型轉換錯誤 – 不當的類型轉換可能導致數據丟失或不正確的結果

  • 硬編碼密鑰或敏感信息 – 將密鑰或敏感信息直接寫入代碼中,可能導致安全風險

  • 代碼複雜度過高 – 函數或方法過長,邏輯分支過多

  • 代碼重複 – 相同或相似的代碼段在多處出現

  • 命名不規範 – 變量、函數、類等命名不清晰或不一致

  • 註釋不足或過時 – 缺乏必要的註釋,或註釋與代碼不符

  • 耦合度高 – 模塊間依賴關係複雜,難以維護和擴展

  • 低內聚 – 模塊或類的功能不夠集中,職責不明確

  • 異常處理不當 – 捕獲過於寬泛的異常,或忽略異常

  • 硬編碼 – 直接在代碼中使用常量值,而非配置參數

  • 代碼格式不一致 – 縮進、空格使用等不統一

  • 性能問題 – 如不必要的循環、頻繁的對象創建等

  • 可測試性差 – 代碼難以進行單元測試或集成測試

  • 違反設計原則 – 如單一職責原則、開閉原則等

  • 可讀性差 – 代碼結構混亂,難以理解

  • 不安全的隨機數生成 – 使用不適合安全用途的隨機數生成方法

  • 時間和狀態問題 – 如 TOCTOU(Time-of-check to time-of-use) 漏洞

  • 路徑遍歷 – 未正確驗證文件路徑,可能導致訪問未授權的文件

  • 依賴庫過時 – 引入的庫已失去維護或存在安全漏洞

手動代碼審查


慢霧安全團隊通過逐行檢查代碼,查找編碼缺陷和邏輯錯誤,我們關注的漏洞範圍主要包括:

  • 加密簽名安全

  • 賬號與交易安全

  • RPC 安全

  • P2P 安全

  • 共識安全

  • 業務邏輯安全

方案三 應用鏈安全審計


慢霧安全團隊採用“白盒”策略,對項目進行全面的安全測試,尋找常見的編碼陷阱,如:

  • 重放漏洞

  • 重新排序漏洞

  • 競態條件漏洞

  • 權限控制漏洞

  • 塊數據依賴漏洞

  • 函數顯式可見性

  • 算術精度偏差漏洞

  • 惡意事件日誌

  • 異步調用安全


目前我們支持:


  • 基於 Cosmos-SDK 框架的區塊鏈審計

  • 基於 Substrate 框架的區塊鏈審計

結語

在過去幾年裡,已有近百個知名公鏈項目通過慢霧(SlowMist) 的不同類型公鏈安全審計,如 Prysm、TON、Mantle、Vision Network、Metis、Acala、Eden 等。慢霧(SlowMist) 也審計了多個知名 Layer2 項目,如 Morph、Bitlayer、Merlin Chain、RSS3 Network 等。歡迎有審計需求的項目方聯繫慢霧安全團隊郵箱 team@slowmist.com 諮詢合作 :)

完整內容已在 GitHub 開源(https://github.com/slowmist/Cryptocurrency-Security-Audit-Guide),歡迎點擊閱讀原文跳轉至 GitHub 閱讀。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論