mcpField
T
threat-patch

threat-patch

github.com/pproenca安全218221 次安装11 周前更新
代码仓库

关于 threat-patch

threat-patch 是用于将安全发现转化为代码修复的技能,面向处理漏洞报告和审计结果的开发者。它先核实问题仍存在,再设计并经用户批准后实施最小补丁,并附验证说明。

主要功能

  1. 01读取 JSON、CSV 和威胁模型发现
  2. 02按严重性整理并合并相关问题
  3. 03核实代码中的问题仍然存在
  4. 04经批准后实施最小代码补丁
  5. 05提供摘要与验证步骤

适用场景

  1. 01修复扫描器报告的漏洞
  2. 02根据威胁模型处理已识别风险
  3. 03将 Codex 安全发现转化为代码改动

安装

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

$npx skills add https://github.com/pproenca/dot-skills --skill threat-patch

安装后在 Claude Code 中输入/threat-patch确认已加载。

包含的文件

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

config.json
gotchas.md
metadata.json
hooks/
hooks.json
references/
fix-patterns.md
output-format.md
workflow.md
scripts/
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)

使用方法

  1. 阅读 工作流,了解每个步骤的详细补丁方法
  2. 设计修复方案时阅读 修复模式——其中按漏洞类别列出了常见模式
  3. 阅读 输出格式,了解每个补丁的文档模板
  4. 如果输入是 findings.json:直接读取——它已经过结构化处理
  5. 如果输入是 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