TruffleHog 凭证泄露扫描 3 步上手指南:从安装到 CI 集成的完整流程
【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog
TruffleHog 是一个开源的凭证泄露扫描器:给它一个仓库、一个镜像或一个云存储桶,它会翻遍里面的历史内容,找出 API 密钥、数据库密码、私钥这类东西,并且能进一步"登录验证"该凭证是否还活着。相比纯正则匹配的工具,它的最大差异在 verify 这一步——扫出来的东西会尽量去确认真实有效性,帮你把注意力集中在真正泄露、真正需要轮换的凭证上。
装之前先想清楚你要扫什么
TruffleHog 的子命令就是数据源,常用的是这几种:git扫仓库(本地、远程都行),filesystem扫本地目录和文件,s3、gcs扫对象存储,docker扫容器镜像,另外还有 Jenkins、Elasticsearch、Postman 工作区等入口。也就是说,密钥藏在哪儿,就用对应的子命令去敲哪里。
装它最省事的方式是仓库自带的安装脚本,默认装到./bin,用-b参数可以指定目录,装完直接进 PATH 即可:
./scripts/install.sh -b /usr/local/bin不想克隆仓库的话也可以直接用 Docker 镜像跑,不用在本地留任何环境依赖。
第一条命令:把本地目录丢给它
装好之后,最快的验证方式是扫一个你信得过的本地目录。这里有个小细节:filesystem模式吃的是文件路径,不是仓库地址:
trufflehog filesystem .输出会给出检测器类型、文件位置、提交哈希和行号。想只看确认有效的结果,加--results=verified过滤掉未验证的噪声;想接入脚本处理,加--json或--sarif(SARIF 能被代码扫描平台直接消费,在 PR 上显示 inline 结果)。
进阶玩法:CI 里只扫本次改动,发现就拦截
日常全量扫成本高,实际落地一般是增量扫:在 CI 里只查"这次 PR 相对 main 新加的内容"。--since-commit指定基线分支,--branch指定当前分支,--fail让发现有活凭证时返回非零退出码直接卡住流水线:
trufflehog git file://. --since-commit main --branch HEAD --results=verified,unknown --fail注意一个容易踩的坑:扫本地仓库时,出于安全考虑(防止恶意.git配置),它默认会先把仓库克隆到临时目录再扫,所以本地扫描需要额外几秒。只扫可信仓库时可以用--trust-local-git-config跳过这步加速。
内置检测器覆盖不到的场景:写一个自定义规则
TruffleHog 内置了 800 多个检测器,对应主流云厂商、SaaS 和代码托管平台的凭证格式。但你自己服务内部用的 token 格式、或者你们公司统一的密钥命名规范,内置规则不认识。
这时候用 YAML 配置文件加一条自定义检测器:keywords先做粗筛(行内出现任一关键词才触发正则),regex定义凭证本身的模式,再挂一个verify请求让自家接口确认它是否有效。用-c参数把配置带进扫描命令:
trufflehog filesystem . -c config.yaml配置长这样,仓库里examples/目录下还有几个现成模板可以直接抄改:
detectors: - name: my-service-token keywords: - hog regex: token: '[^A-Za-z0-9+/]{0,1}([A-Za-z09+/]{40})[^A-Za-z0-9+/]{0,1}' verify: - endpoint: http://localhost:8000/ unsafe: true headers: - "Authorization: super secret authorization header"unsafe: true是给 HTTP 端点用的,必须显式声明。更细的参数比如用熵值过滤、排除词、额外校验规则等,完整文档在 pkg/custom_detectors/CUSTOM_DETECTORS.md。
扫描很慢或误报太多,怎么调
大仓库首次全量扫会慢一些,这是正常的,后续可以按数据源裁剪范围、用增量模式。如果误报集中出现在某些格式上,优先检查两件事:正则的捕获组是不是捞得太宽,以及有没有漏配exclude_words之类的排除项。
仓库docs/下还有两篇文档值得翻:docs/process_flow.md 讲扫描管道内部如何流转,docs/concurrency.md 讲并发模型。另外hack/bench/versions.png记录了各版本的用户时间基准对比,可以看到性能在多版本间保持平稳:
下一步
别等出事再扫:挑一个你最活跃、历史最长的仓库,先跑一遍--results=verified的全量扫描看看家底,再把上面那段 CI 增量命令挂进流水线。扫完记得把活凭证全部轮换一遍 🛡️
【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考