用途
本技能用于检测源代码仓库、CI/CD 流水线和配置文件中暴露的 AWS 凭证。适用场景包括:将密钥检测集成到 CI/CD 流水线,防止凭证提交进入生产环境;对现有仓库进行安全审计,查找历史上提交过的 AWS 凭证;响应 AWS GuardDuty 关于凭证从异常 IP 或区域使用的告警;对接管或第三方供应商的仓库进行安全审查;验证凭证轮换流程是否已清除旧访问密钥的所有引用。
不适用于实时凭证监控(应使用 AWS GuardDuty 或 Amazon Macie)、密钥管理(应使用 AWS Secrets Manager 或 HashiCorp Vault),以及检测 PII 等非凭证敏感数据(应使用 Amazon Macie 或 DLP 工具)。
主要能力
- 使用 TruffleHog v3 扫描 Git 仓库完整历史(含所有分支和提交),查找 AWS 访问密钥、秘密密钥和会话令牌。
- 支持扫描 GitHub 组织、GitLab 群组、本地 Git 仓库及文件系统路径。
- 通过验证 API 确认凭证是否仍然有效(Verified Secret)。
- 使用 git-secrets 设置预提交钩子,在提交阶段阻止凭证进入仓库。
- 集成到 GitHub Actions 和 GitLab CI 作为部署门禁。
- 提供凭证暴露后的应急响应流程:停用密钥、生成新凭证、审查 CloudTrail、删除密钥、使用 BFG Repo Cleaner 清理 Git 历史。
使用方式
- 安装并配置 TruffleHog:
pip install trufflehog或使用二进制安装脚本,通过trufflehog --version验证。 - 扫描 Git 仓库:
trufflehog git file:///path/to/repo --only-verified --json > trufflehog-results.json;扫描 GitHub 组织:trufflehog github --org=your-organization --token=$GITHUB_TOKEN --only-verified;扫描 GitLab 群组:trufflehog gitlab --group=your-group --token=$GITLAB_TOKEN --only-verified;扫描文件系统:trufflehog filesystem /path/to/project --only-verified。 - 分析结果:解析 JSON 输出,筛选 AWS 检测器结果,使用
aws iam get-access-key-last-used和aws iam list-access-keys检查密钥状态。 - 设置预提交钩子:
git secrets --install、git secrets --register-aws,并添加自定义模式。 - 集成 CI/CD:在 GitHub Actions 或 GitLab CI 中添加 TruffleHog 扫描步骤。
- 应急响应:停用暴露密钥(
aws iam update-access-key --status Inactive)、生成新密钥、审查 CloudTrail 事件、删除旧密钥、使用 BFG 清理 Git 历史。
适用场景
- 开发者将 AWS 凭证提交到公共 GitHub 仓库后的应急响应。
- 对收购或第三方仓库进行安全审计。
- 在 CI/CD 中设置密钥检测门禁。
- 验证凭证轮换是否彻底。
限制
- 不用于实时凭证监控。
- 不用于密钥管理。
- 不用于检测 PII 等非凭证敏感数据。
- 需要安装 TruffleHog v3、git-secrets,并配置 AWS CLI 权限(iam:ListAccessKeys、iam:GetAccessKeyLastUsed)以及 GitHub/GitLab API 令牌。
- 删除提交或强制推送不能从 GitHub 缓存或 fork 中移除凭证,必须在 AWS 层面立即停用密钥。