持續(xù)集成和交付(CI / CD)管道旨在支持每天數(shù)以萬(wàn)計(jì)的部署。生產(chǎn)部署的頻率不能以犧牲安全為代價(jià),安全流程也需要與CI / CD管道集成在一起。這就是為什么我們?cè)趶拈_(kāi)發(fā)到生產(chǎn)的流水線的每個(gè)步驟中都添加了持續(xù)的安全驗(yàn)證,以幫助確保我們的應(yīng)用程序始終是安全的。
作為管道的一部分,我們開(kāi)始將SonarQube用于代碼質(zhì)量,因?yàn)镾onarQube已集成到開(kāi)發(fā)人員的IDE中,所以此驗(yàn)證發(fā)生在開(kāi)發(fā)人員提交其代碼之前。我們決定利用SonarQube來(lái)進(jìn)一步檢查易受攻擊的編碼模式。
在此過(guò)程中,我們使用了現(xiàn)有的出色插件,例如Java的Findsecbugs,我們從Sonar Secrets開(kāi)始向開(kāi)發(fā)人員提供早期反饋,提醒他們使用硬編碼憑據(jù)所帶來(lái)的安全風(fēng)險(xiǎn)。盡早為開(kāi)發(fā)人員提供反饋,使我們可以將安全控制權(quán)向左移動(dòng),從而使開(kāi)發(fā)人員可以在生產(chǎn)代碼投入使用之前達(dá)到內(nèi)部定義的安全標(biāo)準(zhǔn)。
為了保護(hù)我們的用戶,合作伙伴和員工,我們的服務(wù)旨在使用加密的密鑰庫(kù)來(lái)保護(hù)所有相關(guān)的敏感數(shù)據(jù)。然后,開(kāi)發(fā)人員可以使用變量在代碼中引用此數(shù)據(jù),而不必對(duì)值進(jìn)行硬編碼。
構(gòu)建打包
SonarQube™的Sonar Secrets插件https://github.com/Skyscanner/sonar-secrets —由Skyscanner產(chǎn)品安全小組創(chuàng)建,旨在識(shí)別硬編碼的機(jī)密,例如密碼,API令牌,AWS憑證等。
- cd sonar-secrets/java && mvn clean package
- cd sonar-secrets/javascript && mvn clean package
build成功會(huì)提示以下信息:
- ...
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 7.065 s
- [INFO] Finished at: 2017-10-26T05:00:33-04:00
- [INFO] Final Memory: 23M/252M
- [INFO] ------------------------------------------------------------------------
sonar-secrets-java-x.x.jar 在 sonar-secrets/java/target 目錄。
sonar-secrets-javascript-x.x.jar 在 sonar-secrets/javascript/target 目錄。
安裝配置
- 復(fù)制Jar包文件到sonarqube的插件目錄/opt/sonarqube/extensions/plugins
- 重啟sonarqube服務(wù)器
In startup logs you should see:
- ...
- INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Sonar Secrets Java / x.x
- INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Sonar Secrets JavaScript / x.x
- ...
啟用 sonar-secrets-java and sonar-secrets-javascript 在 Quality Profiles。
IDE效果圖
Sonar Secrets幫助我們?cè)跈z測(cè)和防止代碼中的敏感數(shù)據(jù)泄漏方面保持主動(dòng)。我們已決定將該項(xiàng)目開(kāi)源,以便社區(qū)可以從這項(xiàng)技術(shù)中受益并幫助改進(jìn)它。該插件是完全可定制的,并且可以使用新規(guī)則進(jìn)行擴(kuò)展。該第一個(gè)發(fā)行版目前僅支持Java和Javascript項(xiàng)目。
原文地址:https://mp.weixin.qq.com/s/Gkn3SQz_JygC4XfuYS1aFA