sonarqube是哪个国家的
发布时间:2025-05-20 15:02:57 发布人:远客网络
一、sonarqube是哪个国家的
1、SonarQube最初是作为源代码质量分析工具诞生的,然后迅速成为最常用的 DevOps工具之一,用于获取有关编码最佳实践、约定和代码性能的建议。
2、最近在 2018年,添加了一些安全功能。随着时间的推移,由于应用程序安全测试(AST)工具的普遍采用以及对发布安全代码的重要性的更高认识,SonarQube作为安全工具的受欢迎程度也有所提高。SonarQube是一个开源版本和几个商业产品,包括一个企业版本。
3、SonarQube包含一组静态分析(SAST)规则,用于查找应用程序代码中的安全漏洞,但SonarQube不是专门为安全分析构建的解决方案。作为参考,在 600多条 Java规则中,不到 50条规则被视为安全漏洞。
4、静态分析(SAST)的工作原理是查看应用程序的源代码并模拟应用程序的执行以查找可能表明存在安全风险的可疑模式。SonarQube使用静态污点跟踪,这有助于发现一些比简单的正则表达式匹配更细微的风险,但众所周知会产生大量的误报,必须由专家手动验证才能对开发人员有所帮助。
5、一些高级静态数据流技术在开源版本中不可用,需要付费的企业许可证订阅。
二、极狐GitLab 集成 sonarqube 实践指南
直接在.gitlab-ci.yml文件中填入如下内容,触发扫描,即可在漏洞报告中查看结果。
在project级别中,settings- CI/CD- Variables中添加如下2个变量指向SonarQube服务。
在待扫描仓库中增加.gitlab-ci.yml配置文件,如下,不建议直接把敏感信息如快速入门那样配置在ci文件中。
然后进行扫描即可得到扫描结果。
SonarQube原理docker方式部署 SonarQube-CE 7.6
部署支持的旧版本中的最后一个版本,即7.6版。参考 Docker安装SonarQube步骤以及遇到的坑进行部署,创建工作目录,创建网络,部署pg,创建工作目录,修改系统参数,运行测试容器,拷贝必须文件到本地,并修改权限为777,删除容器,启动SonarQube,修改SONARQUBE_JDBC_URL的IP地址为实际PgSql数据库的IP。
登录SonarQube UI地址( ),默认用户名密码为admin/admin,在My Account- Security中生成Token。
参考 SonarScanner下载最新版的扫描器。解压后,进入bin目录,执行如下命令即可完成扫描,扫描完成后可以去SonarQube中查看扫描结果。如果想要在本地生成json格式报告,则增加如下参数。
基于以上内容,关键是把扫描结果转化为极狐GitLab旗舰版所识别的json格式。json样本:SonarQube扫描结果issue样本和极狐GitLab报告展现issue样本。转换器 converter.py:转码程序采用python,编写converter.py文件,内容如下。
scan.sh:基于环境变量进行扫描。
Dockerfile构建与推送:制作好的镜像已经推送到DockerHub中,采用前文使用方法中所说的内容即可实现扫描。
Findbugs支持安装插件Server端安装Findbugs插件:到SonarQube的容器内部,在插件路径中下载findbugs的jar包,然后重启sonar即可。配置Java默认规则:在sonar UI上进行如下配置,这样Java的默认规则就是Findbugs了。
Java maven扫描器制作:因为扫描Java项目需要代码经过编译,所以需要对扫描器配置maven扫描能力。操作步骤如下:安装软件包列表,commit命令,修改scan.sh文件,更新如上的scan.sh文件,构建出最新镜像。使用.gitlab-ci.yml更新:为了支持Findbug的触发,需要使用如下配置。
授权转自《极狐GitLab集成 sonarqube实践指南》
三、SonarQube使用方法
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过插件形式可以支持包括java,C#,C/C++,PL/SQL等等二十几种编程语言的代码质量管理与检测
Bugs表示系统在运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象;
漏洞表示系统存在安全隐患容易被攻击;
重复率表示代码中存在有相同的代码,这样不利于维护。
Token:a9f8937c33a5ac39dfe459ecacc6ecceb0a4da95
每周五晚上11点定时构建,同时每次提交代码至SVN后在当天晚上的11点自动构建