SuperAPI AI 工具集

detecting-aws-credential-exposure-with-trufflehog

安全与审计

查看项目

更新于 10-15 15:27

技能介绍

用途

本技能用于检测源代码仓库、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 历史。

使用方式

  1. 安装并配置 TruffleHog:pip install trufflehog 或使用二进制安装脚本,通过 trufflehog --version 验证。
  2. 扫描 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。
  3. 分析结果:解析 JSON 输出,筛选 AWS 检测器结果,使用 aws iam get-access-key-last-used 和 aws iam list-access-keys 检查密钥状态。
  4. 设置预提交钩子:git secrets --install、git secrets --register-aws,并添加自定义模式。
  5. 集成 CI/CD:在 GitHub Actions 或 GitLab CI 中添加 TruffleHog 扫描步骤。
  6. 应急响应:停用暴露密钥(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 层面立即停用密钥。