代码依赖包安全漏洞检测神器 —— Dependency Check

目前各个企业对于应用的安全越来越重视,而解决应用漏洞的本质是从代码安全抓起。通常关于代码的安全问题有两类:代码本身的安全问题和代码依赖包存在的安全问题。对于代码本身的安全问题,我们可以通过静态代码分析工具解决,可以参考文章:

使用神器Spotbugs,轻松入门静态代码分析 - 简书

而对于代码依赖包的安全问题是我们这篇文章重点解决的事情,业界通常使用Dependency-Check来检查代码中是否存在任何已知的,公开披露的安全漏洞。他检查依赖项中是否存在漏洞的原理也跟我们熟知的病毒查杀软件一样,预先定义好目前已知的安全漏洞库,检查依赖包时,发现这些漏洞就会报错,最后定期更新安全漏洞库即可!

工具介绍:

Dependency-Check

Dependency-Check是OWASP(Open WebApplication Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。目前,已支持Java、.NET、Ruby、Node.js、Python等语言编写的程序,并为C/C++构建系统(autoconf和cmake)提供了有限的支持。而且该工具还是OWASP Top 10的解决方案的一部分。

NVD

Dependency-Check依赖NVD漏洞数据库(美国国家通用漏洞数据库)进行依赖漏洞检查(全球信息安全领域著名的漏洞数据库包括中国国家信息安全漏洞库,美国国家信息安全漏洞库NVD,赛门铁克漏洞库等等)官网:https://nvd.nist.gov/

NVD的更新频率是出现问题实时更新,具体链接: https://nvd.nist.gov/general/nvd-dashboard

CVSS

NVD评级依赖CVSS(CommonVulnerability Scoring System),即“通用漏洞评分系统”,是一个“行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度,具体评分标准如下:

目前主要参考cvss v3.0,具体级别的漏洞数目如下图所示:

使用方法

命令行方式

命令行方式建议测试人员使用,可以在没有源码的情况下进行代码安全检测。

Dependency-Check工具下载地址https://owasp.org/www-project-dependency-check/,在右侧选择command line,如下图:


默认方式

下载解压后进入bin文件夹,在windows系统下执行命令:

dependency-check.bat --disableRetireJS --disableNodeJS --project test -s D:\checkjar\-o D:\report\

其中:

-project代表工程名

–s代表检查的jar包文件夹,把需要检查的jar包放到该目录下即可

–o代表报表输出的路径

--disableRetireJS不检查js,

--disableNodeJS不检查nodejs

本地NVD库方式

我们可以在本地搭建一个NVD库来提高更新效率,

具体可以参考https://jeremylong.github.io/DependencyCheck/data/mirrornvd.html

使用本地nvd库,具体命令如下:

dependency-check.bat

--cveUrlModified 本地nvd库的url/nvdcve-1.1-modified.json.gz 

--cveUrlBase本地nvd库的url/nvdcve-1.1-2020.json.gz

--project test -s D:\checkjar\ -oD:\report\

其中–cveUrlModified和–cveUrlModified指定本地NVD库

注意,如果执行命令失败,重新执行一次就OK!

报告分析

生成的报表文件如下图,一般只需关注HighestSeverity 列中的CRITICAL和HIGH级别漏洞,可以看到检测出2个jar包存在高危漏洞。


点击具体jar包,可以看到具体的修复方案,如下所示:

报告中的含义是jackson-xc-1.8.3jar是有安全问题的,这个问题在2.8.10和2.9.1版本之前是存在的,所以我们只要把jar包升级到2.9.1版本以上即可修复这个问题!

配置Maven插件方式

该方式建议开发人员使用,通过maven方式检测依赖包中是否存在安全问题则需要修改较多pom中的内容。

https://search.maven.org/artifact/org.owasp/dependency-check-maven/5.3.2/maven-plugin

总结

一般来说对于代码依赖包的安全问题是由开发自己测试的,如果我们测试想要介入的话使用命令行方式即可,把需要检查的jar包放到指定的目录中,然后对所有jar包进行整体扫描。原创不易,如果文章帮到了你,欢迎转发点赞,让更多的朋友受益!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342