sonar 扫描vue目录_DevOPS | 安全测试只做代码静态扫描是不够的,还需要做这个

我们写的程序的安全,除掉代码本身的安全之外,还包括我们代码所依赖的三方jar包的安全,所以我们在日常的质量保障中, 也需要把此纳入检查范围。下面我们主要介绍下使用OWASP Dependency-check进行三方依赖安全检查的基本方法。

与Maven集成

Dependency check与Maven的集成比较简单,我们直接修改pom,增加如下配置:

......org.owasp dependency-check-maven 5.2.1check6......org.owasp dependency-check-maven 5.2.1aggregate

然后直接调用如下命令

mvn dependency-check:check

执行完成之后,会在target目录生成html格式的报告。

注意我们有如下的配置:

6

意思是如果发现的CVS错误有6个或者以上时,构建的结果即为失败。

与Jenkins的集成

  • 首先安装OWASP Dependency Check插件:
3a3be44a569c4656f8aee94da6fe7e77.png
  • 然后在“全局工具管理”里面新增一个Dependency-check的实例:
fc4068f3b9c137383bc0f538bb3db9e8.png
  • 新建一个自由类型的项目
  • 构建里面先调用Maven进行打包:
19e58296f8e4b8f4a636fb43da52d86f.png
  • 然后构建里面选择“invoke dependency-check”:
e91a4ff6bff4cb93e54f591790d4e45a.png
  • 新增构建后操作
17084800fe3ffc7f66fd97349be7b5e3.png
  • 点击Risk Gate Thresholds可以设定在整体缺陷个数或者新增缺陷个数是多少的情况下,把构建结果设置为Unstable或者Fail。比如:
eee59e351e955474cf8c850ae75dd06b.png

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

  • 保存后,点击立即构建。然后就是漫长的构建过程。构建完成之后,我们可以在jenkins的结果页查看其趋势:
e8419185826f881b27c170b94fc2fc69.png
  • 点击某次具体构建之后可以查看此次构建的Dependency check结果详情:
9a2b2d336944fda250a3e84589d030f5.png
  • 点开后可以查看具体的违规原因:
64cdb2386c0d9eb3deb101cc04a9121e.png

与Sonar的集成

与sonar的集成主要是依靠插件:https://github.com/dependency-check/dependency-check-sonar-plugin,这里需要特别说明下,本插件并不做Dependency-check的分析,而是依赖已经生成的Dependency-check的结果,然后在sonar上进行展示。

  • 首先我们从https://github.com/dependency-check/dependency-check-sonar-plugin/releases下载最新的jar包,然后上传到sonar的extensions目录下。对应DevOPS | 代码静态扫描工具SonarQube的安装和初步使用 的目录为/sonar/extensions/plugins,并重启sonarqube
  • 然后根据上文的介绍配置运行Dependency-check插件进行检查和输出报告,我们需设置输出所有格式的报告:
5bab39fcc21cd8cf7d481f4d51386d6a.png
  • 然后根据基于Gitlab、Sonarqube和jenkins的代码静态扫描 介绍的步骤配置进行代码进行代码扫描,并添加如下配置信息:
sonar.dependencyCheck.reportPath=${WORKSPACE}/dependency-check-report.xmlsonar.dependencyCheck.htmlReportPath=${WORKSPACE}/dependency-check-report.htmlsonar.dependencyCheck.summarize=true
  • 构建完成之后,我们即可在sonar里面查到到Dependency-check查出来的问题:
d6af9a35b2b892a76ecd34ecc4652392.png
  • 同时sonar里面也增加了对Dependency-check报告的链接:
613ca5312a1706cfca70965e6a765352.png
b3c567c03682718afc116eed688aeae1.png

加速CVE数据下载

上面我们提到,在使用Dependency check进行检查的时候,首先需要花费一定的时间从NVD(NATIONAL VULNERABILITY DATABASE)中下载CVE数据。一个可以优化的方案就是在本地建立NVD的镜像,然后从此镜像下载。

  • 首先我们从https://github.com/stevespringett/nist-data-mirror下载最新的jar
  • 然后上传到服务器,使用如下命令进行镜像:
java -jar nist-data-mirror.jar 
  • 为了保证本地镜像数据库的及时性,可以使用crontab添加一个镜像任务
  • 镜像完成之后记得使用apache或者nginx开通web服务以提供http访问镜像功能
  • 然后在jenkins的构建里面指定如下参数即可:
--cveUrlModified http://192.168.10.32:81/nvdcve-1.0-modified.json.gz--cveUrlBase http://192.168.10.32:81/nvdcve-1.0-%d.json.gz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值