用途:查找暴露的 API 密钥、令牌、密码和私钥,并审计自有应用对密钥的管理方式。资料指出几乎所有应用都存在密钥,静态站点也可能有部署凭据或 CI 令牌,因此适用范围接近「总是」。仅限自有或已授权的仓库、产物与基础设施;发现真实泄露密钥应按事件处理,先轮换再修泄露路径。
排查位置:源代码、git 历史(已从 HEAD 删除的密钥仍留在历史中)、前端打包产物与 source map、移动端二进制(可反编译 APK/IPA)、日志与错误输出、配置与 .env、CI/CD 流水线与构建日志、云环境(实例元数据、函数环境变量、IaC 状态)。
方法:先用模式与熵检测全量扫描 git 历史、工作区、产物和日志;验证命中的凭据是否有效(不使用第三方凭据,仅以自有密钥做无害验证);评估影响范围与权限;审计是否已入保险库、已轮换、符合最小权限;最后轮换泄露密钥、清除历史、迁入密钥管理器并加入预防措施。
工具:trufflehog、gitleaks、detect-secrets 用于检测;git filter-repo / BFG 用于清除历史;云密钥管理器或 Vault 用于存储;pre-commit 钩子与 CI 扫描用于预防。
输出:每条发现给出密钥类型、位置(含提交哈希)、有效性、影响范围和轮换状态;有效的高权限密钥为严重级别,应立即轮换。
常见错误:只扫 HEAD;把密钥从代码删除却不轮换;把实为服务密钥的「公开」密钥打进前端或移动端包;缺少 pre-commit 与 CI 扫描导致新密钥再次泄露。上述授权边界、工具与流程均来自公开资料;具体命令未在资料中提供。