背景
近期公司做的一個項目,客戶對代碼安全這塊要求特別嚴(yán)格,不滿足于sonar默認(rèn)的sonar way規(guī)則集,因為只有十幾條安全檢測規(guī)則。希望用采用規(guī)則集find bugs security audit掃描,故對此工具進(jìn)行了調(diào)研,并將具體實現(xiàn)分享于此。
工具介紹
- FindBugs Security Audit:基于class文件分析, 他是大名鼎鼎的findbugs的插件。
- SonarQube: SonarQube并不是簡單地將各種質(zhì)量檢測工具的結(jié)果(例如 FindBugs,PMD 等)直接展現(xiàn)給客戶,而是通過不同的插件算法來對這些結(jié)果進(jìn)行再加工,最終以量化的方式來衡量代碼質(zhì)量,從而方便地對不同規(guī)模和種類的工程進(jìn)行相應(yīng)的代碼質(zhì)量管理。它可以集成FindBugs插件
- Jenkins:進(jìn)行持續(xù)集成及任務(wù)調(diào)度
實現(xiàn)步驟
step1:安裝Findbugs插件
官方文檔要求sonarqube的版本在6.7以上,才可兼容Findbugs插件,故先確認(rèn)自己的sonarqube版本,如在6.7以下,請先進(jìn)行升級。
Findbugs插件安裝非常簡單,進(jìn)入配置->Marketplace,搜索Findbugs,點擊"install"即可,如下圖,筆者插件已經(jīng)安裝。

step2:設(shè)置默認(rèn)規(guī)則
進(jìn)入“質(zhì)量配置”頁面,將“FindBugs Security Audit”規(guī)則,設(shè)置為默認(rèn),我們此處只要求掃描代碼的安全漏洞。

step3:jenkins中配置Job
配置maven風(fēng)格的工程
配置SCM

先maven編譯

編譯成功后,再進(jìn)行sonar掃描

保存配置。
step4:構(gòu)建掃描任務(wù)

step5:查看jenkins構(gòu)建結(jié)果

step6:查看遠(yuǎn)端掃描結(jié)果

sonarqube報告展示了違規(guī)情況,根據(jù)報告提供的信息修復(fù)安全bug即可!