秘密扫描已成为工程组织的标准做法,Gitleaks一直是该领域使用最广泛的工具之一。该项目的作者现在已经发布了一个名为Betterleaks的新工具,该工具旨在扫描git存储库、目录和标准输入,以获取泄露的凭据、API密钥、令牌和密码。
Zach Rice大约在八年前编写了Gitleaks的原始代码,现在担任Aikido Security的秘密扫描主管,他是Betterleaks的项目负责人。

扫描时间与现实世界存储库上的Gitleaks比较(来源:Betterleaks GitHub页面)
为什么是新项目
Rice在一篇文章中解释说,他不再完全控制Gitleaks存储库和名称,这促使他开始一个新项目。Betterleaks旨在作为Gitleaks的直接替换,这意味着现有的CLI标志和配置文件无需修改即可延续。
Betterleaks中最重要的技术变化是其过滤候选机密的方法。与许多扫描仪一样,Gitleaks依靠Shannon熵来识别可能是秘密的字符串。Betterleaks引入了一种基于字节对编码(BPE)令牌化的不同技术,称为令牌效率。
该方法测量BPE令牌化器如何压缩给定字符串。自然语言很好地压缩成更长的令牌,从而产生高令牌效率。秘密和随机字符串压缩不良,产生许多短令牌和低令牌效率。Betterleaks以此作为过滤误报的信号。根据Rice的数据集,代币效率实现了98.6%的召回率,而熵的召回率为70.4%。
Betterleaks中的验证逻辑是使用通用表达语言(CEL)编写的,让规则作者可以以编程方式控制什么是已确认的秘密。
默认情况下,该工具还处理双重和三重编码的秘密,并支持并行git扫描以减少扫描时间。它内置于没有CGO的纯Go中,消除了对Hyperscan的依赖,并允许在没有本机库要求的情况下跨环境进行部署。该工具支持扫描存档,包括嵌套存档,并以JSON、CSV、JUnit、SARIF和自定义模板格式输出结果。
计划的v2功能
项目路线图包括当前v1版本中没有的几个功能。Rice描述了LLM辅助分类的计划,其中匿名的候选秘密被传递到本地或远程语言模型,以获取额外的上下文。计划为暴露凭据撤销API的提供商提供自动撤销支持。该团队还打算添加权限映射,这将显示检测到的秘密实际携带的访问权限。
人工智能代理的使用
该工具采用基于标志的输出控制设计,因此人工智能编码代理可以将其作为子进程运行,并在不产生过多的令牌开销的情况下消耗其输出。Rice指出,在Claude Code或Cursor等工具中运行的代理可以达到具有可控制输出的CLI实用程序,而Betterleaks是为了满足这种模式而构建的。
Betterleaks在GitHub上免费提供。























