References Usage Guide
面向使用者和团队维护者

Repo Security Audit 用户指南

Repo Security Audit 是一个仓库安全审计 skill,用来检查源码风险、硬编码凭据、Git 历史泄露和依赖漏洞。 它会生成 HTML 报告,并按 P0 到 P3 标出上线前必须处理的事项。

适合谁

开发、测试、交付、上线审批和安全复核人员。

默认建议

上线前使用“上线前扫描”,覆盖当前代码和最近 Git 历史。

最终产物

一份自包含 HTML 报告,必要时可保留 JSON 和 SARIF。

Purpose

功能说明

这个 skill 的核心问题是:这个仓库能不能上线,哪些问题必须立即修,哪些可以延后处理。

  • 源码规则扫描:检查危险配置、token 进入 URL、常见 source 到 sink 风险和框架反模式。
  • 凭据扫描:检查当前文件和 Git 历史中的 API key、token、secret、高熵字符串。
  • 依赖漏洞扫描:通过依赖名和版本识别公开漏洞,并结合运行时引用做优先级判断。
  • 语义复审:对高风险文件做人工智能复审,补充自动规则不容易发现的授权、流程和 XSS 风险。
  • 报告输出:生成 HTML 报告,说明定位、风险原因、验真伪方法、常见误报和修复优先级。
Preparation

使用前准备

正式扫描前建议先做预检。扫描器越完整,报告覆盖率越高;离线模式隐私更强,但能力会下降。

扫描器各自负责什么

Semgrep 负责源码规则,gitleaks 负责凭据和历史泄露,osv-scanner 负责依赖漏洞。

离线模式的边界

离线扫描不会联网、不会查 OSV、不会安装工具、不会调用外部模型。适合敏感仓库,但依赖漏洞和语义复审覆盖会降低。

历史凭据先吊销

如果报告提示 Git 历史里有真实 token,先吊销或轮换凭据,再考虑清理 Git 历史。

Workflow

推荐流程

你不需要记命令细节。告诉 AI 目标和扫描方式,AI 应先预检,再按模式执行扫描。

预检扫描器

AI 会检查 PATH 中是否已有 Semgrep、gitleaks、osv-scanner。缺少工具时,应先让你选择安装、降级或离线扫描。

选择扫描方式

日常自查用“当前代码扫描”;上线前用“上线前扫描”;交付、开源、发布前用“完整历史扫描”。

生成安全报告

扫描完成后,AI 应给出 HTML 报告路径,并总结 P0/P1 是否阻断上线。

处理 P0 和 P1

P0/P1 需要人工确认真伪和可触达性。真实凭据要先吊销,依赖漏洞要确认是否在运行时代码中使用。

How to ask AI

扫描方式和 AI 话术

给用户看时,优先使用“怎么对 AI 说”。参数只是给维护者核对。

快速自查

当前代码扫描

只检查当前工作树,不扫 Git 历史。适合改完代码后快速确认当前文件是否还有风险。

用 repo-security-audit 扫一下。
模式:当前代码扫描,只看当前工作树,不扫 Git 历史。
不要 build。
维护者参考:--history none --quick
发布前

完整历史扫描

检查当前代码和完整 Git 历史。适合发布、交付、开源、安全审计前使用。

用 repo-security-audit 做发布前完整安全扫描。
模式:完整历史扫描,当前代码和完整 Git 历史都要扫。
重点关注历史凭据、依赖漏洞、P0/P1 阻断项。
不要 build。
维护者参考:--history full
敏感仓库

离线扫描

零外发扫描。适合源码、依赖信息或高风险片段不能离开本机的仓库。

用 repo-security-audit 扫一下。
模式:离线扫描,零外发。
不要访问网络,不查 OSV,不安装工具,不调用外部模型。
不要 build。
维护者参考:--offline
工程接入

CI 扫描

保留机器可读产物,并在 P0/P1 出现时让流水线失败。

用 repo-security-audit 跑 CI 安全扫描。
模式:CI 扫描,保留 HTML、JSON、SARIF。
如果出现 P0 或 P1,让命令返回失败码。
不要 build。
维护者参考:--artifacts --fail-on p1
Reference

模式和参数对照

这张表给维护者确认。普通用户只需要选择扫描方式,不需要记参数。

扫描方式 适用场景 关键参数
当前代码扫描 日常自查,只看当前工作树。 --history none --quick
上线前扫描 上线前默认检查,覆盖当前代码和最近历史。 --history recent
完整历史扫描 发布、交付、开源前的严格检查。 --history full
离线扫描 敏感仓库,要求零外发。 --offline
CI 扫描 需要 JSON/SARIF 和流水线失败门禁。 --artifacts --fail-on p1
Report

报告解读

先看 P0 和 P1。P3 数量多不一定代表风险大,很多 P3 是第三方库、构建产物或需要人工确认的低优先级信号。

P0

阻断上线。真实凭据泄露、可触达高危链路、必须马上处理。

P1

强烈建议短期处理。运行时高危依赖、token 进 URL 等。

P2

建议排期。语义风险、用途未知的高危依赖、需要补验证的问题。

P3

信息加固。构建产物、第三方库、误报可能性较高的命中。

FAQ

常见问题

第一次给团队成员使用时,可以直接让他们阅读这一节。

为什么报告里会出现已经删除的文件?

因为上线前扫描会检查最近 Git 历史。文件删除后仍存在于 Git 对象中,如果旧版本里有凭据,仓库访问者仍可能拿到。

扫描器一定要安装吗?

不是必须,但正式上线前建议安装。完整扫描器覆盖源码规则、凭据扫描和依赖漏洞;降级扫描只能提供较基础的结果。

离线扫描是不是最推荐?

离线扫描隐私最强,但覆盖率较低。只有在源码、依赖名或高风险片段不能外发时,才建议默认使用离线模式。

发现历史凭据后应该先做什么?

先吊销或轮换凭据,再考虑清理 Git 历史。清理历史不能保证旧值没有被人看过,所以不能替代凭据轮换。