关于 trailmark-review-gate
trailmark-review-gate 是用于比较代码变更前后 Trailmark 结构差异的安全审查技能,帮助审查者发现结构性回归并生成证据包;图分析不能替代逐行审查。
主要功能
- 01比较变更前后的图证据
- 02追踪节点、边和入口点
- 03评估污点与权限边界变化
- 04应用 PASS、WARN、FAIL 和 UNKNOWN 判定
- 05生成供审查者使用的证据包
适用场景
- 01审查分支或拉取请求
- 02检查变更是否扩大攻击面
- 03查找可达路径上被移除的验证
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trailofbits/ skills --skill trailmark-review-gate安装后在 Claude Code 中输入/trailmark-review-gate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/trail-of-bits-mark.svgreferences/gate-rules.mdoutput-format.mdreview-integration.md详细介绍
Trailmark 审查门禁
对 Trailmark 结构差异证据应用确定性安全门禁规则。 此技能不能替代逐行审查。它会生成一份简洁的结构化材料,供审查者在检查代码时引用。
适用场景
- 审查分支、拉取请求、发布差异或修复提交
- 检查变更是否扩大攻击面
- 查找可达路径上被移除的验证或授权
- 对比污点、权限边界、影响范围或复杂度信号的变更前后情况
- 为差异审查生成图证据
不适用场景
- 单快照分析。请使用
trailmark或trailmark-structural。 - 仅审查文本差异。请使用
differential-review。 - 全面发现漏洞。请使用审计或 Bug 查找工作流。
- 单个静态发现。请使用
trailmark-finding-triage。 - 工具不可用,且用户只希望进行手动审查。
应拒绝的托词
| 托词 | 错误原因 | 必要操作 |
|---|---|---|
| "行差异很小,因此不需要图门禁" | 小改动也可能创建新的调用路径 | 对比变更前后的图 |
| "图门禁已通过,因此 PR 是安全的" | 门禁只检查结构性回归 | 仍须进行逐行审查 |
| "Trailmark 失败了,因此让门禁通过" | 工具失败代表风险未知,并非成功 | 输出 UNKNOWN |
| "测试通过了,因此移除验证没有问题" | 测试可能遗漏受影响的入口路径 | 手动审查被移除的路径 |
| "只有新增代码才重要" | 移除的身份验证、验证逻辑和调用方可能比新增内容风险更高 | 审查移除项和路径变更 |
工作流
Review Gate Progress:
- [ ] Step 1: Resolve before/after inputs
- [ ] Step 2: Build graph-evolution evidence
- [ ] Step 3: Normalize structural changes
- [ ] Step 4: Apply gate rules
- [ ] Step 5: Emit review packet and actions
第 1 步:解析输入
接受两个引用、分支名、提交范围或变更前后的目录。
不要无谓地检出分支。优先使用 git diff、git show 和
git 工作树,并遵循 graph-evolution 快照工作流。
第 2 步:构建图证据
运行 graph-evolution 或等效的 Trailmark 变更前后图分析。
两个快照都必须运行 engine.preanalysis(),以提供污点、权限边界、
影响范围、复杂度和入口点信号。
记录 Trailmark 版本和所有功能探测结果。如果图构建失败,
输出 UNKNOWN。
第 3 步:规范化变更
将证据规范化为:
- 新增、移除和修改的节点
- 新增和移除的边
- 入口点集合变更
- 污点成员资格变更
- 权限边界成员资格变更
- 影响范围变更
- 复杂度变更
- 新近可达的敏感汇点
- 未解析、代理或动态边变更
第 4 步:应用门禁规则
应用 references/gate-rules.md 中的规则。 门禁判定为:
| 判定 | 含义 |
|---|---|
FAIL | 高风险结构性回归需要在接受前进行审查 |
WARN | 有实质影响的图变更需要审查者关注 |
PASS | 未触发已配置的结构性门禁 |
UNKNOWN | Trailmark 失败或证据不完整 |
第 5 步:生成材料
使用
references/output-format.md 编写材料,然后交给
分支审查者。如需将此材料与 differential-review 或其他 PR 审查流程结合使用,请参考
references/review-integration.md。
要求
- 比较引用时,绝不修改用户当前工作的分支。
- Trailmark 失败时,绝不报告
PASS。 - 将图证据与手动安全判断分开。
- 每个
FAIL和WARN都须包含精确变更节点或路径。 - 如果解析器、代理、未解析调用或动态分派方面的不确定性会影响判定,请注明限制。
评论
支持 Markdown