首页 > 其他分享 >Dependency-Checkc操作手册V1.0(互联网及内网使用)

Dependency-Checkc操作手册V1.0(互联网及内网使用)

时间:2024-08-27 14:24:13浏览次数:14  
标签:操作手册 漏洞 -- 扫描 Dependency V1.0 dependency 内网 check

               

Dependency-Check

操作手册

二〇二四年八月

Dependency-Check

操作手册

拟制:___________________    日期:___________________

校对:___________________    日期:___________________

审核:___________________    日期:___________________

标审:___________________    日期:___________________

批准:___________________    日期:___________________

 

文件修改控制

序号

发布版本

修改原因

修改后内容

修改人/日期

审核人/日期

批准人/日期

1

V0.1

新建

文档建立

李某

2024/8/2

2

V0.2

修改

修改文档中部分内容

李某

2024/8/6

3

V1.0

修改

修改文档中部分内容

李某

2024/8/12

1、文档概述

        本手册适用于帮助初学者快速掌握Dependency-Check的安装、配置与使用方法。通过阅读本文档,您将能够了解如何搭建Dependency-Check环境、进行项目依赖库的安全扫描,并解读生成的报告。此外,本文档还涵盖了常见问题及解决方法,以便您在实际操作中遇到困难时能够及时找到解决方案。

2、相关内容概述

2.1、Dependency-Check概述

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

2.2、NVD概述

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

NVD的更新频率是出现问题实时更新,具体链接:

https://nvd.nist.gov/general/nvd-dashboard

2.3、CVSS概述

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

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

3、环境要求

        1、Java 8 或更高版本

        2、至少2GB内存(建议更多)

        3、有网络连接,或身边拥有互联网设备(用于下载漏洞数据库) 

4、Dependency-Check安装与使用

4.1、测试试终端可连接互联网

4.1.1、下载与安装

4.1.1.1、下载

        1、打开浏览器并访问https://owasp.org/www-project-dependency-check/页面。

        2、点击【Command Line】下载最新版本的ZIP包,例如 dependency-check-<version>-release.zip。

4.1.1.2、安装

        1、下载完成后将压缩包解压至非中文路径下,以下操作以解压至D盘为例。

        2、进入解压后的D:\dependency-check-10.0.2-release\dependency-check\bin路径下。

        3、使用命令行提示符打开。

        4、执行命令dependency-check.bat --update下载最新缺陷库(首次下载时间较长,等待执行完成即可)

4.1.2、依赖项扫描

        1、准备好待扫描的项目包放置在非中文目录下,例如E:\test\ems-jars。

        2、打开命令提示符窗口并移动到dependency-check执行路径下。

        3、执行命令dependency-check.bat --project test -s E:\test\ems-jars --format HTML -o E:\test\test.html --disableHostedSuppression对目标项目包进行扫描。

        --project代表指定项目名称,这个名称将出现在生成的报告中,用于标识不同的扫描项目,扫描时将test替换成实际项目名;

         -s代表检查的项目文件夹,扫描时将E:\test\ems-jars替换成实际项目包路径;

        --format代表指定输出报告的格式,支持的格式包括HTML、XML、JSON等,扫描时按实际需求填写,推荐HTML;

      -o代表指定输出报告的文件路径,若不填写则默认输出到D:\dependency-check-10.0.2-release\dependency-check\bin路径下,扫描时将test.html替换成实际报告名称

      --disableHostedSuppression代表禁用Hosted Suppressions更新,若自动或手动更新过publishedSuppressions.xml文件即可添加此命令。

