工程開發
substrate-vulnerability-scanner avatar

substrate-vulnerability-scanner

分析 Substrate/Polkadot 運行時與 FRAME pallet,檢測包含算術溢位、拒絕服務 (DoS) 與權限檢查不當等 7 種關鍵漏洞。

簡介

Substrate 漏洞掃描器是一款專為 Substrate 區塊鏈開發人員與審計師設計的專業安全分析工具,適用於 Polkadot 平行鏈與獨立鏈。此工具專注於識別 FRAME pallet 中的平台特有安全模式,若未經處理,這些漏洞可能導致節點崩潰、拒絕服務 (DoS) 攻擊、未經授權的存取或資金損失。它為審計 Substrate 鏈核心的 dispatchable 外部函數與運行時配置提供了系統化的方法。

  • 執行靜態分析以檢測 7 種關鍵漏洞模式:算術溢位(缺少 checked/saturating 運算)、Panic DoS(不安全的 unwrap/expect/索引)、權重與手續費(基準測試不足/DoS 風險)、Verify-First-Write-Last 違反、無簽名交易驗證繞過、不安全的隨機數(隨機數種子問題)以及錯誤的 Origin 檢查。

  • 檢查程式碼庫結構,包含 lib.rs 中的 pallet 實作、運行時配置及基準測試檔,以確保符合安全最佳實踐。

  • 協助驗證儲存寫入與事件觸發是否符合 Substrate v0.9.25+ 版本中引入的交易安全性標準。

  • 支援整合 Rust 原生工具,如 cargo-fuzz、用於遷移測試的 try-runtime,以及用於權重計算驗證的 Substrate 原生基準測試框架。

  • 提供可執行的修復建議,精確指出問題程式碼行數並針對發現的安全缺陷提出實作修正建議。

  • 開發人員應在自定義 pallet 的發布前安全評估或運行時升級的例行審計期間調用此技能。

  • 掃描器預期目標專案具備標準的 Rust Substrate 專案結構;使用者須確保目標專案包含適當的 frame-support 依賴項以實現完整覆蓋。

  • 常見用法包括掃描 Panic 潛在點、審查算術邏輯以防止溢位,並驗證所有權限操作是否使用 ensure_root 或安全自定義 Origin,而非不安全的 ensure_signed。

  • 此工具對於維護高風險 pallet 的開發人員特別有效,因為在這些場景中,權重計算錯誤可能導致垃圾郵件攻擊或營運不穩。

倉庫統計

Star 數
4,905
Fork 數
428
Open Issue 數
21
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月30日 上午10:05
在 GitHub 查看