T

substrate-vulnerability-scanner

作者 trailofbits

substrate-vulnerability-scanner 可協助稽核 Substrate 與 FRAME pallets 的重大問題,例如算術溢位、panic 導致的 DoS、錯誤的 origin 檢查、不正確的 weights,以及不安全的 unsigned extrinsics。若你要針對 runtime、pallet extrinsics 與 weight 邏輯進行 Security Audit 審查,這個 substrate-vulnerability-scanner 技能很適合使用。

Stars5k
收藏0
評論0
加入時間2026年5月4日
分類安全稽核
安裝指令
npx skills add trailofbits/skills --skill substrate-vulnerability-scanner
編輯評分

這個技能評分為 78/100,屬於目錄中相當值得考慮的項目:它有明確的 Substrate 安全稽核用途、足夠的操作細節可供執行,也有一定的 repository 內容支撐安裝評估。不過,使用者仍可能會遇到一些導入門檻,因為它沒有提供安裝指令,且流程偏向文件驅動,而非工具自動化。

78/100
亮點
  • 明確鎖定 Substrate/FRAME pallets 稽核,涵蓋 runtime review、上線前評估與 dispatchable 驗證等具體情境。
  • 針對 7 種 Substrate 特有模式提供具體的漏洞覆蓋,並以專門的參考檔列出偵測模式與緩解方式。
  • 包含相當完整的操作指引,例如平台偵測標記、程式碼範例與限制條件,可降低代理在執行時的猜測成本。
注意事項
  • 未提供安裝指令或自動化腳本,因此使用者必須手動整合到自己的工作流程中。
  • 這個技能看起來偏向文件型而非執行型,因此結果可能取決於代理是否正確解讀模式,而不是照著可執行的 pipeline 直接跑出來。
總覽

substrate-vulnerability-scanner 技能概覽

substrate-vulnerability-scanner 的用途

substrate-vulnerability-scanner 技能可協助你稽核 Substrate 與 FRAME 程式碼,找出七種高風險、平台特有的錯誤,這些問題可能導致當機、拒絕服務,或未授權的狀態變更。當你需要的是偏向 Security Audit 工作流程的、聚焦的 substrate-vulnerability-scanner,而不是一般性的 Rust 審查時,它最有價值。

適合誰使用

如果你正在檢視 Polkadot 平行鏈或獨立 Substrate 鏈中的自訂 pallet、runtime extrinsics、weight 邏輯,或 unsigned transaction 驗證,就很適合使用這個技能。對安全工程師、協定開發者,以及需要先做快速安全初篩、再進一步人工深入分析的審查者來說,它都很合適。

最擅長找出哪些問題

這個 repository 針對那些常會從一般 code review 中漏掉的模式做了優化:算術溢位、由 panic 觸發的 DoS、錯誤的 origin 檢查、不正確的 weights、不安全的 unsigned extrinsics,以及其他相關的 FRAME 特有錯誤。它的核心價值不在於廣泛理解整段程式碼,而是在找出 Substrate runtime 程式碼中最關鍵的安全類別。

如何使用 substrate-vulnerability-scanner 技能

安裝並界定審查範圍

先執行搭配 trailofbits skills package 的 substrate-vulnerability-scanner install 流程,然後把目標鎖定在某個 runtime 或 pallet 邊界,而不是整個 monorepo。最好的結果通常來自於明確說出要稽核的內容、範圍涵蓋哪個 pallet 或 chain,以及你更在意可利用性、修補建議,還是清單式的初步掃描。

先讀這些檔案

先從 SKILL.md 開始,理解偵測邏輯;再讀 resources/VULNERABILITY_PATTERNS.md,看實際的檢查模式與緩解方式。如果你的 repository 有多個 pallets,優先檢查 pallet 的 lib.rsmod.rs,再看 weight 檔案與任何 unsigned transaction 驗證程式碼,因為這些地方最常是這個技能最能發揮價值的區域。

