Security Audit Skill 教程:用 Claude Code 或 Codex 审计代码
从官方来源安装 Cloudflare security audit skill,限定代码审计范围,读取漏洞报告并复验修复。附可复制的审计提示词、结果判断与排错步骤。

Cloudflare 的 security audit skill 是一套供 AI 编程助手使用的指令和配套文件,用来检查代码仓库中的安全问题。 将它安装到 Claude Code 或 Codex 等工具中,让助手读取你有权审查的源码,再指定审计范围。请从 官方仓库 开始。
这是一篇开发者教程,Yix 页面本身不提供代码安全扫描。操作需要本地代码仓库、兼容的编程助手和 Node.js。技能采用 MIT 许可证,运行助手所用的模型仍可能产生费用。文章封面为编辑示意图,不是审计结果截图。
先分清你要审查什么
“Security audit skill” 容易混淆两件事。本文介绍的是用 Cloudflare security-audit 检查应用代码。安装陌生技能前,检查该技能的指令、脚本和权限是否安全,是另一个任务。
审计应用时,先写一个能用代码回答的问题。例如,“一个账户能否下载另一个账户的私有上传文件”,比“这个项目安全吗”更容易执行。前者明确了操作人、资源和访问规则,审计者可以沿着调用路径核对。
如果项目涉及生成图片、付款或媒体分享,应分别确认它们的规则。公开图片链接、私有原图链接和需要登录的下载接口,可能本来就具有不同权限。先写清产品允许什么,再判断实现是否越界。
1. 从官方来源安装
安装前先阅读仓库及技能文件,核对发布者和仓库名称,不要只凭目录网站的一条命令判断来源。在项目目录打开终端,官方给出的安装命令是:
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
按安装器提示选择你使用的助手。只有希望跨项目使用时,才加 --global。检查安装器准备写入的位置;已有同名自定义技能时,先比较内容,不要直接覆盖。
如果手动安装,需要复制仓库里完整的 skills/security-audit 目录。只复制 SKILL.md 会遗漏配套说明和校验脚本。
| 工具 | 项目内安装位置 | 个人安装位置 |
|---|---|---|
| Claude Code | .claude/skills/security-audit/ | ~/.claude/skills/security-audit/ |
| Codex | .agents/skills/security-audit/ | ~/.agents/skills/security-audit/ |
路径分别见 Claude Code 技能文档 和 Codex 技能文档。安装后看不到技能,可以新开一次助手会话。正式开始前,让助手说明实际加载了哪个技能文件。
2. 明确范围和停止条件
使用自己控制的代码副本,记录提交版本,保存当前修改,让审计有清楚的起点。生产密钥和私人客户文件不应进入审计环境。
开始前明确五项:
- 范围: 哪些目录、哪个业务问题需要检查。
- 执行权限: 先阅读源码;只有环境具备隔离能力时才运行有限的本地复现。
- 输出: 在仓库外新建一个目录保存报告。
- 预算: 根据账户情况设置代理调用次数或费用上限。
- 完成条件: 报告必须说明检查了什么、哪些地方仍缺证据。
Cloudflare 的 技能指令 区分针对性指导和完整审计。运行待审代码还要求操作系统级沙箱,限制联网、环境变量、可写目录和资源消耗。仅在提示词里写“请安全执行”,不会建立这些隔离条件;环境不满足时,应保持只读检查,并留下待验证事项。
3. 给助手一份具体的审计任务
下面以虚构应用为例。把目录替换为自己项目的实际路径。这是可改写的任务模板,不是某个项目的实测报告。
使用 security-audit 技能,对当前仓库做一次限定范围的审计。
目标:src/uploads 和 src/downloads。
问题:已登录账户能否读取或覆盖其他账户的私有上传文件?
记录源码提交版本和未提交修改。
先阅读源码。不要访问生产服务、使用客户记录或修改应用代码。
只有具备技能要求的操作系统级沙箱时,才允许执行待审代码。
获准的本地复现仅使用虚构账户和文件。
在仓库外的新目录中保存报告。
开始前提出代理调用预算,达到上限就停止。
单独列出尚未覆盖的路径与仍缺少的证据。
如果要检查支付,可以把目标替换为结账和 webhook 处理代码,问题改成“重复收到同一个付款事件,是否会重复发放权益”。任务中排除真实扣款、生产 webhook 重放和客户订阅操作。
先检查助手提出的计划是否符合范围。如果它加入了无关系统,就缩小范围;如果关键依赖无法读取,就记录缺口,不要让它对整个应用下结论。
4. 先读懂报告,再修改代码
上游流程将问题发现与独立复核分开,输出包括 findings.json、覆盖记录和便于阅读的报告。报告规范 说明了证据如何形成结论。
| 结论 | 下一步应该做什么 |
|---|---|
confirmed | 审查已经证实的权限或信任边界问题,再评估修复。 |
needs_validation | 补齐明确缺少的事实,不能直接当作已证实漏洞。 |
rejected | 候选问题已被推翻,保留原因,避免反复提出同一误报。 |
面对一项修复建议,先问五个问题:谁能触发?影响哪个资源?控制逻辑在哪里?实际观察到了什么?是否已有其他控制阻止了所声称的后果?
例如,下载函数接受文件编号后返回元数据,却没有直接检查所属用户。这还只是线索。需要继续检查路由鉴权、中间件、查询条件和存储权限,再用两个虚构账户验证预期边界。如果结果取决于仓库外的部署配置,而审计者看不到配置,就应保留这个未解决事实。
没有发现问题,不等于已经证明安全。尤其是因预算或环境限制停止的审计,应把覆盖记录和结论一起读。
5. 修复一项已确认问题,再验证
保留原报告,在单独分支里做最小修复,为具体权限边界添加回归测试,再让新的审查过程检查修改路径。以上传文件为例,既要验证所有者仍能正常访问,也要验证另一账户无法访问。把所有人都挡住虽然能阻止越权,也会破坏正常功能。
记录修复提交和测试结果,与原复现条件逐项比较,不要只让助手回答“是否已修复”。只有发现同类根因时才扩查相关路径,避免每修一个小问题就重写无关模块。
常见卡点怎么处理
安装后看不到技能: 核对正在使用的助手、工作目录和安装位置,检查是否多嵌套了一层文件夹,确认其中包含 SKILL.md。给 Claude Code 安装,并不等于也给 Codex 安装了。
助手只是回答问题,没有生成报告: 明确要求“对代码仓库进行限定范围的审计,并输出报告文件”。仅询问某个安全风险,可能进入指导模式。
无法创建独立复核代理: 换到支持所需委派能力的环境,或把本次工作限定为初步审查。初步审查不能标为完整执行了 Cloudflare 流程。
有很多待验证项: 逐项检查缺少什么事实。在适当情况下提供安全的本地测试数据或经负责人检查的配置片段,不要把生产密钥贴进聊天来补齐证据。
下一步
在自己的编程环境中,按照 官方 security-audit 仓库 使用技能。Yix 不执行这个技能,也不提供代码安全认证。
如果审查完成后另有文档配图需求,可以用 Yix 图片创作工具 制作视觉素材。不要把源码、密钥或私密审计发现作为创意提示词上传。其他 AI 工作流教程见 Yix 博客。