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