查看: 346|回复: 0
收起左侧

[资讯] Dependency Check:一款针对应用程序依赖组件的安全检测工具

[复制链接]
蒙特卡洛
发表于 2024-9-20 09:31:04 | 显示全部楼层 |阅读模式
本帖最后由 蒙特卡洛 于 2024-9-20 09:33 编辑

关于Dependency Check
Dependency-Check 是一款软件组合分析 (SCA) 工具,可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 (CPE) 标识符来实现此目的。如果找到,它将生成一份链接到相关 CVE 条目的报告。

Dependency-check 有一个命令行界面、一个 Maven 插件、一个 Ant 任务和一个 Jenkins 插件。核心引擎包含一系列分析器,用于检查项目依赖项、收集有关依赖项的信息(在工具中称为证据)。然后使用证据来识别给定依赖项的通用平台枚举 (CPE) 。如果识别出 CPE,则会在报告中列出相关的通用漏洞和暴露 (CVE)条目列表。其他第三方服务和数据源(如 NPM Audit API、OSS Index、RetireJS 和 Bundler Audit)用于特定技术。

Dependency-check 使用 NIST 托管的NVD 数据源自动更新自身。'''重要提示:''' 初始下载数据可能需要十分钟或更长时间。如果您每七天至少运行一次该工具,则只需下载一个小型 JSON 文件即可使数据的本地副本保持最新。


功能介绍

Dependency-check 的工作方式是收集有关其扫描的文件的信息(使用分析器)。收集的信息称为证据;收集的证据有三种类型:供应商、产品和版本。例如,JarAnalyzer 将从 Manifest、pom.xml 和扫描的 JAR 文件中的包名称中收集信息,并且它有启发式方法将来自各种来源的信息放入一个或多个证据桶中。

在 NVD CVE 数据中每个 CVE 条目都有一个易受攻击的软件列表:

  1. <entry id="CVE-2012-5055">

  2.   ...

  3.     <vuln:vulnerable-software-list>

  4.       <vuln:product>cpe:/a:vmware:springsource_spring_security:3.1.2</vuln:product>

  5.       <vuln:product>cpe:/a:vmware:springsource_spring_security:2.0.4</vuln:product>

  6.       <vuln:product>cpe:/a:vmware:springsource_spring_security:3.0.1</vuln:product>

  7.     </vuln:vulnerable-software-list>

  8.   ...

  9.   </entry>
复制代码

接下来,CPE 数据将被收集并存储在 Lucene 索引中. Dependency-check 然后使用收集到的证据并尝试匹配 Lucene CPE 索引中的条目。如果找到,CPEAnalyzer 将向依赖项添加标识符,然后添加到报告中。一旦识别出 CPE,相关的 CVE 条目就会添加到报告中。


工具配置

导入用于签署所有依赖检查版本的 GPG 密钥:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 259A55407DD6C00299E6607EFFDE55BE73A2D1ED

https://github.com/jeremylong/DependencyCheck/releases/download/v10.0.4/dependency-check-10.0.4-release.zip下载依赖检查命令行工具和相关的 GPG 签名文件,验证下载的加密完整性:

gpg --verify dependency-check-10.0.4-release.zip.asc

将 zip 文件解压到计算机上的某个位置,并将“bin”目录放入路径环境变量中。


工具安装和使用

Homebrew
$ brew install dependency-check

Windows
dependency-check.bat --project "My App Name" --scan "c:\java\application\lib"

*nixdependency-check.sh --project "My App Name" --scan "/java/application/lib"

Docker使用
Linux
  1. #!/bin/sh



  2. DC_VERSION="latest"

  3. DC_DIRECTORY=$HOME/OWASP-Dependency-Check

  4. DC_PROJECT="dependency-check scan: $(pwd)"

  5. DATA_DIRECTORY="$DC_DIRECTORY/data"

  6. CACHE_DIRECTORY="$DC_DIRECTORY/data/cache"



  7. if [ ! -d "$DATA_DIRECTORY" ]; then

  8.     echo "Initially creating persistent directory: $DATA_DIRECTORY"

  9.     mkdir -p "$DATA_DIRECTORY"

  10. fi

  11. if [ ! -d "$CACHE_DIRECTORY" ]; then

  12.     echo "Initially creating persistent directory: $CACHE_DIRECTORY"

  13.     mkdir -p "$CACHE_DIRECTORY"

  14. fi



  15. # Make sure we are using the latest version

  16. docker pull owasp/dependency-check:$DC_VERSION



  17. docker run --rm \

  18.     -e user=$USER \

  19.     -u $(id -u ${USER}):$(id -g ${USER}) \

  20.     --volume $(pwd):/src:z \

  21.     --volume "$DATA_DIRECTORY":/usr/share/dependency-check/data:z \

  22.     --volume $(pwd)/odc-reports:/report:z \

  23.     owasp/dependency-check:$DC_VERSION \

  24.     --scan /src \

  25.     --format "ALL" \

  26.     --project "$DC_PROJECT" \

  27.     --out /report

  28.     # Use suppression like this: (where /src == $pwd)

  29.     # --suppression "/src/security/dependency-check-suppression.xml"
复制代码
Windows
  1. [url=home.php?mod=space&uid=331734]@echo[/url] off



  2. set DC_VERSION="latest"

  3. set DC_DIRECTORY=%USERPROFILE%\OWASP-Dependency-Check

  4. SET DC_PROJECT="dependency-check scan: %CD%"

  5. set DATA_DIRECTORY="%DC_DIRECTORY%\data"

  6. set CACHE_DIRECTORY="%DC_DIRECTORY%\data\cache"



  7. IF NOT EXIST %DATA_DIRECTORY% (

  8.     echo Initially creating persistent directory: %DATA_DIRECTORY%

  9.     mkdir %DATA_DIRECTORY%

  10. )

  11. IF NOT EXIST %CACHE_DIRECTORY% (

  12.     echo Initially creating persistent directory: %CACHE_DIRECTORY%

  13.     mkdir %CACHE_DIRECTORY%

  14. )



  15. rem Make sure we are using the latest version

  16. docker pull owasp/dependency-check:%DC_VERSION%



  17. docker run --rm ^

  18.     --volume %CD%:/src ^

  19.     --volume %DATA_DIRECTORY%:/usr/share/dependency-check/data ^

  20.     --volume %CD%/odc-reports:/report ^

  21.     owasp/dependency-check:%DC_VERSION% ^

  22.     --scan /src ^

  23.     --format "ALL" ^

  24.     --project "%DC_PROJECT%" ^

  25.     --out /report

  26.     rem Use suppression like this: (where /src == %CD%)

  27.     rem --suppression "/src/security/dependency-check-suppression.xml"
复制代码


来自:https://www.freebuf.com/sectool/410485.html

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-21 22:10 , Processed in 0.128095 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表