关于 security-audit
security-audit 是面向开发者的代码库安全审计技能,可检查整个项目、指定模块或近期变更。它结合上下文代码调查与可用扫描工具,生成含证据、严重性评分和修复优先级的报告。
主要功能
- 01OWASP Top 10 审查
- 02密钥与供应链检查
- 03STRIDE 威胁建模
- 04语言专项分析
- 05附文件行号证据的评分结果
- 06生成优先级 SECURITY_AUDIT.md 报告
适用场景
- 01发布前审查代码库
- 02调查安全敏感模块
- 03评估近期代码变更
- 04排列已确认漏洞的修复优先级
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rshade/ agent-skills --skill security-audit安装后在 Claude Code 中输入/security-audit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/language-security.mdowasp-patterns.mdreport-template.mdsecrets-and-supply-chain.mdthreat-model.md详细介绍
安全审计
检查代码库中的安全漏洞,涵盖 OWASP Top 10 类别、机密信息泄露、供应链风险和 特定语言的模式。生成带评分的 SECURITY_AUDIT.md, 并列出按优先级排序的修复措施。
核心原则: 要调查,而不只是搜索。阅读相关代码, 判断匹配项是真正的漏洞、误报,还是已经得到缓解。只有 提供具体文件:行号证据且确认存在风险时,才报告发现。
前置条件检查
git --version 2>/dev/null && git rev-parse --is-inside-work-tree 2>/dev/null
检查是否有可用的安全工具(可选,但有助于提升分析质量):
command -v gitleaks 2>/dev/null && echo "gitleaks: available"
command -v semgrep 2>/dev/null && echo "semgrep: available"
command -v trivy 2>/dev/null && echo "trivy: available"
command -v govulncheck 2>/dev/null && echo "govulncheck: available"
即使没有工具也请继续调查——手动检查同样有效。在报告中注明缺少哪些 工具。
步骤 1:范围与上下文
确定审计对象并了解应用:
- 检测技术栈 — 扫描 go.mod、package.json、 pyproject.toml、Cargo.toml、*.csproj,以识别所用语言
- 识别安全敏感区域 — 搜索与身份验证、授权、数据库访问、API 端点、加密和文件处理相关的文件
- 确定范围 — 根据用户输入,审计整个代码库、特定模块或 仅审计近期更改
- 阅读项目文档 — 查阅 CLAUDE.md、README.md、CONTEXT.md,了解 架构背景和已知边界
步骤 2:自动化扫描
手动调查前,先运行可用的安全工具。工具 扫描结果有助于确定手动审查的重点。
# Secrets in current code and git history
gitleaks detect -v 2>&1
# Static analysis (language-aware rule sets)
semgrep --config=auto --severity=ERROR . 2>&1
# Dependency vulnerabilities
trivy fs --severity HIGH,CRITICAL . 2>&1
# or: govulncheck ./... / npm audit / pip-audit / cargo audit
如果工具发现问题,请逐一验证——自动扫描器会产生 误报。将标记出的代码放在上下文中阅读后,再决定是否纳入 报告。
步骤 3:OWASP Top 10 分析
系统地调查与项目相关的各个 OWASP 类别。并非所有类别都适用于 所有项目——CLI 工具无需检查 XSS;库也无需进行 CSRF 防护。
对于每个适用类别:
- 找出可能存在此类漏洞的代码路径
- 阅读实际实现(不要只搜索关键字)
- 检查是否已采取缓解措施
- 仅报告已确认或高度疑似的漏洞
有关各个 OWASP 类别的详细调查模式,请参阅
references/owasp-patterns.md。
步骤 4:机密信息与供应链
机密信息: 扫描当前代码和 Git 历史记录,查找硬编码的 凭据、API 密钥、令牌和连接字符串。从当前代码中删除但仍存在于 Git 历史记录中的机密信息依然已泄露——请将其标记为 CRITICAL。
供应链: 检查锁文件完整性、依赖项漏洞、依赖混淆风险,以及 关键依赖项的维护情况。
有关详细扫描命令和分析模式,请参阅
references/secrets-and-supply-chain.md。
步骤 5:威胁建模
针对实际代码库应用 STRIDE:
- 绘制入口点 — 列出数据进入应用的所有方式
- 识别信任边界 — 找出不可信数据进入可信区域的位置
- 应用 STRIDE 类别 — 欺骗、篡改、抵赖、信息泄露、拒绝服务、权限提升
- 使用 DREAD 对威胁评分(损害程度、可复现性、 可利用性、受影响用户、可发现性)
有关详细的威胁建模步骤和 DREAD 评分方法,请参阅
references/threat-model.md。
步骤 6:特定语言审查
检查检测到的语言中特有的漏洞模式。 仅加载相关语言章节。
有关 Go、JavaScript/TypeScript、Python、Rust 和 .NET 的模式,请参阅
references/language-security.md。
步骤 7:为发现的问题评分并分类
为每项发现指定:
- 严重性:CRITICAL / HIGH / MEDIUM / LOW
- CRITICAL:目前即可利用,存在数据泄露或 RCE 风险
- HIGH:通过适度投入即可利用,影响显著
- MEDIUM:需要特定条件,影响中等
- LOW:理论风险,影响轻微
- 修复工作量:S(< 1 天)/ M(1-5 天)/ L(1-2 周)
- 证据:具体的文件:行号引用及说明
步骤 8:生成 SECURITY_AUDIT.md
使用 references/report-template.md 中的模板编写报告。包含执行摘要、附带证据的详细发现、威胁模型摘要和按优先级排序的修复措施。
对生成的文件运行 markdownlint。
步骤 9:呈现摘要
向用户展示:
- 按严重程度统计的发现数量
- 最关键的 3 个事项及其证据
- 已提供和缺失的工具
- 修复优先级列表
- 询问用户希望先处理哪些发现