SonarQube检查项目中是否存在秘钥信息

开发 项目管理
作为管道的一部分,我们开始将SonarQube用于代码质量,因为SonarQube已集成到开发人员的IDE中,所以此验证发生在开发人员提交其代码之前。我们决定利用SonarQube来进一步检查易受攻击的编码模式。

持续集成和交付(CI / CD)管道旨在支持每天数以万计的部署。生产部署的频率不能以牺牲安全为代价,安全流程也需要与CI / CD管道集成在一起。这就是为什么我们在从开发到生产的流水线的每个步骤中都添加了持续的安全验证,以帮助确保我们的应用程序始终是安全的。

作为管道的一部分,我们开始将SonarQube用于代码质量,因为SonarQube已集成到开发人员的IDE中,所以此验证发生在开发人员提交其代码之前。我们决定利用SonarQube来进一步检查易受攻击的编码模式。

在此过程中,我们使用了现有的出色插件,例如Java的Findsecbugs,我们从Sonar Secrets开始向开发人员提供早期反馈,提醒他们使用硬编码凭据所带来的安全风险。尽早为开发人员提供反馈,使我们可以将安全控制权向左移动,从而使开发人员可以在生产代码投入使用之前达到内部定义的安全标准。

为了保护我们的用户,合作伙伴和员工,我们的服务旨在使用加密的密钥库来保护所有相关的敏感数据。然后,开发人员可以使用变量在代码中引用此数据,而不必对值进行硬编码。

构建打包

SonarQube™的Sonar Secrets插件https://github.com/Skyscanner/sonar-secrets —由Skyscanner产品安全小组创建,旨在识别硬编码的机密,例如密码,API令牌,AWS凭证等。

  1. cd sonar-secrets/java && mvn clean package 
  2. cd sonar-secrets/javascript && mvn clean package 

build成功会提示以下信息:

  1. ... 
  2. [INFO] BUILD SUCCESS 
  3. [INFO] ------------------------------------------------------------------------ 
  4. [INFO] Total time: 7.065 s 
  5. [INFO] Finished at: 2017-10-26T05:00:33-04:00 
  6. [INFO] Final Memory: 23M/252M 
  7. [INFO] ------------------------------------------------------------------------ 

sonar-secrets-java-x.x.jar 在 sonar-secrets/java/target 目录。

sonar-secrets-javascript-x.x.jar 在 sonar-secrets/javascript/target 目录。

安装配置

  • 复制Jar包文件到sonarqube的插件目录/opt/sonarqube/extensions/plugins
  • 重启sonarqube服务器

In startup logs you should see:

  1. ... 
  2. INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin Sonar Secrets Java / x.x 
  3. INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin Sonar Secrets JavaScript / x.x 
  4. ... 

启用 sonar-secrets-java and sonar-secrets-javascript 在 Quality Profiles。

IDE效果图

Sonar Secrets帮助我们在检测和防止代码中的敏感数据泄漏方面保持主动。我们已决定将该项目开源,以便社区可以从这项技术中受益并帮助改进它。该插件是完全可定制的,并且可以使用新规则进行扩展。该第一个发行版目前仅支持Java和Javascript项目。

 

责任编辑:姜华 来源: DevOps云学堂
相关推荐

2009-12-01 09:13:51

shell脚本linux

2022-10-24 08:17:29

API算法元素

2023-02-01 15:00:45

2023-05-05 11:25:29

秘钥架构机制

2023-04-21 10:08:00

版本工具依赖关系

2018-03-22 19:30:26

LinuxMeltdownSpectre

2024-02-05 13:37:16

Go语言方法

2019-08-23 06:22:47

LinuxShell监控脚本

2023-03-26 12:41:46

2015-07-20 13:30:22

Windows 10秘钥

2017-06-22 08:58:51

Hadoopssh+IPssh+

2018-11-14 10:20:15

SonarQube开源追踪代码

2015-01-13 10:10:01

亚马逊Aurora云数据库

2023-06-25 07:45:52

2023-10-12 09:13:14

2023-10-30 10:40:29

检查用户app注册数据库

2014-01-15 09:46:38

Windows 8产品秘钥

2018-05-30 08:31:08

2022-05-16 10:08:48

ERP软件网络攻击恶意软件
点赞
收藏

51CTO技术栈公众号