代码质量与安全 | 不像小学时那个“可靠的”朋友,Sonar能真正防止您的机密泄露

我为什么要关心我的代码中是否存在机密?

机密(包括密码、API密钥和令牌等)是敏感信息,它们授予对数据库、服务和应用程序的访问权限。它们就像您家的钥匙一样,需要被妥善保护和保管。如果在代码(主源、测试、IaC、配置、脚本……)中不小心暴露了这些机密,恶意用户就可能获取并使用它们。这可能会导致未经授权的访问、数据泄露和其他安全事故。

例如,如果API密钥暴露在源代码中,它就可能被用于访问 API,从而可能导致数据被盗、服务中断,如果API与付费服务绑定,甚至会造成经济损失。

大家肯定听说过2016年Uber发生的数据泄露事件,当时有5700万名用户和司机的个人信息被泄露。这次漏洞的发生是因为一个访问密钥在GitHub上被公开曝光,黑客得以访问Uber存储在亚马逊网络服务上的用户数据。

这就是为什么开发人员必须谨慎处理机密的原因。绝不能将机密硬编码到源代码或提交到版本控制系统中。相反,它们应该使用机密管理工具安全地存储,并通过环境变量等安全方法进行访问。

Sonar如何帮助进行机密检测?

Sonar开发人员有能力编写”清洁代码”。所谓”清洁代码”,就是一致、明确、可靠、适应性强的代码。作为Sonar使命的一部分,我们希望帮助您将机密信息远离源代码。这样,你开发的代码将更可靠。Sonar的解决方案开箱即用,并提供机密检测功能,可帮助检测您是否即将或已经泄漏了机密。

从IDE内部到持续集成(CI)流水线Sonar都能帮助检测机密

在IDE中使用SonarLint,当您在开发代码时,不小心将一个看起来像机密的字符串写入或粘贴到代码中,将触发Sonar的60个机密规则支持的110个机密模式之一。遵循真正的左移方法,在将代码推送到Git存储库之前,系统就会向你发出警告。这是很好的处理方式,没人知道你即将犯下一个巨大的错误。

此外,如果您不使用SonarLint(为什么不?),或决定忽略它的警告,您将在SonarQube和SonarCloud中获得相同的检测功能,作为代码分支和拉取请求分析的一部分。

Sonar的机密检测是开源的

此功能由Sonar开发的全新开源机密检测引擎提供。开源的好处在于,你可以了解它是如何完成的,并帮助做出改善。我们提供了所有110种机密模式的定义,并提供了一份指南,向社区解释如何帮助改善它。通过这种方式,希望在未来几个月内,这些机密模式的数量能在我们强大社区的帮助下大幅增长。您不需要了解任何编程语言,因为这是一个完全基于YAML的配置。

Sonar的机密检测功能可满足企业级需求

对于开发自己的内部API并且必须管理自己的内部机密的人来说,Sonar无法知道这些机密的格式。这就是为什么SonarQube企业版(及更高版本)有可能让您定义您自己的机密模式。这意味着您可以确保即使在内部也不会泄露任何内部机密,以防止来自内部的攻击。如果您想进一步了解如何添加自己的机密模式,请联系SonarQube中国授权合作伙伴——创实。

一起来试试机密检测!

准备好开始尝试并防止机密泄露了吗?为您喜欢的IDE安装最新版本的SonarLint,将您的SonarQube实例升级到v10.3版本,或只需查看SonarQube或SonarCloud。

了解关于SonarQube的更多信息,请联系SonarQube中国官方授权合作伙伴——创实 ,我们提供SonarQube产品的咨询、销售、实施、培训及技术支持服务。