安全审计技能
cloudflare/security-audit-skill
访问 GitHub ↗
一句话简介
Cloudflare 开源的安全审计技能仓库,基于 JavaScript 开发,为安全审计与代码审查提供实用工具和最佳实践指导。
标签
适用应用场景
- 代码安全漏洞扫描
- 应用安全审计与合规检查
- CI/CD 流水线集成安全检测
- 开发团队安全编码规范培训
README 中文摘要
项目概述
security-audit 是一个面向编码代理的安全审计技能,将代理转变为安全审计器,通过六个阶段调度隔离的子代理完成侦察、覆盖式漏洞狩猎、候选验证、结构化输出、独立记录核验和目标无关的报告生成。该技能是 Cloudflare 漏洞发现平台的单仓库起点,已演化为多阶段、跨集群的完整系统。
六个审计阶段
- 侦察:梳理架构、信任边界、输入面、历史证据,写入
architecture.md与coverage-ledger.json。 - 覆盖式狩猎:从账本单元分配隔离的猎手执行检查,由覆盖审查员发现遗漏。
- 候选验证:为每条独立候选分配全新核验代理,尝试证伪。
- 结构化输出:将记录写入
findings.json,按report-schema.json校验。 - 独立记录核验:全新代理核验最终源代码引用;实质性替换需再次独立核验。
- 目标无关报告:从已核验记录与覆盖账本派生
REPORT.md、FINDINGS-DETAIL.md、NEEDS-VALIDATION.md。
父进程在创建账本及每次更新后运行 validate-coverage-ledger.cjs,在第 4 阶段及第 5 阶段每次替换后运行 validate-findings.cjs。
三种判定
confirmed:具备完整源码追溯与有界的观察结果。needs_validation:包含精确的未决事实,不带严重等级。rejected:记录已被证伪的候选。
对同一仓库的多次运行结果可累加:技能会利用历史账本与发现定位缺口、复验变更的源码,并保留当前源码的证据,但不会将陈旧或未决工作视为已覆盖。
关键文件
| 文件 | 用途 |
|---|---|
SKILL.md |
设置、核心原则、平台术语、工作流概述、反模式 |
RECONNAISSANCE.md |
第 1 阶段侦察提示与综合指令 |
HUNTING.md |
第 2 阶段编排、狩猎方法学与验证规则 |
ATTACK-CLASSES.md |
核心、通配符、明显事项的攻击提示 |
MEMORY-SAFETY-AND-BINARY.md |
原生目标的内存安全、二进制、内核狩猎类 |
AI-AND-LLM.md |
LLM 目标的提示注入、代理/工具、输出处理狩猎类 |
WEB-PROTOCOL-AND-AUTH.md |
HTTP 协议与认证目标的请求构造、缓存、认证协议狩猎类 |
CLIENT-SIDE.md |
客户端/浏览器目标的 DOM 注入、消息信任、UI 重定向、原型链污染狩猎类 |
SUPPLY-CHAIN-AND-RELEASE.md |
依赖、CI、发布、签名、更新、插件与扩展狩猎类 |
CLOUD-AND-DEPLOYMENT.md |
IAM、基础设施即代码、容器、无服务器、入口、运行时配置狩猎类 |
PROTOCOLS-RPC-AND-MESSAGING.md |
RPC、序列化、队列、代理、Webhook、流协议狩猎类 |
RESOURCE-EXHAUSTION-AND-AVAILABILITY.md |
共享资源、配额、队列、工作进程、运维开销狩猎类 |
DATA-ISOLATION-AND-LIFECYCLE.md |
租户隔离、缓存、搜索、导出、备份、迁移、删除与恢复狩猎类 |
DESKTOP-MOBILE-AND-LOCAL-IPC.md |
原生应用、深链接、WebView、导出组件、辅助进程、守护进程与本地 IPC 狩猎类 |
VALIDATION-AND-REPORTING.md |
第 3–6 阶段候选验证、结构化输出、记录核验与报告 |
report-schema.json |
三类判定的 JSON Schema |
validate-findings.cjs |
第 4、5 阶段 findings.json 的零依赖校验器 |
validate-coverage-ledger.cjs |
第 1–5 阶段 coverage-ledger.json 的零依赖校验器 |
安装
通过 Skills CLI 安装:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit
加 --global 标记可进行用户级安装。运行 npx skills --help 查看代理选择与非交互选项。
使用方法
在目标代码库中启动编码代理后,发送安全审计请求即可触发技能,例如:
security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project
技能在请求匹配触发词(安全审计、查找漏洞、渗透测试代码等)时自动激活。直接的全量代码库审计或渗透测试请求使用完整审计模式;安全咨询与聚焦漏洞工作在未请求报告产物时使用指导模式。完整审计模式下未指定的输出目录默认为 ~/security-audit-skill/<repo-name>/run-<N>。工作流仅在显式选择被版本控制忽略的目录时才会写入目标仓库内部。
运行要求
- 支持工具调用与并行子代理的编码代理及对应模型
- 用于零依赖校验器的 Node.js
- 由操作系统强制执行的沙箱:负责处理目标控制的构建、测试、进程、浏览器、模拟器、模糊测试与测试数据;须禁用外部网络、使用清理过的白名单环境、强制资源限制,并仅允许写入指定的临时目录。缺少这些控制时,工作流会将所有线索保持为
needs_validation而不执行目标代码。
设计原则
- 仅确认已确立的边界失败:基于源码无法定论的线索保持为
needs_validation并附带精确的未决事实。 - 对抗式验证:核验发现的代理永远不是发现它的代理。
- 严重等级需要实际影响:以可能性乘以影响为准,而非对照清单的偏离程度。
- 纵深防御的缺口不构成漏洞:若第 A 层已阻止攻击,第 B 层的缺失仅记为加固建议。
- 多次运行提升覆盖:实际测试中单次运行约能发现重复运行累计漏洞数量的一半。
摘要更新于 2026-09-17 00:30:33
· 原文 6946 字符
· md5 eed96c783ade…