一、什么是owasp
OWASP,全稱是:Open Web Application Security Project,翻譯為中文就是:開放式Web應用程序安全項目,是一個非營利組織,不附屬於任何企業或財團,這也是該組織可以不受商業控制地進行安全開發及安全普及的重要原因,詳細的介紹可以參見下方Wikipedia中的內容。
OWASP Dependency-Check,它識別項目依賴關系,並檢查是否存在任何已知的、公開的、漏洞,基於OWASP Top 10 2013。
二、maven集成插件掃描
maven工程的pom.xml按照如下配置:
<dependency> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>3.1.1</version> </dependency>
<plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>3.1.1</version> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin>
執行:
mvn clean compile
mvn dependency-check:check
掃描完成后,報告文件存放在target目錄下,dependency-check-report.html。
三、jenkins使用owasp插件掃描工程
插件工程地址:https://wiki.jenkins.io/display/JENKINS/OWASP+Dependency-Check+Plugin
作用:這個插件可以分析依賴關系並生成依賴檢查的趨勢報告,這是一個開源實用工具,可以檢測項目依賴項中已知的漏洞。
依賴:
該插件需要使用程序插件“Analysis -core”(在更新管理器中稱為“靜態分析實用程序”)。請確保也安裝了這個插件的最新版本。
注:掃描過程中,掃描路徑如果存在多個工程,包含重復的jar包。掃描結果報表中只會出現jar包問題說明一次(不重復顯示)
掃描生成的報告為dependency-check-report.xml
四、jenkins pipeline調用插件掃描
dependencyCheckAnalyzer datadir: '', hintsFile: '', includeCsvReports: false, includeHtmlReports: false, includeJsonReports: false, includeVulnReports: false, isAutoupdateDisabled: false, outdir: '', scanpath: '.', skipOnScmChange: false, skipOnUpstreamChange: false, suppressionFile: '', zipExtensions: ''
五、配合sonarqube生成插件掃描
插件下載地址:dependency-check
下載使用以下命令生成jar包
> $ mvn clean package
將插件放入sonarqube的插件目錄$SONAR_INSTALL_DIR/extensions/plugins,並且重啟sonarqube
在需要掃描的工程中,配置owasp的報告文件路徑。sonar掃描完成后,讀取報告展示在web端。(注:sonar插件不會進行依賴掃描,需要通過其他方式掃描完成后,讀取配置文件)
sonar.dependencyCheck.reportPath=${WORKSPACE}/dependency-check-report.xml
sonar對於owasp的報告展示不夠友好,所有的依賴規則均顯示為:Using Components with Known Vulnerabilities