关于 threat-patch
threat-patch 是用于将安全发现转化为代码修复的技能,面向处理漏洞报告和审计结果的开发者。它先核实问题仍存在,再设计并经用户批准后实施最小补丁,并附验证说明。
主要功能
- 01读取 JSON、CSV 和威胁模型发现
- 02按严重性整理并合并相关问题
- 03核实代码中的问题仍然存在
- 04经批准后实施最小代码补丁
- 05提供摘要与验证步骤
适用场景
- 01修复扫描器报告的漏洞
- 02根据威胁模型处理已识别风险
- 03将 Codex 安全发现转化为代码改动
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill threat-patch安装后在 Claude Code 中输入/threat-patch确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config.jsongotchas.mdmetadata.jsonhooks/hooks.jsonreferences/fix-patterns.mdoutput-format.mdworkflow.mdscripts/parse-findings.sh详细介绍
Threat Patch
读取安全发现结果,并生成最小、精准的代码补丁,同时提供结构化文档。修复以代码为依据——每个补丁都会针对发现结果中指出的特定文件和函数。输出包括摘要、验证步骤和代码更改。
适用场景
- 用户提供
findings.json(来自 threat-model)并希望修复问题 - 用户提供 Codex 安全发现 CSV 并希望修复问题
- 用户持有 THREAT-MODEL.md,并希望修复其中识别出的风险
- 用户描述了特定漏洞并希望获得补丁
- 用户正在审查安全扫描器的输出,需要可执行的修复方案
- 安全审计后,需要将发现结果转化为代码更改
输入来源(优先级顺序)
| 来源 | 提供内容 | 使用方法 |
|---|---|---|
| findings.json(来自 threat-model) | 结构化发现结果,包含数据流追踪、系统性分组、攻击链和严重性评级 | 直接读取——这是信息最丰富的输入,已完成分诊和分组 |
| Codex CSV | 每项发现的标题、描述、严重性和相关路径 | 运行 scripts/parse-findings.sh <csv-path>,提取结构化输出 |
| THREAT-MODEL.md | 人类可读的威胁模型 | 从 Criticality Calibration 部分提取发现结果 |
| 内联描述 | 用户描述特定漏洞 | 根据对话上下文解析 |
如果有 findings.json,应优先使用它——其中包含数据流追踪(入口 → 链路 → 接收点),可直接指导修复位置;还包含系统性分组,可帮助判断是否应采用集中式修复,而非逐个打补丁。
工作流概览
1. Ingest Findings → Read findings.json / CSV / descriptions
2. Triage & Group → Sort by severity, use systemic groupings if available
3. For each finding:
a. Read Code → Open relevant_paths, understand the pattern
b. Confirm → Verify issue is still present in HEAD
c. Design Fix → Determine minimal fix approach
d. Implement → Write the code changes
e. Document → Summary + Validation + Attack-path (if needed)
f. Test → Run relevant tests
4. Output → Per-patch deliverable with summary and diff
5. Update State → Mark patched findings in findings.json (if present)
使用方法
- 阅读 工作流,了解每个步骤的详细补丁方法
- 设计修复方案时阅读 修复模式——其中按漏洞类别列出了常见模式
- 阅读 输出格式,了解每个补丁的文档模板
- 如果输入是 findings.json:直接读取——它已经过结构化处理
- 如果输入是 Codex CSV:运行
scripts/parse-findings.sh <csv-path>,提取结构化输出
核心原则
- 最小差异:修复漏洞,不要重构周边代码。正确且最小的补丁就是最佳补丁
- 集中处理,避免重复:如果多个代码路径存在相同的漏洞模式,应提取共享辅助函数,而不是分别修改每个位置
- 明确错误路径:为被拒绝的输入添加具体错误类型,并向操作人员提供清晰反馈,不要静默失败或使用通用错误
- 修复前确认:始终确认 HEAD 中仍存在该发现——从检测到现在,代码可能已移动或重构
- 编辑前征求用户批准:先展示修复设计(要更改的文件及处理方式),获得批准后再修改源代码。钩子会对 Edit/Write 工具调用进行门控,以提供额外保护
- 即使失败也要记录:如果因环境限制而无法测试修复,应记录测试命令和限制原因
防护措施
此技能会修改源代码。安全措施如下:
- Edit 和 Write 工具上的 PreToolUse 钩子会在每次更改文件前请求确认
- 工作流中设有确认关卡,位于修复设计与实施之间
- 回退方式:默认不创建提交,可使用
git checkout -- <files>撤销更改;如已创建提交,则使用git revert
输出模式
代码补丁——已实施修复时:
- 摘要:说明已确认的内容以及修复的作用
- 测试部分:列出构建/测试命令
- 实际代码更改
仅分析——需要用户决策或进行架构调整时:
- 摘要:说明已确认的内容
- 验证清单
- 攻击路径分析(路径、可能性、影响、假设、控制措施、盲点)
参考资料
| 文件 | 阅读时机 |
|---|---|
| references/workflow.md | 开始前 — 各修补阶段的详细方法 |
| references/fix-patterns.md | 设计修复方案时 — 按漏洞类别划分的模式 |
| references/output-format.md | 编写文档时 — 两种输出模式的模板 |
评论
支持 Markdown