4.1.3、报告分析

        

        1、打开扫描报告,查看报告中的报告概览

        dependency-check version代表工具版本:10.0.2。

        Report Generated On代表报告生成时间:2024/8/5 15:33:49

        Dependencies Scanned代表依赖项扫描数:共扫描了118个依赖项,其中80个是唯一的。

        Dependencies Scanned代表漏洞依赖项数:发现9个具有已知漏洞的依赖项。

        Vulnerable Dependencies代表总计漏洞数:共发现22个漏洞。

        Vulnerabilities Suppressed代表抑制的漏洞数:没有被抑制的漏洞。(抑制的漏洞指的是在扫描过程中,被工具识别并且被用户或配置文件明确忽略的漏洞数量。这些被“抑制”的漏洞不会出现在最终的报告中)

        2、分析过报告概览后查看报告详细信息。

        此处显示存在漏洞的依赖项:

        Dependency代表存在漏洞的依赖项。

        Vulnerability IDs代表对应NVD的漏洞ID。

        Package代表依赖中的包。

        Highest Severity代表漏洞的严重程度。

        CVE Count代表与依赖包与漏洞关联的数量。

        Confidence代表工具对漏洞检测结果的置信度。

        Evidence Count代表支持该漏洞检测结果的证据数量。

     3、根据报告详细信息去下方查看具体漏洞信息,并加以分析,下面以一个依赖项snakeyaml-1.30.jar举例说明。

        从上方报告详细信息中可得知此依赖项snakeyaml-1.30.jar存在漏洞数量为7个,软件判定此依赖项的严重程度为CRITICAL非常严重,并且对漏洞的确认程度很高,下面点击依赖项名称去查看漏洞具体信息。

        可查看到该条依赖项对应的七条漏洞,第一条漏洞的代号为CVE-2022-1471,对应的CVSS评分为9.8,证明此漏洞非常危险,结合dependency-check对此漏洞的评级为CRITICAL,说明此处漏洞是必须修改的,报告中还给出了该漏洞的详细情况与解决方法:SnakeYaml库的Constructor()类在反序列化过程中不限制可以实例化的类型,如果攻击者提供特定的yaml内容,可能会导致远程代码执行(RCE),建议使用SafeConstructor来解析不可信内容,以限制反序列化过程中的风险,建议升级到2.0或更高版本以解决该问题。

4.2、测试终端不可连接互联网

        在不可连接互联网情况下进行扫描,扫描结果主要来自于验证NVD缺陷库,连接互联网情况下工具还会自动与Maven Central、OSS Index等开源软件库和三方库连接获取额外的漏洞数据,故离线扫描结果没有连接互联网扫描结果全面。

4.2.1、下载与安装

        在完成4.1.1下载与安装章节得操作后将整个D:\dependency-check-10.0.2-release文件夹通过刻录等方式移动至不可连接互联网得终端中即可进行使用。

4.2.2、依赖项扫描

        依赖项扫描步骤同4.1.2依赖项扫描相同,因测试终端不可连接互联网,所以此处扫描命令需进行更改。

      执行命令dependency-check.bat --project test -s E:\test\ems-jars --format HTML -o E:\test\test.html --disableHostedSuppression --disableCentral --disableOssIndex对目标项目包进行扫描

        --disableCentral 此选项用于禁用对 Maven Central Repository 的访问。Maven Central 是一个公共的 Maven 仓库,其中存储了许多开源和第三方库的信息。在分析过程中,Dependency-Check 会尝试从 Maven Central 获取相关依赖项的安全漏洞信息,因设备无法连接互联网所以要将该功能禁用。

        --disableOssIndex 此选项用于禁用对 OSS Index 的访问。OSS Index 是一个专门用于扫描开源组件安全性的平台,它提供了有关开源库和其漏洞的信息。Dependency-Check 可以通过 OSS Index 来获取额外的漏洞数据,因设备无法连接互联网所以要将该功能禁用。

4.2.3、报告分析

        同4.1.3报告分析章节。

5、漏洞严重等级具体划分

        本文给出两种漏洞划分标准,分别为Dependency-Check报告中针对某一依赖项所包含漏洞的严重程度进行总体划分与CVSSv3针对依赖项存在的单个漏洞危险程度进行划分,两者结合作为漏洞是否应该整改的评判标准。一般来说,CVSS评分高于7.0的漏洞应被视为必须更改的高风险或严重风险漏洞。而中等风险和低风险的漏洞则可以根据具体情况和业务需求来决定处理优先级。

