ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TruffleHog 扫描本地 git 仓库时如何防范恶意 git 配置?--clone-path 与 --trust-local-git-config 用法

TruffleHog 扫描本地 git 仓库时如何防范恶意 git 配置?--clone-path 与 --trust-local-git-config 用法 TruffleHog 扫描本地 git 仓库时如何防范恶意 git 配置--clone-path 与 --trust-local-git-config 用法【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog当你用 TruffleHog 的git子命令扫描一个本地仓库file://路径时如果仓库里带有恶意的 git 配置直接执行扫描可能触发该配置中的钩子或命令。TruffleHog 针对这一问题README 中引用了 CVE-2025-41390的默认做法是扫描前先把本地 git 仓库克隆到系统临时目录再对克隆副本执行扫描遵循 Git 官方的安全最佳实践。本文说明在这套机制下如何正确选择和使用--clone-path与--trust-local-git-config两个参数前者把克隆副本放到你指定的目录后者直接跳过克隆、在原仓库上扫描仅适用于你完全信任的仓库。默认行为克隆到临时目录再扫描不指定任何额外参数时流程如下以扫描本地仓库为例来自 README.md 第 10 节# 先进入仓库的父目录仓库外部 trufflehog git file://test_keys --resultsverified,unknown此时 TruffleHog 会在系统临时路径下创建一个权限为 0700 的全新临时目录把目标仓库克隆进去后扫描克隆副本扫描后会被清理。这个先克隆、再扫描的过程就是防恶意 git 配置的核心手段main.go 中也有相应注释说明未指定自定义克隆路径时仓库会被克隆到临时目录且这些临时副本不应被保留。用 --clone-path 指定克隆目录如果默认临时目录不符合你的环境例如需要固定磁盘位置、需要事后检查克隆内容可以用--clone-path指定克隆落盘的位置来自 docs/man/trufflehog.1 与 main.gotrufflehog git file://test_keys --resultsverified,unknown --clone-path /data/trufflehog-clones参数约束来自 main.go 中的校验逻辑与 pkg/sources/git/git.go 中的实现说明--clone-path必须指向一个已存在的目录否则直接报错扫描不会开始该参数在git、github、gitlab三个扫描子命令上都有定义设置后每个仓库的克隆副本会放在clone-path/trufflehog-repo-name-随机后缀子目录下目录权限为 0755与默认临时目录0700不同每个克隆都有独立目录同一仓库并发多次克隆不会互相覆盖。可选分支--no-cleanup 保留克隆副本默认情况下克隆副本扫描后会删除。如果你需要事后检查这些副本可以加--no-cleanuptrufflehog git file://test_keys --resultsverified,unknown --clone-path /data/trufflehog-clones --no-cleanup注意事项参数说明原文务必确认磁盘容量后再用--no-cleanup只能与--clone-path一起使用单独使用会报错invalid configuration: --no-cleanup can only be used together with --clone-path每个克隆保留在独立目录中占用空间随扫描的仓库数和运行次数持续增长需要自行清理。用 --trust-local-git-config 跳过克隆仅限可信仓库如果扫描对象是你自己维护、完全可信的本地仓库典型场景仓库自身的 pre-commit 钩子里扫描file://.可以加--trust-local-git-config跳过克隆、直接在原仓库上扫描trufflehog git file://. --since-commit HEAD --resultsverified,unknown --fail --trust-local-git-config这正是 PreCommit.md 中给出的手动配置钩子示例。该文档明确提示只对可信仓库使用此标志。它的取舍是省去一次克隆的时间代价是放弃隔离克隆这层对恶意 git 配置的防护因此不适用于扫描来路不明的第三方仓库。--trust-local-git-config只定义在git子命令上见 main.go 与 docs/man/trufflehog.1github/gitlab远程扫描走的是--clone-path那套克隆机制与该标志无关。如何判断参数使用是否正确启动阶段就能观察到两类配置错误的报错文本来自 main.go 的validateClonePath扫描不会进入实际执行path provided to --clone-path: /data/trufflehog-clones does not existpath provided to --clone-path: /data/somefile is not a directory出现第一条时先mkdir -p建目录再重跑出现第二条时确认传入的是目录而不是文件。--no-cleanup脱离--clone-path单独使用时的报错为invalid configuration: --no-cleanup can only be used together with --clone-path配置正确时命令按常规输出扫描结果配合--fail标志时发现有效凭据会返回 183 错误码README 第 13 节对该标志的说明这一点在把命令放进 CI 或钩子时可用于判定结果。适用边界默认克隆机制只针对本地扫描file://源的恶意 git 配置风险远程 https/ssh 扫描本来就是克隆流程不受影响用--trust-local-git-config前先确认仓库来源可信——文档给出的限制就是这一句没有其他豁免条件保留克隆副本--no-cleanup会持续占用磁盘属于需要额外维护的操作默认不要开。【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表