赞
踩
1、简介
OWASP是开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。OWASP的使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。OWASP的研究成果被美、欧、日等多个国家的32个政府与行业组织机构引用成为近百项国际法规、标准、指南和行业行为准则。
Dependency-Check是OWASP(Open Web Application Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。目前,已支持Java、.NET、Ruby、PHP、Node.js、Python等语言编写的程序,并为C/C++构建系统(autoconf和cmake)提供了有限的支持。而且该工具还是OWASP Top 10的解决方案的一部分。
Dependency-Check支持面广(支持多种语言)、可集成性强,作为一款开源工具,在多年来的发展中已经支持和许多主流的软件进行集成,比如:命令行、Ant、Maven、Gradle、Jenkins、Sonar等;具备使用方便,落地简单等优势。
OWASP dependency-check is an open source solution the OWASP Top 10 2013 entry: A9 - Using Components with Known Vulnerabilities. Dependency-check can currently be used to scan Java and .NET applications to identify the use of known vulnerable components. Experimental analyzers for Python, Ruby, PHP (composer), and Node.js applications; these are experimental due to the possible false positive and false negative rates. To use the experimental analyzers they must be specifically enabled via the appropriate experimentalconfiguration. In addition, dependency-check has experimental analyzers that can be used to scan some C/C++ source code, including OpenSSL source code and projects that use Autoconf or CMake.
依赖性检查可用于扫描应用程序(及其依赖库),执行检查时会将 Common Platform Enumeration (CPE)美帝国家漏洞数据库及NPM Public Advisories库下载到本地,再通过核心引擎中的一系列分析器检查项目依赖性,收集有关依赖项的信息,然后根据收集的依赖项信息与本地的CPE&NPM库数据进行对比,如果检查发现扫描的组件存在已知的易受攻击的漏洞则标识,最后生成报告进行展示。
1)安装OWASP Dependency-Check插件
2)全局工具配置下配置dependency插件路径及版本(可单独下载)
3)pipeline流水线中执行dependency-check安全扫描
方法1:
dependencyCheck additionalArguments: ‘’, odcInstallation: 'dependency-check’
//可增加参数具体参数参考https://bloodzer0.github.io/ossa/other-security-branch/devsecops/sdc/
dependencyCheckPublisher pattern: ‘dependency-check-report.xml’
方法2:
sh '/data/jenkins/tools/org.jenkinsci.plugins.DependencyCheck.tools.DependencyCheckInstallation/dependency-check/bin/dependency-check.sh -s $PWD/ -f XML -o $PWD/dependency-check-report.xml’ //生成xml报告
sh '/data/jenkins/tools/org.jenkinsci.plugins.DependencyCheck.tools.DependencyCheckInstallation/dependency-check/bin/dependency-check.sh -s $PWD/ -f HTML -o $PWD/dependency-check-report.html’ //生成html报告
结果查看:
1)github上下载插件jar包,地址:
https://github.com/dependency-check/dependency-check-sonar-plugin(注意插件版本与soanr版本的兼容关系)
2)上传到%SONAR_HOME%/extensions/plugins目录下
3)重启sonar
4)验证查看
5)jenkins流水线中执行sonar扫描
和本次内容无关,不做赘述
6)结果查看
实际企业中内网环境可能CI服务器不会开放对外网的访问权限,故需要搭建一个本地的NVDMirror
具体搭建步骤参考:
https://jeremylong.github.io/DependencyCheck/data/mirrornvd.html
实际操作步骤如下:
主要需要变更两个东西,一个是nvd库,还有一个是jsrepository.json
1、搭建nvd库:
官方提供了对应jar包来作为mirror的服务,具体github地址:
https://github.com/stevespringett/nist-data-mirror/
1)下载release jar包,如需定制请自行改写代码
2)服务器上执行java -jar nist-data-mirror.jar ,改命令会把2002-最近一年的所有*.json.gz 和 *.meta 文件下载下来
3)搭建本地apache服务
使用官方docker镜像直接启动即可,具体命令:
docker run -dit --name mirror -p 30006:80 --mount type=bind,source=/data/mirror-repo,target=/usr/local/apache2/htdocs sspringett/nvdmirror:latest
其中source为宿主机目录
搭建成功后访问:
4、定时任务更新jsreponsitory.json
5、搭建成功后执行dependency check命令行中添加参数应用mirror地址即可
以pipeline为例:
dependencyCheck additionalArguments: '–cveUrlModified http://x.x.x.x:8080/nvdcve-1.1-2019.json.gz --cveUrlBase http://x.x.x.x:8080/nvdcve-1.1-2019.json.gz ', odcInstallation: ‘dependency-check’
参考链接
https://bloodzer0.github.io/ossa/other-security-branch/devsecops/sdc/
https://yq.aliyun.com/articles/698621
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。