mcpField
S
security-audit

security-audit

github.com/rshade安全390 次安装2 周前更新
代码仓库

关于 security-audit

security-audit 是面向开发者的代码库安全审计技能,可检查整个项目、指定模块或近期变更。它结合上下文代码调查与可用扫描工具,生成含证据、严重性评分和修复优先级的报告。

主要功能

  1. 01OWASP Top 10 审查
  2. 02密钥与供应链检查
  3. 03STRIDE 威胁建模
  4. 04语言专项分析
  5. 05附文件行号证据的评分结果
  6. 06生成优先级 SECURITY_AUDIT.md 报告

适用场景

  1. 01发布前审查代码库
  2. 02调查安全敏感模块
  3. 03评估近期代码变更
  4. 04排列已确认漏洞的修复优先级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rshade/agent-skills --skill security-audit

安装后在 Claude Code 中输入/security-audit确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
language-security.md
owasp-patterns.md
report-template.md
secrets-and-supply-chain.md
threat-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:范围与上下文

确定审计对象并了解应用:

  1. 检测技术栈 — 扫描 go.mod、package.json、 pyproject.toml、Cargo.toml、*.csproj,以识别所用语言
  2. 识别安全敏感区域 — 搜索与身份验证、授权、数据库访问、API 端点、加密和文件处理相关的文件
  3. 确定范围 — 根据用户输入,审计整个代码库、特定模块或 仅审计近期更改
  4. 阅读项目文档 — 查阅 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 防护。

对于每个适用类别:

  1. 找出可能存在此类漏洞的代码路径
  2. 阅读实际实现(不要只搜索关键字)
  3. 检查是否已采取缓解措施
  4. 仅报告已确认或高度疑似的漏洞

有关各个 OWASP 类别的详细调查模式,请参阅 references/owasp-patterns.md。

步骤 4:机密信息与供应链

机密信息: 扫描当前代码和 Git 历史记录,查找硬编码的 凭据、API 密钥、令牌和连接字符串。从当前代码中删除但仍存在于 Git 历史记录中的机密信息依然已泄露——请将其标记为 CRITICAL。

供应链: 检查锁文件完整性、依赖项漏洞、依赖混淆风险,以及 关键依赖项的维护情况。

有关详细扫描命令和分析模式,请参阅 references/secrets-and-supply-chain.md。

步骤 5:威胁建模

针对实际代码库应用 STRIDE:

  1. 绘制入口点 — 列出数据进入应用的所有方式
  2. 识别信任边界 — 找出不可信数据进入可信区域的位置
  3. 应用 STRIDE 类别 — 欺骗、篡改、抵赖、信息泄露、拒绝服务、权限提升
  4. 使用 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:呈现摘要

向用户展示:

  1. 按严重程度统计的发现数量
  2. 最关键的 3 个事项及其证据
  3. 已提供和缺失的工具
  4. 修复优先级列表
  5. 询问用户希望先处理哪些发现

评论

支持 Markdown