給這個技能完整的提示詞

較弱的提示會說:「掃描這個 pallet 有沒有問題。」較強的提示則會說:「請審查 pallet_balances 是否存在 Substrate 特有的漏洞。重點放在 extrinsics、storage mutation、weight calculation 與 origin checks。標出任何未檢查的算術運算、任何可由使用者輸入觸發的 panic 路徑,以及任何 unsigned extrinsic 驗證缺口。請回傳包含檔案路徑、受影響函式名稱、可利用影響與修補建議的發現。」這類提示能讓 substrate-vulnerability-scanner usage 更可靠,因為它明確告訴模型要優先看什麼,以及你想要什麼輸出格式。

提升訊號品質的工作流程建議

先把這個技能當成結構化的第一輪篩查,之後再依 runtime context 驗證每條被標記的路徑。當你貼上程式碼時,請一併附上周邊的型別定義與 helper functions,因為許多 Substrate 問題都取決於 config traits、origin types 或 weight 假設,單看某個函式往往看不出來。如果 repository 裡有多個 pallets,建議逐個 pallet 執行這個技能,而不是要求一次給出單一的全域結論。

substrate-vulnerability-scanner 技能 FAQ

substrate-vulnerability-scanner 只適用於 Substrate 嗎?

是,這個技能是為 Substrate/FRAME 模式設計的,不是給一般 Rust 應用程式用的。一般提示也能抓到一些 code smell,但當你需要的是和 pallet 語意與 dispatchable 行為綁定的鏈上 runtime 安全判斷時,substrate-vulnerability-scanner 會更合適。

我需要是 Substrate 專家嗎?

不需要,但如果你能分辨哪些程式碼是 runtime 邏輯、哪些是鏈下工具,結果通常會更好。初學者也可以使用這個技能,只要他們提供精確的 pallet 路徑,並要求具體發現,而不是泛泛而談的建議。

什麼情況下不該使用這個技能?

不要把它當成唯一的稽核方法來檢查 business logic、密碼學,或鏈下服務。如果高風險區域不在 runtime pallets 之內,這個技能可能會漏掉真正的問題,因為它的偵測規則是針對 FRAME 與 dispatchable functions 最佳化的。

它和一般安全提示詞有什麼不同?

一般提示可能會產出較寬泛的審查筆記,但這個技能是建立在一組經過篩選的 Substrate 漏洞模式,以及這些模式通常出現的位置上。當你需要對 runtime 程式碼做偏安全導向的初步檢視、又不想花太多時間猜測時,這讓 substrate-vulnerability-scanner guide 更容易用來做決策。

如何改進 substrate-vulnerability-scanner 技能

一開始就提供正確的脈絡

最好的輸入會直接指出 pallet 名稱、鏈的類型,以及你最在意的程式碼路徑。也請包含這段程式是否處理 balances、rewards、fees、governance、unsigned transactions,或 root-only calls,因為這些細節會改變最該注意哪些漏洞。

要求可利用路徑,而不只是比對結果

常見的失敗模式,是只拿到一串可疑行,卻沒有安全意義。你應該要求技能說明該模式是否真的可達、由什麼輸入觸發、影響是什麼,以及這是不是因為 config traits 或上游不變量而造成的假陽性。這會讓 substrate-vulnerability-scanner usage 在 triage 上更可操作。

第一輪之後再收斂審查範圍

如果第一次輸出太雜,請把範圍縮小到單一 pallet、單一 extrinsic,或單一關注點,例如 ensure_* 檢查、weight math,或 storage arithmetic。如果第一次輸出又太淺,請要求第二輪把被標記的程式碼與 resources/VULNERABILITY_PATTERNS.md 內的模式,以及周邊的 trait bounds 進行比對,因為這些細節往往正是區分真漏洞與安全抽象的關鍵。

評分與評論

尚無評分
分享你的評論
登入後即可為這項技能評分並留言。
G
0/10000
最新評論
儲存中...