关于 fable-heal
fable-heal 是安全修复技能,可将 fable-redteam 或审计发现转化为代码补丁和回归测试。它支持预览或在回滚保护下应用修改,随后验证修复并记录证明信息。
主要功能
- 01导入结构化漏洞发现
- 02生成针对性补丁和统一差异
- 03创建可执行的安全回归测试
- 04通过备份与回滚机制应用修改
- 05验证攻击向量并记录 SHA-256 证明
适用场景
- 01修复 fable-redteam 发现的漏洞
- 02为安全问题生成回归测试
- 03修改代码库前预览补丁
- 04检查候选补丁是否封堵攻击路径
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ immamdouhaboammar/ get-fable --skill fable-heal安装后在 Claude Code 中输入/fable-heal确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
skill.package.jsonagents/openai.yamlevals/scenarios.jsonexamples/healing-walkthrough.mdreferences/remediation-patterns.mdtemplates/healing-report.template.md详细介绍
Fable Heal
自动合成、应用并验证针对 fable-redteam 检测到的漏洞的安全修复。
用途
弥合主动漏洞发现与经过验证的代码修复之间的差距。fable-heal 会将攻击性安全测试发现的问题(SQL 注入、BOLA/IDOR、CORS 配置错误、缺少安全标头、敏感文件泄露、SSRF、JWT 签名绕过和 LLM 提示词注入)转化为具体、经过测试和验证的代码补丁,且不会引入回归问题。
适用场景
fable-redteam或安全审计发现了需要立即修复代码的漏洞。- 自动生成 TDD 回归测试套件,确保安全漏洞在 CI 中持续保持修复状态。
- 在预发布环境或本地分支中应用精细的代码补丁,并提供原子回滚保护。
- 验证候选安全补丁是否成功消除了攻击向量。
不适用场景
- 尚未发现或复现漏洞时(请使用
fable-redteam或fable-security)。 - 用于一般的非安全类应用重构(请使用
fable-simplify)。 - 未经人工审核或预发布验证,直接修补生产环境。
输入
redteam_findings:来自fable-redteam的结构化漏洞发现结果数组或文件路径。target:目标 HTTP/HTTPS 端点或代码仓库工作区。dryRun:为 true 时,预览生成的补丁和统一差异,不修改文件。autoApply:为 true 时,将补丁直接写入匹配的代码库源文件。verify:为 true 时,针对目标重新运行攻击向量,以验证漏洞已修复。
预期输出
security_patches:包含统一差异的具体代码替换内容。test/security/redteam-healed.test.ts:可执行的 Bun 测试套件,用于断言漏洞已修复。.fable/heal-attestation.json:具有防篡改能力的 SHA-256 加密证明记录。.fable/LEDGER.md:已更新并标记为已修复的工作卡片。
流程
- 发现结果导入: 从
fable-redteam、SARIF 报告或.fable/redteam-findings.json加载发现结果。 - 策略选择: 将每项发现的类别和 CWE 映射到相应的精细修复模式:
- SQL 注入(CWE-89)-> 参数化查询。
- IDOR/BOLA(CWE-639)-> 资源所有权验证保护。
- CORS 配置错误(CWE-942)-> 严格的来源白名单。
- 缺少安全标头(CWE-1021)-> Content-Security-Policy、HSTS、XFO 标头。
- 敏感信息暴露(CWE-200)-> 拒绝访问
.env、.git和机密信息的路由。 - SSRF(CWE-918)-> 验证出站 URL 和 IP,阻止环回地址及云元数据地址。
- 补丁合成: 生成代码转换并计算统一差异。
- TDD 测试生成: 将可执行的测试断言写入
test/security/redteam-healed.test.ts。 - 原子应用与保护: 应用补丁时,自动创建备份并写入补丁。若语法检查或编译失败,则触发断路器回滚。
- 闭环验证: 若目标可访问,则执行验证探测以确认修复有效。
- 证明与台账封存: 记录 SHA-256 加密封印,并将工作卡片标记为已关闭。
决策规则
- 如果候选补丁未通过语法检查或类型检查,立即通过断路器触发回滚。
- 封存修复前,务必生成可执行的 TDD 回归测试套件。
dryRun模式下绝不修改文件;仅输出统一差异和预览。- 若目标端点在线且请求进行验证,则在完成前探测目标,以证明漏洞已修复。
- 所有已应用的补丁都必须在
.fable/heal-attestation.json中记录 SHA-256 加密证明。
约束
- 未设置自动回滚断路器时,不得应用补丁。
- 关闭正在处理的安全工作卡片时,不得跳过验证测试。
- 补丁必须精细且保留现有应用的业务逻辑和注释。
工具策略
- 使用
src/core/redteam/heal.ts中的原生 AST 补丁和正则转换器。 - 运行 Bun 测试运行器(
bun test)执行生成的回归测试套件。 - 使用原生 SHA-256 加密功能生成加密证明。
证据要求
- 合成的补丁必须提供准确的文件路径、策略名称和统一差异。
- 应用补丁后,必须进行语法验证,并在
test/security/redteam-healed.test.ts中生成自动化回归测试。 - 在
.fable/heal-attestation.json中生成加密修复证明,以验证所有已应用补丁的完整性。
故障处理
- 如果候选补丁导致语法无效或类型错误,立即通过断路器回滚更改。
- 如果回归测试失败,撤销已应用的补丁,并标记发现以供开发人员手动审核。
- 如果闭环验证期间目标服务不可用,将验证标记为待处理,但不阻止应用补丁。
完成标准
- 将所有已识别的漏洞发现映射到修复策略。
- 为存在漏洞的目标合成统一差异和补丁。
- 在
test/security/redteam-healed.test.ts中生成并通过 TDD 回归测试套件。 - 在
.fable/heal-attestation.json中记录加密证明。 - 在
.fable/LEDGER.md中记录修复状态。
评论
支持 Markdown