mcpField
F
fable-heal

fable-heal

github.com/immamdouhaboammar安全353 次安装6 天前更新
代码仓库

关于 fable-heal

fable-heal 是安全修复技能,可将 fable-redteam 或审计发现转化为代码补丁和回归测试。它支持预览或在回滚保护下应用修改,随后验证修复并记录证明信息。

主要功能

  1. 01导入结构化漏洞发现
  2. 02生成针对性补丁和统一差异
  3. 03创建可执行的安全回归测试
  4. 04通过备份与回滚机制应用修改
  5. 05验证攻击向量并记录 SHA-256 证明

适用场景

  1. 01修复 fable-redteam 发现的漏洞
  2. 02为安全问题生成回归测试
  3. 03修改代码库前预览补丁
  4. 04检查候选补丁是否封堵攻击路径

安装

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

$npx skills add https://github.com/immamdouhaboammar/get-fable --skill fable-heal

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

包含的文件

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

skill.package.json
agents/
openai.yaml
evals/
scenarios.json
examples/
healing-walkthrough.md
references/
remediation-patterns.md
templates/
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:已更新并标记为已修复的工作卡片。

流程

  1. 发现结果导入: 从 fable-redteam、SARIF 报告或 .fable/redteam-findings.json 加载发现结果。
  2. 策略选择: 将每项发现的类别和 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,阻止环回地址及云元数据地址。
  3. 补丁合成: 生成代码转换并计算统一差异。
  4. TDD 测试生成: 将可执行的测试断言写入 test/security/redteam-healed.test.ts。
  5. 原子应用与保护: 应用补丁时,自动创建备份并写入补丁。若语法检查或编译失败,则触发断路器回滚。
  6. 闭环验证: 若目标可访问,则执行验证探测以确认修复有效。
  7. 证明与台账封存: 记录 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