为了账号安全,请及时绑定邮箱和手机立即绑定

三方依赖库扫描系统

标签:
深度学习

 


回到顶部

简介

Dependency-Check 是一款分析软件构成的工具,他会检测项目中依赖项的公开披露漏洞。Dependency-Check 常用于扫描java.NET程序,实验性的分析器有python、ruby、php以及nodejs,这些作为实验性研究是因为他们的高误报率。如果你公司主要使用c,java,这个系统作为作为上线前的扫描不乏是个好选择。

 

回到顶部

工作原理

  1. Dependency-Check工作的方式是通过分析器对文件进行扫描搜集信息,搜集到的信息被叫做迹象。

  2. 这边共搜集3种迹象,分时是vendor(供应商),product(产品)和version(版本)。例如,jarAnalyzer将从jar文件包中的Mainfest、pom.xml和包名进行信息搜集,然后把各种搜集到的源放到一个或者多个迹象表里。

  3. 通过搜集到的迹象和CPE条目(NVD、CVE数据索引)进行匹配,分析器匹配到了就会给个标志发送到报告。

  4. Dependency-Check 目前不使用hash识别文件,因为第三方依赖从源码中的hash值构建通常不会匹配官方发布版本的hash。后续版本中可能会增加一些hash来匹配一些常用的第三方库,例如Spring, Struts等。

回到顶部

常用命令

./dependency-check.sh -n --project "test" --scan "WEB-INF/lib/" -o output.html

  • -n 不更新漏洞库,默认4小时自动拉取

  • --project 项目名字

  • --scan 扫描的路径或文件(可以扫目录,也可以直接扫压缩文件,zip,war,tgz等)

.
/dependency-check.sh -n --project "test" --scan "strusts2.war" --log logfile

  • 扫描压缩文件

  • --log 日志记录

.

./dependency-check.sh --updateonly

  • --updateonly 只更新数据库

回到顶部

报告解读

不完整的报告截图:

https://img1.sycdn.imooc.com//5b38e4d00001e5eb18530688.jpg

  • Dependency - 被扫描的第三依赖库名字

  • CPE - 所有被识别出来的CPE.

  • GAV - Maven 组, Artifact, 版本 (GAV).

  • Highest Severity - 所有关联的cve的最高漏洞等级

  • CVE Count - 关联的cve个数

  • CPE Confidence - dependency-check正确识别cpe的程度

  • Evidence Count - 识别CPE的数据个数

 

回到顶部

使用场景

理解了上面depency-check的原理后,应业务的需求,需要把这个开源工具二进制版本封装成web界面,可供自己和业务方调用。笔者也实现了这个功能,github地址。在业务实际使用场景:

1、如果项目迭代很快,项目很多。可以考虑配合代码管理系统,每次新发布前,自动打包文件进行扫描(报告没有修复参考,一般是推荐官方最新版包)

2、如果项目不多,或者监控重点项目。可让业务提单,安全人员进行扫描后提供结果和修复建议给到业务方

 

笔者对项目封装后的项目地址:https://github.com/he1m4n6a/dcweb,可以很方便的提交三方依赖库的压缩包进行扫描即可。

三方依赖库扫描系统

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消