
在软件开发中,密钥扫描已成为工程团队的必备环节,而 Gitleaks 无疑是这一领域使用最为广泛的工具之一。最近,该项目的原作者发布了一款名为 Betterleaks 的全新工具,旨在扫描 Git 仓库、目录以及标准输入(stdin)中的凭证泄露,例如 API 密钥、令牌和密码。
项目负责人 Zach Rice 大约八年前编写了 Gitleaks 的初始代码,目前担任 Aikido Security 公司密钥扫描部门的主管。此次新工具的推出,标志着他在开源实战领域的又一次重要探索。
工具概述
Betterleaks 被定位为 Gitleaks 的“即插即用”替代品。Zach Rice 在项目说明中解释道,由于他不再完全掌控 Gitleaks 的代码库和名称所有权,这促使他启动了这个新项目。最大的好消息是,对于现有用户而言,迁移成本几乎为零:现有的命令行参数和配置文件无需任何修改即可直接在 Betterleaks 上使用。

实际代码库扫描耗时与Gitleaks对比(来源:Betterleaks GitHub页面)
技术革新
那么,Betterleaks 究竟带来了哪些实质性的改进?最核心的升级在于其候选密钥的过滤机制。
传统的扫描工具(包括 Gitleaks)通常依赖香农熵来识别那些看起来像随机字符串的疑似密钥。然而,Betterleaks 创新性地采用了一种基于字节对编码(BPE)的 Token Efficiency 技术:
- 原理:该技术通过测量 BPE 分词器对字符串的“压缩效率”来进行判断。
- 表现:自然语言文本可以被高效地压缩为较长的 token,因此表现出较高的 Token Efficiency 值。
- 识别:而密钥和随机字符串的“可压缩性”很差,会被分解成大量短 token,从而产生很低的 Token Efficiency 值。
- 效果:在 CredData 数据集上的测试表明,Token Efficiency 方法的召回率达到了 98.6%,显著优于传统熵检测法的 70.4%。
除了更精准的检测算法,Betterleaks 在架构和功能上也进行了全面优化:
- 验证逻辑可编程:采用通用表达式语言(CEL)编写验证规则,让规则制定者能够更灵活地控制密钥的确认标准。
- 支持高级检测:默认支持双重和三重编码(如 Base64 嵌套)密钥的检测。
- 性能提升:通过并行化 Git 扫描操作,大幅降低了整体扫描耗时(如上图所示)。
- 纯 Go 实现:工具完全使用 Go 语言构建,无 CGO 依赖,摆脱了对 Hyperscan 等原生库的束缚,实现了真正的跨环境无痛部署。
- 格式支持广泛:支持扫描归档文件(包括嵌套归档),输出格式涵盖 JSON、CSV、JUnit、SARIF 以及自定义模板。
未来规划与AI集成设计
根据项目路线图,v1 版本之后还将引入更多强大功能:
- LLM辅助分类:计划将匿名化后的候选密钥传递给本地或远程的大语言模型,以获取更多上下文信息,辅助判断。
- 自动撤销支持:尝试对接提供凭证撤销 API 的服务提供商,实现发现即补救。
- 权限映射功能:可视化展示已检出密钥在实际云环境或服务中的具体访问权限,帮助评估风险。
特别值得一提的是,Betterleaks 在设计之初就考虑了与 AI 编程 Agent 的深度集成。它采用了基于标志位的输出控制机制,这使得像 Claude Code 或 Cursor 这类工具的 AI Agent 能够将其作为子进程高效调用,并解析输出,而无需消耗额外的 Token 来处理杂乱信息。Zach Rice 指出,这正是为了适配未来 AI 主导的开发工作流。
对于关心安全/渗透/逆向的开发者而言,Betterleaks 提供了一个更高效、更准确且面向未来的选择。该工具已在 GitHub 开源发布,社区可以自由使用和贡献。
参考来源:
Betterleaks: Open-source secrets scanner
https://www.helpnetsecurity.com/2026/03/19/betterleaks-open-source-secrets-scanner/
如果你对这类提升研发效能与安全性的开源工具感兴趣,欢迎在云栈社区的运维与测试板块参与更多讨论。
|