5.1、Dependency-Check报告漏洞划分标准

       Dependency-check对漏洞严重程度判定有四档分别为:

       1)CRITICAL:这些漏洞通常会导致非常严重的后果,如远程代码执行、大规模数据泄露等。应优先处理。

       2)HIGH:高危漏洞可能导致严重的后果,但不一定能直接被利用。也应尽快修复。

       3)MEDIUM:中等风险漏洞可能会导致较大的安全问题,但利用难度较大或影响范围有限。

       4)LOW:低风险漏洞一般不会造成重大影响,但在有余力的情况下也应考虑修复。

5.2、CVSSv3漏洞划分标准

        CVSSv3对漏洞严重程度判定有四档分别为:

        1)CRITICAL(9.0 - 10.0):这些漏洞通常具有最高的严重性,可能导致远程代码执行、大规模数据泄露、系统完全被攻陷等影响。应立即修复或采取其他补救措施。

        2)HIGH(7.0 - 8.9):这些漏洞可能会导致重大安全问题,如数据泄露、拒绝服务攻击等。应尽快修复。

        3)MEDIUM(4.0 - 6.9):这些漏洞可能会导致中等程度的安全问题,但利用难度较大或者影响范围有限。虽然不需要紧急处理,但应在合理的时间内修复。

        4)LOW(0.1 - 3.9):这些漏洞通常不会造成重大影响。可以在日常维护过程中进行修复。

        5)NONE*(0):无问题。

6、常见问题

6.1、JDK版本过低导致更新失败

        使用命令下载缺陷库时提示下列错误,说明JDK版本过低,请更新JDK版本至8.0以上。

6.2、RetureJS数据库更新失败

        使用命令下载缺陷库时提示下列错误,说明NVD数据库的主要更新部分是成功的,但 RetireJS 数据库的更新失败了,手动访问https://github.com/RetireJS/retire.js/releases地址下载retire.js-5.1.2.zip文件(使用时下载最新的),将文件解压后找到其中的jsrepository.json、jsrepository-v2.json、jsrepository-v3.json文件放入 Dependency-Check 的数据目录D:\dependency-check-10.0.2-release\dependency-check\data\中(受网络环境影响,此地址在未配置网络代理情况下可能无法访问,若无法访问需在后续测试命令中添加--disableRetireJS)

6.3、Hosted Suppressions 文件更新失败

        执行依赖项扫描时提示下列错误说明,Dependency-Check 尝试下载并更新 hosted suppressions 文件失败。这个文件包含一些已知的误报抑制规则,下载失败后,扫描结果中可能会包含已解决的误报,需前往https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml此地址,将下载的publishedSuppressions.xml文件移动至D:\dependency-check-10.0.2-release\dependency-check\data路径下,再次运行扫描工具即可解决(若手动替换过publishedSuppressions.xml仍出现此问题需在后续测试命令中添加--disableHostedSuppression)。

6.4、TLS 连接重置错误

        这个错误表明在尝试下载某些依赖数据文件时,TLS 连接被重置了。这通常与网络问题或服务器端配置有关,该问题可能会引起Hosted Suppressions文件更新失败错误,如已经更新或手动替换过publishedSuppressions.xml,则无需关注此问题,只需再次运行扫描工具进行扫描即可。

6.5、.NET Assembly Analyzer无法初始化

        这个错误表明.NET Assembly Analyzer无法初始化,因为找不到dotnet可执行文件,这通常是因为系统环境变量PATH中没有包含.NET Core的路径。

        需前往微软官网https://dotnet.microsoft.com/zh-cn/download为此计算机安装最新版本.NET Core SDK,安装完成后重新打开命令提示符再次运行扫描工具即可解决。

标签:操作手册,漏洞,--,扫描,Dependency,V1.0,dependency,内网,check
From: https://blog.csdn.net/weixin_44362636/article/details/141549420

