mcpField
S
secure-workflow-guide

secure-workflow-guide

github.com/trailofbits安全7.9k7.4k 次安装今天更新
代码仓库

关于 secure-workflow-guide

secure-workflow-guide 引导智能合约团队完成五步安全审查,涵盖 Slither 扫描、适用特性检查、图表、属性文档和人工分析。它生成针对项目的发现结果及优先级行动计划。

主要功能

  1. 01Slither 漏洞扫描与结果分类
  2. 02升级能力和 ERC 一致性检查
  3. 03生成合约安全图表
  4. 04安全属性与测试指导
  5. 05人工检查常见风险区域
  6. 06提供优先级行动计划

适用场景

  1. 01在代码提交时审查合约
  2. 02部署前检查合约安全
  3. 03规划属性测试或符号执行

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/trailofbits/skills --skill secure-workflow-guide

安装后在 Claude Code 中输入/secure-workflow-guide确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
assets/
trail-of-bits-mark.svg
resources/
EXAMPLE_REPORT.md
WORKFLOW_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. 探索代码库,了解其结构
  2. 运行步骤 1:Slither 安全扫描
  3. 检测并运行步骤 2:特殊功能检查(仅运行适用的检查)
  4. 生成步骤 3:可视化安全图表
  5. 指导步骤 4:记录安全属性
  6. 分析步骤 5:人工审查领域
  7. 提供行动计划:按优先级排列的修复项和后续步骤

会根据以下情况进行调整:

  • 已安装的工具
  • 适用于项目的内容
  • 当前的开发阶段

合理化借口(不要跳过)

借口错误原因必须采取的行动
“没有安装 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