MoonFuji/invariant-first-bug-bounty

GitHub: MoonFuji/invariant-first-bug-bounty

一个 Agent Skill,通过证据关卡和机械验证约束 AI 代理在 bug bounty 研究中的报告行为,确保提交前完成 invariant 分析、追踪验证和重复检测。

Stars: 0 | Forks: 0

# Invariant 优先的 Bug Bounty [![Agent Skill](https://img.shields.io/badge/Agent%20Skill-compatible-111827)](https://agentskills.io) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) 一个 Agent Skill,使 AI 辅助的 bug bounty 研究在撰写报告之前先获得报告验证。 Coding agent 通常会发现一个危险的函数,构建一个本地的 proof-of-concept,然后直接跳到撰写一份精美的报告。这跳过了审核人员用来拒绝或标记为重复提交的问题: - 在接受的威胁模型下,攻击者是否能到达该路径? - 该行为是否赋予了攻击者新的能力? - 目标是否拥有该错误代码并接受这种证明类型? - 根本原因与先前的报告和 upstream 工作有何不同? 此 skill 需要一个安全 invariant、完整的 source-to-effect trace、最强有力的良性解释、阴性对照、路由所有权以及语义重复分析。它将这些决策存储在 `candidate.json` 中,并在通过确定性验证之前阻止报告的撰写。 ## 安装说明 使用开放的 Agent Skills 安装程序配合 Codex、Claude Code、Cursor、OpenCode 或其他受支持的 agent: ``` npx skills add MoonFuji/invariant-first-bug-bounty ``` 列出安装程序检测到的内容而不进行安装: ``` npx skills add MoonFuji/invariant-first-bug-bounty --list ``` 对于手动安装,请将 repository 克隆到您的 agent 使用的 skills 目录中。目录名必须保持为 `invariant-first-bug-bounty`: ``` git clone https://github.com/MoonFuji/invariant-first-bug-bounty.git invariant-first-bug-bounty ``` 常见的用户级位置包括 Codex 兼容设置的 `~/.agents/skills/invariant-first-bug-bounty` 和 Claude Code 的 `~/.claude/skills/invariant-first-bug-bounty`。 ## 使用方法 要求您的 agent 在程序授权的目标上显式调用该 skill: ``` Use $invariant-first-bug-bounty to audit this in-scope source repository. Model one security invariant before broad recon. Persist the candidate state, trace the deepest reachable path, and return an evidence-backed terminal verdict. ``` 该 skill 将以下情况视为有效结果: | 结论 | 含义 | |---|---| | `REPORTABLE` | 该候选者通过了报告阶段的证据关卡 | | `HOLD` | 缺少指定的威胁模型、证明、路由或新颖性产出物 | | `KILL` | 关卡失败,或所谓的影响并未改变攻击者的能力 | | `ROUTE_ELSEWHERE` | 另一个项目或披露渠道负责修复 | | `NO_REPORTABLE_FINDING` | 所选的 invariant 在经历完整的 trace 和反驳尝试后依然成立 | ## 它如何改变狩猎过程 ``` scope and route | security invariant | source-to-effect trace + sibling path | capability delta + strongest refutation | accepted proof + negative controls | root-cause fingerprint + route ownership | persisted verdict ``` 广泛的 regex recon 位于 model gate 之后。在 agent 记录下 principals、受保护资产、信任边界、状态存储、执行点以及一个 invariant 之前,一个可疑的 sink 无法成为候选者。 ## 机械关卡 启动一个候选者: ``` cp assets/candidate.template.json /path/to/hunt/candidate.json python scripts/validate-candidate.py --stage model /path/to/hunt/candidate.json ``` 在完成 trace 后记录最终决定: ``` python scripts/validate-candidate.py --stage decision /path/to/hunt/candidate.json ``` 在撰写准备提交的报告之前: ``` python scripts/validate-candidate.py --stage report /path/to/hunt/candidate.json ``` 非零的报告阶段退出意味着报告仍然被阻止。正确的做法是收集指定的证据、更改路由,或者保留不可报告的结论。为了满足 validator 而编辑毫无根据的断言违反了此工作流。 model-gated 的覆盖扫描是可选的: ``` bash scripts/recon-sweep.sh \ --candidate /path/to/hunt/candidate.json \ /path/to/in-scope-repository \ /tmp/recon-output ``` 它将搜索结果写入选定的输出目录。它不负责验证漏洞。 ## 包含内容 ``` SKILL.md Core invariant-first controller agents/openai.yaml Skill-list metadata assets/candidate.template.json Durable candidate and decision state references/ Proof, targeting, testing, and bug-class guidance scripts/validate-candidate.py Model, decision, and report gates scripts/recon-sweep.sh Optional model-gated source coverage ``` 核心 controller 保持简洁。仅当目标架构或证明路由需要时,Agent 才会加载详细的参考。 ## 为什么重复分析与众不同 该 skill 将候选者指纹化为: ``` boundary|primitive|invariant|effect ``` Agent 将该指纹与研究者的报告、程序披露、upstream issue 和 patch、最近的 advisory 以及同源实现进行比较。干净的公开搜索并不能证明其新颖性,因为私有的重复池仍然不可见。最近的 advisory 增加了竞争性,而不是创造新颖性加分。 当 HackerOne MCP 工具可用时,`SKILL.md` 定义了检查研究者的报告、程序披露、跨程序搜索以及相近报告匹配项的顺序。 ## 局限性 此 skill 不保证存在漏洞、新颖性、bounty 资格、严重性或被接受。它的 regex 扫描不是安全扫描器。validator 仅检查所需的证据字段是否存在并与结论一致;它无法证明证据的真实性。 Agent 仍然可能推理错误。在提交之前,请检查 trace,复现所声称的边界,并阅读程序政策。 ## 仅限授权研究 仅在程序范围和安全港条款涵盖的资产上,或您拥有的系统上使用此 skill。使用您拥有的账户和数据,尽量减少影响,并在证明可能暴露或更改第三方数据时停止。绝不使用发现的凭据或 pivot 到不相关的系统。 请勿在公开的 issue 或 pull request 中放置实时凭据、私密的程序材料或未披露的漏洞详情。 ## License MIT。详见 [LICENSE](LICENSE)。
标签:AI插件, AI智能体, Homebrew安装, 应用安全, 逆向工具