关于 secure-workflow-guide
secure-workflow-guide 引导智能合约团队完成五步安全审查,涵盖 Slither 扫描、适用特性检查、图表、属性文档和人工分析。它生成针对项目的发现结果及优先级行动计划。
主要功能
- 01Slither 漏洞扫描与结果分类
- 02升级能力和 ERC 一致性检查
- 03生成合约安全图表
- 04安全属性与测试指导
- 05人工检查常见风险区域
- 06提供优先级行动计划
适用场景
- 01在代码提交时审查合约
- 02部署前检查合约安全
- 03规划属性测试或符号执行
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trailofbits/ skills --skill secure-workflow-guide安装后在 Claude Code 中输入/secure-workflow-guide确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/trail-of-bits-mark.svgresources/EXAMPLE_REPORT.mdWORKFLOW_STEPS.md详细介绍
安全工作流指南
目的
介绍 Trail of Bits 的安全开发工作流——一个包含 5 个步骤的流程,旨在提升整个开发过程中的智能合约安全性。
使用时机:每次提交代码时、部署前,或需要安全审查时
5 步工作流
本安全工作流包括:
步骤 1:检查已知安全问题
运行 Slither,通过 70 多个内置检测器查找常见漏洞:
- 按严重程度解析发现的问题
- 附上文件引用并解释每个问题
- 提供修复建议
- 协助甄别误报
目标:获得干净的 Slither 报告,或记录问题的甄别结果
步骤 2:检查特殊功能
检测并验证适用的功能:
- 可升级性:slither-check-upgradeability(17 种升级风险)
- ERC 一致性:slither-check-erc(6 项常见规范)
- 代币集成:推荐使用 token-integration-analyzer 技能
- 安全属性:针对 ERC20 使用 slither-prop
注意:只运行适用于代码库的检查
步骤 3:可视化安全检查
生成 3 张安全图表:
- 继承关系图:识别名称遮蔽和 C3 线性化问题
- 函数摘要:展示可见性和访问控制
- 变量与授权:梳理谁可以写入状态变量
检查每张图表,查找安全问题
步骤 4:记录安全属性
协助记录关键安全属性:
- 状态机转换和不变量
- 访问控制要求
- 算术约束和精度
- 外部交互安全性
- 标准一致性
然后设置测试:
- Echidna:使用不变量进行基于属性的模糊测试
- Manticore:通过符号执行进行形式化验证
- 自定义 Slither 检查:针对项目特定业务逻辑的检查
注意:对安全最重要的工作
步骤 5:人工审查领域
分析自动化工具无法发现的问题:
- 隐私:链上机密信息、是否需要承诺-揭示机制
- 抢先交易:滑点保护、交易排序风险、MEV
- 密码学:随机性不足、签名问题、哈希碰撞
- DeFi 交互:预言机操纵、闪电贷、对协议的假设
在代码库中搜索这些模式并标记风险
如需了解每个步骤的详细说明、命令和解释,请参阅 WORKFLOW_STEPS.md。
工作方式
调用后,我将:
- 探索代码库,了解其结构
- 运行步骤 1:Slither 安全扫描
- 检测并运行步骤 2:特殊功能检查(仅运行适用的检查)
- 生成步骤 3:可视化安全图表
- 指导步骤 4:记录安全属性
- 分析步骤 5:人工审查领域
- 提供行动计划:按优先级排列的修复项和后续步骤
会根据以下情况进行调整:
- 已安装的工具
- 适用于项目的内容
- 当前的开发阶段
合理化借口(不要跳过)
| 借口 | 错误原因 | 必须采取的行动 |
|---|---|---|
| “没有安装 Slither,我会手动检查” | 手动检查会漏掉 70 多种检测器模式 | 安装并运行 Slither,或说明受阻原因 |
| “无法生成图表,我会描述架构” | 文字描述并非可视化内容——图表能揭示文字容易忽略的模式 | 执行 slither --print 命令,生成实际的可视化输出 |
| “未检测到升级,跳过可升级性检查” | 代理和升级往往是隐式的或计划中的 | 跳过步骤 2 的检查前,先通过搜索代码库进行验证 |
| “这不是代币,跳过 ERC 检查” | 即使没有明显的 ERC 继承,代币也可能已集成 | 跳过前,检查代币交互、转账和余额 |
| “现在无法设置 Echidna,以后再建议” | 基于属性的测试是步骤 4 的内容,并非可选项 | 现在记录属性,并设置模糊测试基础设施 |
| “没有 DeFi 交互,跳过预言机/闪电贷检查” | DeFi 模式可能出现在意想不到的地方(价格馈送、外部调用) | 完成步骤 5 的手动审查,并搜索代码库中的相关模式 |
| “这一步不适用于我的项目” | 未经验证就声称“不适用”=可能遗漏漏洞 | 声明不适用前,先通过明确的代码库搜索进行验证 |
| “我会提供通用安全建议,而不是执行工作流” | 通用建议无法直接采取行动,工作流能发现具体问题 | 执行全部 5 个步骤,生成针对项目的发现,并附上文件:行号引用 |
输出示例
完成工作流后,你将获得一份全面的安全报告,涵盖:
- 步骤 1:Slither 发现的问题,包括严重性、文件引用和修复建议
- 步骤 2:特殊功能验证结果(可升级性、ERC 一致性等)
- 步骤 3:分析继承关系、函数和状态变量授权的可视化图表
- 步骤 4:记录的安全属性和测试设置(Echidna/Manticore)
- 步骤 5:手动审查发现的问题(隐私、抢先交易、密码学、DeFi 风险)
- 行动计划:包含工作量估算的严重/高/中优先级任务
- 工作流检查清单:全部 5 个步骤的进度
完整的工作流报告示例请参阅 EXAMPLE_REPORT.md。
你将获得
安全报告:
- Slither 发现的问题及其严重性和修复方案
- 特殊功能验证结果
- 可视化图表(PNG/PDF)
- 手动审查发现的问题
行动计划:
- 立即修复严重问题
- 记录安全属性
- 设置测试(Echidna/Manticore)
- 审查手动检查项
工作流检查清单:
- Slither 报告无问题
- 特殊功能已验证
- 已完成可视化检查
- 已记录属性
- 已完成手动审查
获取帮助
Trail of Bits 资源:
- Office Hours:每周二(日程安排)
- Empire Hacking Slack:#crytic 和 #ethereum 频道
其他安全事项:
- 请记住:安全不只是智能合约的问题
- 链下安全(所有者密钥、基础设施)同样关键
准备开始
准备好后告诉我,我会用你的代码库执行整个工作流!
评论
支持 Markdown