相关文章

  • 怎么实现用frp搭建一个自己的内网穿透服务
    使用frp搭建一个自己的内网穿透服务包括以下几个步骤:配置frp服务器(服务端)和frp客户端。Frp是什么:frp(FastReverseProxy)是一款高性能的反向代理应用,广泛用于内网穿透、跨网络访问等场景。以下是frp的一些常见应用场景:1.内网服务的外网访问frp可以将内网中的Web......
  • 渗透测试SSRF技术 之 【服务端请求伪造】 SSRF和CSRF区别是啥 从知道是啥到如何玩ssrf
    目录ssrf和csrf的区别是啥SSRF攻击流程SSRF带来的危害:最后:ssrf和csrf的区别是啥:解释:CSRF:跨站请求伪造,客户端请求伪造。SSRF(Server-SideRequestForgery:服务器端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标......
  • iptables、firewalld、Semanage防火墙简易操作手册
    firewall防火墙1、查看firewall服务状态systemctlstatusfirewalld出现Active:active(running)切高亮显示则表示是启动状态。出现Active:inactive(dead)灰色表示停止,看单词也行。2、开启、重启、关闭、firewalld.service服务开启systemctlstartfirewalld......
  • 黑神话:悟空-V1.0四十二项修改器/仿场景体验版
    「黑神话悟空修改器」链接:https://pan.quark.cn/s/e0d3eeba8676基本功能:点击简体、繁体、English,可以切换语言(切换语言后修改器将把该语言设置为默认语言)按Ctrl+Shift+Home,可以关闭快捷键检测,避免误按快捷键以及与游戏按键重复的情况,再按一次则重新开启。修改器功能:数......
  • 【解压即玩】PC铁拳8 v1.0.3【豪华中文】 终极版+全DLC
    《铁拳8》是由万代南梦宫制作并发行的一款3D格斗游戏,该游戏于2024年1月26日正式登陆PlayStation5、XboxSeries以及PC平台。游戏的故事紧接前作《铁拳7》,发生在其后的半年。这一次,主角风间仁决定反抗自己的命运,向他的父亲三岛一八发起挑战,这场斗争不仅关乎个人的命运,也将......
  • frp实现web服务的内网穿透
    什么是内网穿透?内网穿透是一种技术,它允许用户通过公网访问位于内部网络中的设备或服务。通常情况下,内部网络中的设备不能直接从公网访问,因为它们可能位于防火墙或NAT(网络地址转换)之后。内网穿透通过建立一条从公网到内网的隧道,使用户能够通过公网访问内部设备或服务。这对于需......
  • 【原创软件】第10期:PDFCrossMergeV1.0-实现两个PDF交叉合并,适用于PDF扫描件合并,单文件
    解决问题:扫描件合并,由于大部分扫描件是正面一个pdf,反面一个pdf,尤其是正面顺序,反面逆序的pdf,需要交叉合并,也就是说适合单面扫描文件合并。即解决【正面顺序,反面逆序】文件A,扫描文件页码顺序:1、3、5、7、9。文件B,扫描文件页码顺序:10、8、6、4、2。这种合并问题。合并结果是1、2、3......
  • 【内网渗透系列】域内权限划分
    域本地组成员范围:林中所有的用户、全局组、通用组、本域的域本地组。作用范围:本域。用途:给域内的资源设置访问权限。举例:test域有一台打印机P,test域中的用户A和B需要有访问权,新建域本地组DL,给域本地组DL赋予访问打印机P的权限,把用户A和B加到域本地组DL即可。全局组成员范围......
  • SAP Parallel Accounting(平行分类账业务)配置及操作手册【适用于多国家会计准则】
    1.配置准备1.1理解平行账概念平行账,也称为多分类账,是SAP系统中的一项功能,它允许企业按照不同的会计准则来维护各自的财务数据。这种设置特别适用于那些需要符合多种会计准则的跨国公司。通过平行账,企业可以在不同的分类账中记录相同的交易,但按照各自的会计政策进行处理。......
  • DC-1综合靶场渗透从外网打到内网,权限提升,入侵痕迹清除,干货,建议收藏
    前言博客主页:【h0ck1r丶羽】的公众号~~由于传播、利用本公众小羽网安提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号小羽网安及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要包含【信息收......