IsSlashy/solana-security-checklist
GitHub: IsSlashy/solana-security-checklist
一份面向 Solana 程序开发者的安全清单,汇总 12 类最常见的高危漏洞模式及其单行修复方案,帮助团队在正式审计前自行排查资金安全问题。
Stars: 0 | Forks: 0
# Solana 安全清单
导致 Solana 程序资金被抽干的 12 类漏洞,包含易受攻击的模式以及针对每一项的
单行修复方案。涵盖 Anchor 和原生 Rust。免费、独立、可直接复制粘贴。
在此阅读:[SECURITY-CHECKLIST.md](./SECURITY-CHECKLIST.md)
## 为什么会有这个清单
大多数 Solana 漏洞利用并非什么深奥的密码学问题。它们往往是因为一个未被
约束的账户、一个未被要求的签名者、一个向错误
方支付的 `close` 操作,或者一个只被检查了一半的证明。这些同样枯燥且重复出现的
漏洞类别在一次又一次的审计中频频出现,而这恰恰是
清单能够捕捉到的漏洞,也是赶进度时的一双新眼睛容易漏掉的漏洞。
一次完整的人工审计通常需要花费数千到数万美元,而审计人员大部分的
初步工作都花在了寻找这些同样枯燥的漏洞上。请先自行清除它们。你的
代码不会因为一个清单漏洞而感到难堪,而且你付费的审计时间可以
投入到更复杂的逻辑中。
## 包含哪些内容
[SECURITY-CHECKLIST.md](./SECURITY-CHECKLIST.md) 涵盖了以下内容,每一项都提供了存在漏洞的
代码片段和单行修复方案:
1. 缺少 `has_one` 绑定(托管资金抽干)
2. 缺少所有者检查(原生)
3. 缺少签名者
4. 存在签名者但未与存储的权限绑定
5. 非规范 PDA bump
6. 任意 CPI 目标
7. 整数溢出和下溢
8. `close =` 窃取托管的本金
9. 账户重新初始化(`init_if_needed` 重新初始化)
10. SPL token mint 和所有者不匹配
11. 重复的可变账户(自转账别名)
12. 接受仅验证了一半的证明(如果您进行了任何验证)
每项检查都标记为“严重”或“高危”,并且适用于 Anchor 和原生
(`solana-program`)程序。
## 如何使用它
对照这 12 项检查,逐一审查您程序中的每个指令处理程序。对于每一项
检查,要么用一行理由将其标记为 PASS,要么记录一个发现。仔细阅读实际的
`#[derive(Accounts)]` 结构体(Anchor)或手动账户解析(原生),
检查每个余额上的算术运算,以及 lamports 或 token 流动的每一个
地方。不要因为代码乍一看看起来很干净就跳过检查,这正是这些
漏洞隐藏的地方。
## 编写者信息
基于在真实的 Solana 程序(一种后量子隐私支付协议和一个 P2P 托管)上部署的实际修复构建,并在 devnet 上进行了验证。这些检查不是通用的
模板,它们是在主网部署前实际捕获并修复的漏洞类别,
包括向错误接收者支付的托管、向 keeper 而非用户关闭的退款、
缺少校验和的一次性签名,以及多个指令仅验证了一半的
STARK 证明。
## 本清单的局限性
这是一个包含 12 项检查的预览,并非人工审计。它不证明经济或
博弈论的稳健性,不建模 MEV 或预言机操纵,不正式验证
电路,也不替代 fuzzing。通过检查仅意味着“未发现已知的清单漏洞”,
绝不代表“该程序是安全的”。在主网上使用真实资金之前,请务必
进行人工审计并运行 fuzzer。这份清单的存在是为了让这些后续步骤更有价值,而不是
取代它们。
## 完整版本(可选)
如果您想要完整的审查流程,这里有一款付费的 Claude Code 技能:Solana
Pre-Audit Gate(24 欧元)。它通过 8 个步骤运行 45 项检查,首先映射您的整个
程序,并编写一份分类报告(严重 / 高危 / 中危 / 信息),
其中包含 file:line 引用以及针对每个发现的具体修复。这里的 12 项检查是
其核心子集,它们可以独立使用。完整的技能在这里:
https://slashyfx.gumroad.com/l/solana-pre-audit-gate
## 许可证
MIT。可随意使用、fork,或将其粘贴到您自己的审查文档中。参见 [LICENSE](./LICENSE)。
## 贡献
发现了此清单遗漏的漏洞类别,或者有错误、可以更严谨的修复方案吗?
欢迎提交 issue 或 PR。Solana 的漏洞攻击面在不断演进(Token-2022、新的 CPI
模式、新的证明系统),此清单也应随之不断更新。
标签:Rust, Solana, 区块链安全, 可视化界面, 智能合约审计, 网络流量审计, 防御加固