背景
近期公司做的一个项目,客户对代码安全这块要求特别严格,不满足于sonar默认的sonar way规则集,因为只有十几条安全检测规则。希望用采用规则集find bugs security audit扫描,故对此工具进行了调研,并将具体实现分享于此。
工具介绍
- FindBugs Security Audit:基于class文件分析, 他是大名鼎鼎的findbugs的插件。
- SonarQube: SonarQube并不是简单地将各种质量检测工具的结果(例如 FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。它可以集成FindBugs插件
- Jenkins:进行持续集成及任务调度
实现步骤
step1:安装Findbugs插件
官方文档要求sonarqube的版本在6.7以上,才可兼容Findbugs插件,故先确认自己的sonarqube版本,如在6.7以下,请先进行升级。
Findbugs插件安装非常简单,进入配置->Marketplace,搜索Findbugs,点击"install"即可,如下图,笔者插件已经安装。
![](https://img.haomeiwen.com/i10149265/58017a6bda286512.png)
step2:设置默认规则
进入“质量配置”页面,将“FindBugs Security Audit”规则,设置为默认,我们此处只要求扫描代码的安全漏洞。
![](https://img.haomeiwen.com/i10149265/c19b4f7a68b68e36.png)
step3:jenkins中配置Job
配置maven风格的工程
配置SCM
![](https://img.haomeiwen.com/i10149265/5640c059eaa455d7.png)
先maven编译
![](https://img.haomeiwen.com/i10149265/35b3dde3dbb524eb.png)
编译成功后,再进行sonar扫描
![](https://img.haomeiwen.com/i10149265/414a23167f51d778.png)
保存配置。
step4:构建扫描任务
![](https://img.haomeiwen.com/i10149265/f1e7fa2c481fc5b0.png)
step5:查看jenkins构建结果
![](https://img.haomeiwen.com/i10149265/d5313b5fa8cd4328.png)
step6:查看远端扫描结果
![](https://img.haomeiwen.com/i10149265/31d6ca27fd2bc75b.png)
sonarqube报告展示了违规情况,根据报告提供的信息修复安全bug即可!
网友评论