Skill 精选 可动手 重点 10月28日 周三 #agent-skills#safety#evaluation

Cloudflare 开源 security-audit:发现者不能验证自己的审计技能

Cloudflare 的 security-audit-skill(MIT 许可,约 50.1k 星,本周新增约 16,593 星)把代码审计拆成侦察、覆盖导向的猎取、候选验证、结构化输出、独立记录验证和报告六个阶段,并称它启发了 Cloudflare 自己的漏洞发现系统。核心做法是:检查发现的 Agent 绝不是提出发现的那个,每个候选都由一个全新的验证者去尝试推翻。

Agent Skill security-audit MIT 仓库 →

能做什么

  • 映射架构、信任边界和输入面,生成 architecture.md 与 coverage-ledger.json
  • 按覆盖台账分派相互隔离的猎取 Agent,并用覆盖评审找遗漏
  • 对每个候选发现由全新的验证 Agent 尝试推翻
  • 生成 findings.json、REPORT.md 和 NEEDS-VALIDATION.md

好在哪里

  • 提出者与验证者分离,确认结论需要完整源码追踪
  • 零依赖的 Node.js 校验器检查 findings 和覆盖台账是否符合 schema
  • 没有沙箱时不执行目标代码,只保留为待验证线索

安装 / 启用

npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit(加 --global 为用户级安装)

要点

  • `confirmed` 必须有完整的源码追踪和有限的观察结果;证据不足的写成 `needs_validation`,且不给严重度
  • 目标仓库的构建和测试要在能禁网、限资源的操作系统级沙箱里执行;没有沙箱时只记线索、不执行目标代码
  • 默认输出到 `~/security-audit-skill/<repo-name>/run-<N>`,不会写进被审计的仓库
  • 要求模型支持工具调用和并行子 Agent;页面没有写版本号和发布日期,仓库只有 14 次提交
为什么值得关注

「提出者与验证者分离、结论必须带证据」的做法与模型无关,可借鉴到团队的代码审查 Agent 上;技能自身要求并行子 Agent,在自部署模型上效果需要自行验证,并务必先准备沙箱。

配套实验

已验证 检查 8/8 通过 GitHub Actions 实际运行 · Python 3.12.15 · 耗时 不到 0.1s
离线校验审计发现记录:confirmed 须有证据且不能自己验证自己

参考 Cloudflare security-audit-skill README 描述的规则,用 mock 数据演示一个校验器:confirmed 必须有完整源码追踪和有限的观察结果,needs_validation 不得带严重度,验证者不能是发现者。

结论8 条 mock 记录全部判定正确,其中 5 条违规被指出具体原因

[PASS] F1 (confirmed): 违规=无
[PASS] F2 (confirmed): 违规=['self-verified']
[PASS] F3 (confirmed): 违规=['missing-trace']
[PASS] F4 (confirmed): 违规=['missing-observation']
[PASS] F5 (needs_validation): 违规=无
[PASS] F6 (needs_validation): 违规=['severity-on-unvalidated']
[PASS] F7 (needs_validation): 违规=['missing-unresolved-fact']
[PASS] F8 (rejected): 违规=无
METRIC: 校验结论与标注一致 = 8 条
METRIC: 被标出违规的记录 = 5 条
RESULT: 8 条 mock 记录全部判定正确,其中 5 条违规被指出具体原因
python main.py 查看代码与内网复现步骤 →

来源

Esc
↑ ↓ 选择Enter 打开

分享图

1080 × 1350,适合发到群聊或朋友圈
分享图预览

键盘快捷键

j / k
下一条 / 上一条
o
展开或收起当前条目
Enter
打开当前条目详情
c
复制当前条目链接
s
收藏 / 取消收藏当前条目
/ 或 ⌘K
搜索
1 2 3
切换密度:标题 / 摘要 / 完整
t
切换主题
?
显示本帮助