关于 secrets-scan
面向代码库和仓库维护者的密钥扫描技能,结合可用的自动扫描器、手动模式检查和上下文分析,并规定检测到凭据后的脱敏与处置步骤。
主要功能
- 01选择可用的自动扫描器
- 02手动检查密钥模式
- 03分析检测项的上下文
- 04预防控制清单
- 05脱敏与轮换指导
适用场景
- 01扫描代码库中的硬编码凭据
- 02检查仓库历史中的泄露密钥
- 03评估并处置检测到的凭据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ owasp/ secure-agent-playbook --skill secrets-scan安装后在 Claude Code 中输入/secrets-scan确认已加载。
详细介绍
密钥扫描
按照 plays/secrets-scan.md 中的完整流程检测硬编码密钥。
步骤
-
运行自动扫描器 — 按优先顺序使用可用工具:
trufflehog filesystem --directory=<path> --json(推荐)trufflehog git file://<repo> --json(包含 Git 历史记录)gitleaks detect --source=<path> --report-format=jsondetect-secrets scan <path> --all-files- 如果没有可用的扫描器,请进行手动模式分析。
-
手动模式分析 — 搜索高置信度模式:
- AWS 密钥(
AKIA...)、OpenAI(sk-...)、Anthropic(sk-ant-...)、GitHub(ghp_...)、Slack(xoxb-...)、Stripe(sk_live_...)、SendGrid(SG.) - 嵌入密码的连接字符串(
://user:pass@host) - 私钥(PEM 标头)、JWT 密钥、数据库凭据
- 高风险文件:
.env、docker-compose*.yml、*.tfvars、terraform.tfstate、kubeconfig、.npmrc、.pypirc
- AWS 密钥(
-
上下文分析 — 对每项检测结果进行判断:它是真实密钥(而非占位符或测试样本)吗?它仍然有效吗?影响范围有多大(服务、权限、生产环境还是开发环境、暴露时长)?
-
检查预防性控制措施 — 验证:
.gitignore是否覆盖敏感文件,是否配置了用于密钥扫描的提交前钩子,CI 流水线是否进行扫描,是否提供了密钥管理文档。
重要提示:切勿在调查结果中包含实际密钥值。仅显示已脱敏的版本(例如,AKIA****EXAMPLE)。生产环境中仍然有效的密钥必须立即轮换。
输出
扫描摘要、使用 templates/finding.md 编写的调查结果、预防性控制措施清单,以及需要时的立即轮换措施。
OWASP 参考
- A07:2021:身份识别和身份验证失败
- CWE-798:使用硬编码凭据
- CWE-312:敏感信息明文存储
评论
支持 Markdown