Git是一个开源的分布式软件版本控制系统,可以敏捷高效的处理任何小型或大型系统开发项目。Git仓库看起来像一个文件夹,但是这个文件夹中不仅保存了所有应用系统的当前版本,还保存了所有的历史记录。Git存储库的开放性和便利性使其经常受到人为错误的影响。企业每天都会在公共Git存储库上泄露数以千计的重要代码信息,包括数据库密码、电子邮件帐户和管理URL等私人信息。造成了巨大的损失。随着人们对这个问题的认识不断加深,一些新的安全工具和技术不断涌现,在整个软件开发生命周期(SDLC)中提供有针对性的安全保护。什么是Git秘密扫描?代码隐私信息泄露的危害不容忽视。无论是密钥放错地方还是数据库密码意外泄露,都可能演变成一场即时危机,造成巨大的经济损失。Git密密扫描是从攻击者的角度提前或定期对需要上传到Git仓库的代码数据进行扫描,防止敏感信息泄露,及时删除暴露的信息。GitSecretScan有两种模式,每种模式涵盖持续集成(CI)/持续交付(CD)管道的不同阶段。?第一种模式侧重于预防第一种模式试图在第一时间防止秘密泄漏,这种Git秘密扫描模式通过集成到CI/CD管道并实时监控开发人员的行为来拦截包含秘密的意外代码提交,防止其公开接触。?第二种模式侧重于及时检测,第二种模式试图检测可能已经暴露的秘密。恶意行为者一直在使用Git扫描技术,试图从公共和错误配置的Git存储库中提取秘密,并将其用于恶意活动。如果没有像恶意行为者使用的那样强大的扫描工具,企业甚至可能不知道他们的秘密已被泄露。此外,重要的是要注意隐蔽检测是一个不断发展的过程,必须定期更新。9大秘密扫描解决方案没有人愿意成为Git秘密泄露的受害者。这里有9个Git秘密扫描解决方案,可帮助企业在软件开发生命周期(SDLC)的早期引入安全性。目标是让每个人都参与到SDLC中来开发更安全的应用程序。1.gitLeaksgitLeaks是一个在MIT许可下发布的开源静态分析命令行工具,主要用于检测本地和GitHub存储库(私有和公共)中的密码、API密钥和令牌等硬编码秘密。gitLeaks利用正则表达式和熵字符串编码来检测基于自定义规则的秘密,并以JSON、SARIF或CSV格式导出报告。优点:gitLeaks是一个由50多个贡献者积极开发的开源项目,可以免费使用。值得一提的是,gitLeaks还包括大多数开源项目所没有的集成、审计和克隆功能。缺点:由于缺乏用户界面且集成选项有限,gitLeaks更适合安全专业人员、研究人员或专业开发项目。2.SpectralOpsSpectral是一个更全面的秘密扫描解决方案,涵盖了从集成到构建过程的各个方面。无论是静态构建、预先提交到Git还是CI集成,Spectral都提供了简单的集成选项。有趣的是,Spectral能够扫描Git存储库,不仅可以查找配置问题和代码中的秘密,还可以查找日志、二进制文件和代码库中其他容易被忽视的潜在泄漏源。优点:Spectral使用直观的用户界面,使其更易于访问并适合企业管理。Spectral的秘密扫描技术所采用的AI和机器学习算法可以确保随着系统处理的数据量不断增加,检测率不断提高,误报率不断下降。缺点:Spectral不太适合小型项目或个人开发人员,它专为在大型代码库上协作的开发团队而设计。3.Git-SecretsGit-secrets是一种开发安全工具,可防止用户在Git存储库中包含秘密和其他敏感信息。它扫描提交代码和指令,并在它们匹配用户配置的禁止表达式模式时阻止提交。优点:Git-Secrets可以集成到CI/CD管道中以实时监控提交。缺点:Git-secrets使用相当简单的检测算法,主要是“正则表达式”,这通常会导致许多误报。此外,该项目不再定期维护,可能不适合在专业开发环境中使用。4.WhispersWhispers是一种开源静态代码分析工具,旨在搜索硬编码凭据和危险函数。它可以作为命令行工具运行或集成到CI/CD管道中。该工具旨在解析结构化文本,例如YAML、JSON、XML、npmrc、.pypirc、.htpasswd、.properties、pip.conf、conf/ini、Dockerfile、Shell脚本和Python3以及声明指定的Javascript,Java、GO、PHP格式。优点:开箱即用,Whispers支持多种秘密检测格式,包括密码、AWS密钥、API令牌、敏感文件、危险函数等。此外,Whispers还包含一个插件系统,可用于进一步扩展其扫描新文件格式的能力。缺点:Whispers设计用于与其他隐形扫描解决方案配合使用,不对实际代码进行深度扫描,其扫描规则仅基于正则表达式、Base64和Ascii检测的有限组合。5.GitHub秘密扫描(Secretscanning)当使用GitHub作为企业的公共仓库时,GitHub提供了自己的集成秘密扫描解决方案来检测流行的API密钥和令牌结构。要扫描私有存储库,组织需要高级安全许可证。用户可以通过提供“正则表达式”公式来扩展检测算法,以检测自定义的秘密字符串结构。优点:使用GitHub可以更轻松地进行可视化扫描、配置和集成。该服务包括对许多Web流行服务的广泛API密钥和令牌字符串结构的支持,为任何安全评估提供了坚实的基础。缺点:私有存储库的秘密扫描目前处于测试阶段。整个服务的关注点很窄,专注于API密钥和令牌等已知字符串结构,而忽略其他秘密,例如数据库密码、电子邮件地址、管理员URL等。6.GittyleaksGittyleaks是一个简单的Git秘密扫描命令——能够扫描和克隆存储库的行工具。它会尝试发现不应包含在代码或配置文件中的用户名、密码和电子邮件。优点:Gittyleaks是一个简单的工具,可用于快速扫描存储库以查找明显的秘密。它更干净,不需要其他解决方案的更复杂配置。缺点:鉴于其简单性和固定规则,Gittyleaks最适合作为帮助用户了解代码秘密的入门工具。但是,它缺乏商业开发团队所需的功能和灵活性。7.ScanScan是一个全面的开源安全审计工具。它可以与流行的存储库和管道集成,如Azure、BitBucket、GitHub、GitLab、Jenkins、TeamCity等。此外,Scan支持广泛的流行框架和语言,可以集成到CI/CD管道中以进行实时保护,并提供广泛的报告功能。优点:由于其良好的开源特性,Scan可能是企业可以免费获得的最强大、最灵活的DevSecOps工具之一。缺点:虽然Scan确实功能强大且灵活,但其不友好的用户界面和复杂的设置使得只有少数安全专家很难真正使用Scan并从中受益。8.Git-all-secretsGit-all-secrets是一个开源的秘密扫描仪集成项目。该工具目前依赖于两个开源秘密扫描项目,truffleHog和repo-supervisor——它们使用“正则表达式”和高熵算法进行秘密检测。Git-all-secrets聚合了两个扫描器的组合结果以呈现更全面的视图。优点:Git-all-secrets引入了一个有趣的概念,它试图以一种不依赖于单一算法的方式增强秘密扫描结果。缺点:虽然使用了一种新颖的方法,但Git-all-secrets底层扫描仍然依赖于底层算法,并且没有人再主动维护该项目。该工具提供了更多的概念验证(PoC),将来可能会被其他项目利用。9.Detect-secretsDetect-secrets是一个为企业客户设计的积极维护的开源项目。它的创建是为了防止新的秘密进入代码库,检测预防措施中的缺陷,并提供秘密清单以在安全存储中维护。Detect-secrets通过定期比较“正则表达式”语句来识别可能已提交的新秘密。优点:Detect-secrets的扫描方式避免了每次扫描整个git历史文件和扫描整个仓库的繁琐工作。此外,它的插件支持也非常好,目前有18种不同的插件可用,涵盖AWS密钥、熵字符串、Base64编码、Azure密钥等。缺点:Detect-secrets如果被分成多行或者没有包含足够的熵,可能无法实时检测到秘密。总结很明显,主动扫描Git存储库和开发人员承诺以防止机密泄露应该成为每个公司软件开发管道的强制性部分。每天,恶意行为者都会窃取个人身份信息和私人知识产权。而这些通常是由于缺乏代码安全实践或仅仅是由于人为错误造成的。企业用户可以通过使用直接集成到CI/CD管道中的秘密扫描技术对与这些项目关联的Git存储库执行主动秘密扫描来缓解其中的许多问题。原文链接:https://blog.checkpoint.com/2022/03/18/top-9-git-secret-scanning-tools-for-devsecops/。
