把你的 coding agent 编排成一支对抗式安全审计团队
分类:安全 · AI Agent Skill · ← 返回汇总
不是一个扫描器,是一套把 LLM 审计「流程化、对抗化、可审计」的编排法典
Cloudflare 出品的 coding-agent skill:纯提示词 + 流程工程,把单个 agent 编排成「侦察 → 覆盖驱动狩猎 → 候选验证 → 结构化输出 → 独立复核 → 报告」六阶段流水线。它就是 Cloudflare 全公司级漏洞发现 harness 的单仓起点。适合想把 LLM 安全审计从「随手问问」升级为可复现、可累加、可审计流程的团队。
GitHub API 采集于 2026-09-19 · 2026-06-18 创建 · 最近 push 2026-09-14 · 仓库仅 143KB(19 个文件,Markdown 提示词为主)
单 agent 塞不下整个代码库,扫到一半开始糊弄,漏掉跨文件的信任边界。
把「不符合最佳实践」当漏洞报:缺个安全头、没加纵深防御层,全是误报。
发现问题的 agent 自己验证自己,倾向于相信自己是对的,无人证伪。
解法:不换更强的模型,而是换流程——把审计拆成隔离角色 + 结构化账本 + 对抗验证,让每个 agent 只干一小段可核查的事。
写隔离铁律:每个 agent 只能写自己的 scratch/;晋升到共享 artifacts/ 只能由父侧受信代码执行(拒绝 symlink、校验 inode、限额字节),agent 永远摸不到别人的目录。
| 裁决 | 准入条件 | 严重度 | 进入哪份产物 |
|---|---|---|---|
| confirmed | 完整源码证据链 + 有界的已观察结果,信任边界失败成立 | 有(5 档锚点校准) | REPORT.md · FINDINGS-DETAIL.md |
| needs_validation | 源码有据但被一个精确的未解事实卡住(如部署控制不在源码里、沙箱能力缺失) | 禁止——没验证就不许吓唬人 | NEEDS-VALIDATION.md(附安全验证计划) |
| rejected | 候选被独立验证者证伪,留档防止下轮重复上报 | 无 | findings.json 留痕 |
所有记录写入 findings.json,过 report-schema.json + 零依赖校验器;Phase 5 替换掉的记录还要再过一轮独立验证。
HTTP 请求走私、缓存、认证协议
内存损坏、内核攻击类(原生目标)
提示注入、agent/工具链、输出处理
DOM 注入、消息信任、UI 重定向、原型污染
依赖、CI、签名、更新、插件
IAM、IaC、容器、serverless、入口
序列化、队列、broker、webhook、流协议
共享资源、配额、worker、运营花费
租户隔离、缓存、备份、删除与恢复
另有 ATTACK-CLASSES.md(核心 + 通配 + 显而易见类)做总纲;侦察阶段按目标形态选伴生域文件。
受信父侧代码逐文件晋升:拒绝 symlink 与路径穿越、fstat 校验 inode 类型与链接数、逐文件与累计字节限额、创建目标须独占……一套 11 步 race-safe 规程,两个角色(猎手/验证者)提示词里内嵌同一份逐字相同的规程块。
沙箱控制缺失时唯一出路:不执行目标代码,降级为 needs_validation + 安全验证计划。
| 档位 | 判据(必须已证实) |
|---|---|
| critical | 未认证主体获得代码执行、全库数据访问或任意账户接管 |
| high | 完全击穿显式安全控制且有实际后果:认证绕过、跨租户读写、影响他人的存储型脚本、认证后 RCE |
| medium | 真实边界违规但爆炸半径有限 / 前置条件少见 / 后果局限于窄资源集 |
| low | 泄露非敏感内部信息,或需持续投入换取微小收益的效果 |
| informational | 已证实但影响极小,主要作为更大 finding 的前置件 |
高低分水岭一句话:证实的结果是完全击穿显式控制并造成实际后果,还是只是削弱了它?整体严重度不得高于已证影响。
另有:报告强于观察效果、独立复核前出报告、把上一轮 confirmed 当锚点示例等——十条全部写死在 SKILL.md。
这个项目最有即时反馈价值的核心机制是裁决纪律:给定一条候选的事实清单(有没有点名边界?证据链齐不齐?验证者能不能复现?),看它掉进 confirmed / needs_validation / rejected 哪一档、严重度会不会被闸门拦下。
▶ 打开 Finding Triage Playground规则 1:1 复刻自仓库 SKILL.md 与 report-schema 的判定语义,已通过全真值表验证。
# 安装 skill(skills.sh CLI) npx skills add https://github.com/cloudflare/security-audit-skill \ --skill security-audit # 在目标代码库里对 coding agent 说: security audit this codebase find security vulnerabilities in ./src do a security review, output to ~/audits/x
~/security-audit-skill/<repo>/run-NSemgrep/CodeQL 靠规则匹配,覆盖确定但只会找已知模式;本 skill 让 LLM 理解信任边界与业务语义,代价是必须用流程纪律压住幻觉。
Strix 类项目攻击运行中的环境(打靶机);本 skill 只读源码 + 本地沙箱夹具验证,不碰部署端点,输出 owner 视角的证据与最小修复。
随手问一次 = 上下文耗尽 + 自查自证;本 skill 用隔离角色、覆盖账本、对抗验证把「问一下」变成可累加的工程流程。
出身注脚:它是 Cloudflare 内部「fleet-wide 漏洞发现 harness」的单仓种子,博客 Build your own vulnerability harness 讲了完整演化故事——你看到的 19 个文件就是那套全公司系统的最小起点。
三个月 13.9k stars,验证了「skill 即审计流水线」范式的需求真实存在。作为 Cloudflare fleet harness 的公开种子,它的提示词架构、写隔离规程、覆盖账本设计会被大量 AI 安全工具抄作业——范式级影响力大于工具本身。