| name | secret-detection |
| description | 密钥检测 —— 代码仓库密钥扫描、pre-commit 钩子、密钥轮换流程与泄露应急响应 |
| category | 安全 |
| loading | on-demand |
| triggers | {"keywords":["密钥","secret","API key","密码泄露","token","扫描","trufflehog","git secrets"]} |
密钥检测
概述
提供密钥和敏感凭据的全生命周期管理策略,覆盖代码仓库扫描、提交前拦截、密钥轮换和泄露后的应急响应流程。
使用场景
- 配置 pre-commit 钩子防止密钥提交
- 对已有仓库进行历史全量密钥扫描
- 发现密钥泄露后的轮换和清理
- CI/CD 中集成密钥检测门禁
核心原则
- 预防优于检测:环境变量 +
.env + .gitignore 是最基础的防护。pre-commit 钩子是第二道防线。
- 密钥不进 Git 历史:一旦提交到 Git,即使后续删除,历史中仍然存在。泄露的密钥必须立即轮换——删除提交记录是不够的。
- 扫描覆盖全量历史:不仅扫描最新提交,必须扫描完整 Git 历史(包括所有分支和 tags)。
- 密钥轮换是常态:密钥应有固定有效期,到期自动轮换。不轮换的密钥就是定时炸弹。
- 最小暴露面:每个密钥分配最小权限;开发和生产的密钥严格分离;密钥不在日志、错误消息、客户端代码中出现。
工具链
- git-secrets(AWS):pre-commit + 历史扫描
- truffleHog:扫描 Git 历史中的高熵字符串
- Gitleaks:CI/CD 集成的密钥泄露检测
- detect-secrets(Yelp):基线文件管理已知安全项
检查清单