Jenkins整合Owasp DependencyCheck实现SCA
创始人
2025-01-09 21:06:24
0

简介

Dependency-Check 是 OWASP(Open Web Application Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。

目前,已支持Java、.NET、Ruby、Node.js、Python等语言编写的程序并为C/C++构建系统(autoconf和cmake)提供了有限的支持。

而且该工具还是OWASP Top 10的解决方案的一部分。

Dependency-Check 支持面广(支持多种语言)、可集成性强,作为一款开源工具,在多年来的发展中已经支持和许多主流的软件进行集成

比如:命令行、Ant、Maven、Gradle、Jenkins、Sonar等;具备使用方便,落地简单等优势。

DependencyCheck 实现原理

依赖性检查可用于扫描应用程序(及其依赖库),执行检查时会将 Common Platform Enumeration (CPE)国家漏洞数据库及NPM Public Advisories库下载到本地,再通过核心引擎中的一系列分析器检查项目依赖性,收集有关依赖项的信息。

然后根据收集的依赖项信息与本地的CPE&NPM库数据进行对比,如果检查发现扫描的组件存在已知的易受攻击的漏洞则标识,最后生成报告进行展示。

OWASP Dependency-Check | Jenkins plugin

Owasp DependencyCheck插件安装

● 只要在Jenkins中安装OWASP Dependency-Check Plugin即可

● 在build阶段maven/ant执行后,sonar执行前进行DependencyCheck

● 需要勾选在Advanced中勾选Generate optional HTML report以及Generate optional vulnerability report (HTML),否则sonarqube只有结果无具体报告

● 需要在sonar的配置中指定dependencyCheck的报告路径

OWASP Dependency-Check | OWASP Foundation

https://github.com/jeremylong/DependencyCheck/releases/download/v9.0.7/dependency-check-9.0.7-release.zip

Jenkins job集成Dependency-check

在Jenkins“全局工具管理”里面新增一个Dependency-check的实例:

job构建里面选择“invoke dependency-check”:

#sonar工程标识,随意输入不重复有代表意义即可 sonar.projectKey=${JOB_NAME}   #sonar工程标识,随意输入不重复有代表意义即可 sonar.projectName=${JOB_NAME}   #sonar工程版本号 sonar.projectVersion=1.0   #源代码路径,依据需要可在$WORKSPACE后加入目标路径,缩小分析范围; sonar.sources=$WORKSPACE  #class文件路径,依据需要可在$WORKSPACE后加入目标路径,缩小分析范围; sonar.java.binaries=$WORKSPACE  sonar.exclusions=**/test/**,**/target/**  sonar.java.source=8  sonar.java.target=8  # Encoding of the source code. Default is default system encoding  sonar.sourceEncoding=UTF-8  sonar.dependencyCheck.reportPath=${WORKSPACE}/dependency-check-report.xml sonar.dependencyCheck.htmlReportPath=${WORKSPACE}/dependency-check-report.html sonar.dependencyCheck.summarize=true 

注意执行顺序,先执行dependency-check,再执行sonarQube Scanner,因为sonar插件不会进行依赖扫描,需要通过dependency-check扫描完成后,读取配置文件,然后在页面展示的

点击Risk Gate Thresholds可以设定在整体缺陷个数或者新增缺陷个数是多少的情况下,把构建结果设置为Unstable或者Fail。比如:

对于issue总数来说,Critcal的达到2个,或者High的达到2个,就Unstable;Critical的达到10个,或者High的达到10个,就Fail;对于新增issue来说,Critical的达到1个,或者High的达到1个,就Unstable;Critical的达到5个,或者High的达到5个,就Fail。

保存后,点击立即构建。然后就是漫长的构建过程。构建完成之后,我们可以在jenkins的结果页查看其趋势:

点击某次具体构建之后可以查看此次构建的Dependency check结果详情

在sonarQube页面查看Dependency-Check报告

相关内容

热门资讯

第四分钟了解!豆豆斗牌系统(辅... 第四分钟了解!豆豆斗牌系统(辅助挂)本来有挂(专业辅助必胜教程)-哔哩哔哩;是一款可以让一直输的玩家...
透视有挂!拱趴大菠萝辅助神器(... 透视有挂!拱趴大菠萝辅助神器(透视)底牌透视挂辅助下载(可靠开挂辅助我来教教你)-哔哩哔哩;拱趴大菠...
黑科技辅助!德扑之星的发牌是有... 黑科技辅助!德扑之星的发牌是有问题(智能ai辅助插件安装)软件透明挂黑科技(确实是真的有挂)-哔哩哔...
透视私人局!智星菠萝可以辅助,... 透视私人局!智星菠萝可以辅助,拉米大厅游戏源码,总结教程(揭秘有挂)-哔哩哔哩1、上手简单,内置详细...
4分钟了解!财神十三张刷胜率方... 4分钟了解!财神十三张刷胜率方法(辅助挂)从前有挂(专业辅助教你教程)-哔哩哔哩;一、财神十三张刷胜...
透视真的!werplan外卦神... 您好,werplan外卦神器这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
黑科技辅助!德扑之星隐藏功能在... 黑科技辅助!德扑之星隐藏功能在哪(智能ai辅助插件安装)软件透明挂黑科技(起初真的是有挂)-哔哩哔哩...
透视教学!pokerworld... 透视教学!pokerworld修改器,青鸟辅助可以更新,黑科技教程(真实有挂)-哔哩哔哩亲,关键说明...
第3分钟了解!边锋老友棋牌免费... 第3分钟了解!边锋老友棋牌免费挂(辅助挂)果然是有挂(专业辅助曝光教程)-哔哩哔哩是一款可以让一直输...
透视总结!佛手在线大菠萝技巧(... 透视总结!佛手在线大菠萝技巧(透视)底牌透视挂辅助器(可靠开挂辅助德州论坛)-哔哩哔哩;佛手在线大菠...