Frankcastleauditor/Solana-Audit-Arena

GitHub: Frankcastleauditor/Solana-Audit-Arena

每周发布的 Solana 智能合约安全竞赛平台,让安全研究者通过审计 AI 生成的程序来磨练技能、建立履历。

Stars: 8 | Forks: 1

# ⚔️ Solana 审计竞技场 **每周一次的 Solana 智能合约安全竞赛 — 由 [Frank Castle](https://x.com/0xcastle_chain) 主办** ## 这是什么? Solana 审计竞技场是一个免费、开放的周赛,安全研究人员在这里审计 AI 生成的 Solana 程序,以尽可能多地发现漏洞。 每周一,这里会发布一个新的 Anchor 程序。所有程序均使用 [Safe Solana Builder](https://github.com/Frankcastleauditor/safe-solana-builder) 构建 —— 这是一个专注于安全的 Solana 程序生成器,强制执行安全模式和源自审计的规则。你有**一周的时间**来查找 bug、编写 PoC,并将你的发现作为 GitHub Issue 提交。社区会公开审查和讨论每一份提交。Frank Castle —— 一位拥有 100 多次协议审计经验的资深 Solana 安全研究员 —— 将对有效性和严重性做出最终裁决。 **之所以存在这个项目,是因为初级安全研究人员值得拥有一个试炼场。** 对于新手来说,目前没有清晰的路径让他们在真实的 Solana 代码库中磨练技能、凭实力竞争并获得关注。这个竞技场就是那条路径。 ## 为什么要参加? - **建立你的审计履历**,在公开排行榜上展示经过验证的发现 - **从真实的漏洞模式中学习**,涵盖 DeFi、Staking、治理、稳定币等领域 - **获得社区反馈** —— 每一份提交都会被公开审查和讨论 - **获得关注** —— 顶级表现者将在 Frank Castle 的 X(拥有 4k+ 关注安全的粉丝)上获得推介 - **最高奖项**:领先的研究人员将**受邀加入与 Frank Castle 的私有审计项目** —— 真实的有偿工作、真实的经验、真实的资历。 ## 运作机制 ### 每周周期 | 时间 | 内容 | |-----|-------------| | **周一** | 发布新程序 → 在 X 上发布公告帖并附上此仓库链接 | | **周一至周日** | 开放提交窗口 → 将发现作为 GitHub Issues 提交 | | **下周一** | Frank 验证、评分并在 X 上发布结果 → 公布新程序 | ### 时间线 - **提交窗口**:周一 00:00 UTC → 周日 23:59 UTC(完整的 7 天) - **社区审查**:持续进行 —— 任何人都可以在窗口期间及之后对任何提交发表评论 - **最终结果**:在下一个周一与新程序公告一同发布 - **逾期提交**:不予接受。截止期限是硬性的。 ## 提交格式 将每个发现作为本仓库中的一个**独立 GitHub Issue** 提交。 ### Issue 标题格式 ``` [Week X] [Severity] Short descriptive title ``` 示例:`[Week 3] [Critical] Unauthorized withdrawal via missing signer check in unstake()` ### Issue 正文模板 请严格使用此模板 —— 未遵循格式的 Issues 将被标记为 `invalid-format`,并在更正前不予评分(这将消耗你的提交窗口时间)。 ``` ## 发现 **Week**: [NUMBER] **Researcher**: [Your GitHub handle + X handle] **Severity**: [Critical / High / Medium / Low / Informational] **Category**: [e.g., Missing signer check, Arithmetic overflow, PDA seed collision, CPI validation, etc.] **Affected function**: [instruction name or function] ## 描述 [Clear explanation of the vulnerability — what's wrong and why it matters] ## 影响 [What can an attacker do? Quantify if possible — e.g., "drain all vault funds", "bypass admin check"] ## Proof of Concept - REQUIRED [Provide a concrete PoC that demonstrates the exploit. This can be:] - A TypeScript/Rust test that triggers the vulnerability - A step-by-step transaction sequence with account setups - A code diff showing the exact exploit path with expected vs actual behavior [The PoC must be detailed enough that someone can independently verify the vulnerability without guesswork.] ## 建议修复 [How to patch it — include code if possible] ``` ### Issue 标签 Frank Castle 将在评审期间对 Issues 进行标记: | 标签 | 含义 | |-------|---------| | `valid` | 确认的漏洞,已评分 | | `invalid` | 非真实漏洞 | | `duplicate` | 相同发现已由其他研究人员更早提交 | | `invalid-format` | 未遵循提交模板 | | `critical` / `high` / `medium` / `low` | 评委判定的最终严重性 | | `best-find` | 本周最佳发现 | | `week-N` | 发现所属的周次 | ## 社区审查 **每一份提交都是公开的。** 这是有意为之。 - **任何人**都可以对任何 GitHub Issue 发表评论 —— 质疑严重性、询问 PoC、建议更好的修复方案或确认该发现 - 鼓励社区讨论,这有助于每个人学习 - 评论**不**影响评分 —— 只有 Frank Castle 的最终判决决定积分 - 保持建设性。毫无解释地贬低他人的提交是没有帮助的 - 如果你发现某人的 PoC 实际上不起作用,请解释原因 —— 那是有价值的反馈 ### 为什么要公开提交? 1. **透明度** —— 每个人都能看到发现是如何被评判的 2. **学习** —— 阅读其他研究人员的提交能教你新的模式 3. **问责制** —— PoC 由社区验证,而不仅仅是一个人 4. **归档** —— Issues 标签页变成了一个可搜索的 Solana 漏洞模式数据库 ## 评分 | 严重性 | 积分 | |----------|--------| | Critical | 10 | | High | 7 | | Medium | 3 | | Low | 1 | | Informational | 0(确认但无积分) | ### 严重性定义 - **Critical**:直接的资金损失、协议完全被接管或所有资产被永久冻结。除了正常交易外无其他前置条件。 - **High**:在特定但现实的条件下造成的重大资金损失、权限提升或核心访问控制被绕过。 - **Medium**:有限的资金损失、拒绝服务或需要特定条件或影响有限的状态损坏。 - **Low**:不会导致资金损失的轻微问题、最佳实践违规或 Gas 优化。 - **Informational**:代码质量建议、文档缺失或没有实际攻击路径的理论问题。 ### 评分规则 - **首位发现者获全额积分。** 如果多名研究人员报告了相同的漏洞,只有第一个有效提交(以 GitHub Issue 时间戳为准)获得积分。重复提交被标记为 `duplicate` 并得 0 分。 - **PoC 是强制性的。** 没有有效概念验证(Proof of Concept)的提交将被标记为 `invalid-format` 且不予评分。无例外 —— 如果你无法证明它,它就算不上一个发现。 - **严重性是最终的。** Frank Castle 在考虑社区讨论后分配最终严重性。该分类用于评分目的。 - **无效发现**:提交明显不是漏洞的发现(没有分析的误报)可能会导致每个无效发现被扣 1 分,以 discourage 垃圾信息。请运用判断力 —— 如有疑问,解释你的推理,这不会被计入扣分。 ## 提交规则 1. **每个发现一个 Issue。** 不要将多个漏洞打包到一个 Issue 中。每个漏洞都需要有自己独立的 Issue 和 PoC。 2. **仅限个人。** 不允许团队提交。你可以公开讨论一般的 Solana 安全概念,但协调提交将被取消资格。 3. **仅限原创工作。** 不接受通过自动扫描器运行程序并粘贴原始输出。你必须在描述中展示你的理解并提供真实的 PoC。 4. **需要 PoC。** 每一份提交必须包含一个能独立验证漏洞的概念验证(Proof of Concept)。“这看起来不对”不是一个发现。“这是确切利用方法”才是。 5. **提交后不可编辑。** 一旦你提交了 Issue,请不要编辑正文。如果你需要补充背景信息,请添加评论。提交后编辑原始 Issue 正文可能会导致该发现被取消资格。 ## 排行榜 **总排行榜** 维护在本仓库的 [`LEADERBOARD.md`](./LEADERBOARD.md) 中,并会在每周一随当周结果更新。 ### 亮点 每周,X 上的结果帖子将展示: - 本周 **前 3 名研究人员** - 本周 **最佳发现**(最具创意或影响力) - **新星研究人员** —— 进步最大的新参与者 ## 评审 所有提交的**最终判决**均由 **Frank Castle** ([@0xcastle_chain](https://x.com/0xcastle_chain)) 做出,并参考社区讨论。 Frank 已审计 100 多个协议和 50 多个 Solana 程序,识别出 300 多个高危和严重漏洞。过往合作方包括 Cantina、Spearbit(资深研究员)和 Pashov Audit Group。 ## 常见问题 **Q: 我是一个完全的新手。我可以参加吗?** A: 当然可以。这就是为你准备的。你在一周内尝试破解真实程序中学到的东西,比几个月的教程还要多。即使你第一周发现了 0 个 bug,你也会通过阅读其他人的提交学到东西。 **Q: 我需要是 Rust 专家吗?** A: 你需要能够阅读 Rust 并理解 Solana 的账户模型。如果你能理解 Anchor 程序的逻辑,你就准备好了。 **Q: 参加有费用吗?** A: 没有。免费。永远免费。 **Q: 我可以使用 AI 工具辅助审计吗?** A: 可以 —— 但你必须理解并验证你提交的每一个发现。没有分析的原始扫描器输出将被拒绝。如果你将 AI 作为起点,然后自己验证并解释该发现,那是允许的。你的 PoC 仍然需要有效。 **Q: 程序会随时间推移变难吗?** A: 会。早期的程序会有比较明显的 bug。随着社区水平的提升,复杂度也会提升。 **Q: 我如何获得“加入私有审计”的奖品?** A: 在评估点(会提前公布)成为总排行榜上的领先研究员。这不仅仅关乎积分 —— 一致性、发现质量和展示出的成长都会被纳入考量。 **Q: 公开提交不会让人互相抄袭吗?** A: 时间戳很重要。第一个有效提交获得积分。如果有人在你之后提交了相同的发现,他们会被标记为 `duplicate`。这实际上是奖励速度和信心 —— 确定后就提交,不要等待。 **Q: 我可以评论其他人的提交吗?** A: 可以 —— 这正是重点所在。社区审查能让每个人变得更强。挑战 PoC、建议更好的修复、确认发现。只要保持建设性。 ## 链接 - **X**: [@0xcastle_chain](https://x.com/0xcastle_chain) - **GitHub**: [Frankcastleauditor](https://github.com/Frankcastleauditor) - **Safe Solana Builder**: [github.com/Frankcastleauditor/safe-solana-builder](https://github.com/Frankcastleauditor/safe-solana-builder) *由 Frank Castle 构建。逐个研究员地守护 Solana 安全。*
标签:AI生成代码, Anchor框架, ASN解析, DeFi, Proof of Concept, Rust, Solana, Web3安全, 加密货币, 区块链安全, 去中心化应用, 可视化界面, 安全众测, 开发者社区, 智能合约审计, 编程竞赛, 网络安全竞赛, 网络流量审计, 通知系统, 配置错误, 链上安全