【随手记录】OWASP Dependency-Check 代码依赖漏洞检测
1、需要在maven的pom文件配置检测规则:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>8.4.0</version>
<configuration>
<!--根据分数等级,阻断check-->
<failBuildOnCVSS>11</failBuildOnCVSS>
<!--是否检测最新漏洞依赖-->
<autoUpdate>false</autoUpdate>
<nvdApiKey>xxx</nvdApiKey>
<connectionTimeout>60000</connectionTimeout>
<readTimeout>60000</readTimeout>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
2、常见问题
2.1、需要设置 nvdApiKey
在官网申请 https://nvd.nist.gov/developers/request-an-api-key
2.2、 .net 6.0依赖问题
One or more exceptions occurred during analysis:
InitializationException: Could not execute .NET AssemblyAnalyzer, is the dotnet 6.0 runtime or sdk installed?
解决:
安装 .NET 6.0 # Windows (PowerShell) winget install Microsoft.DotNet.Runtime.6 # Ubuntu/Debian wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update sudo apt install dotnet-runtime-6.0 # CentOS/RHEL sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm sudo yum install dotnet-runtime-6.
2.3、failBuildOnCVSS 漏洞级别问题
One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '8.0':
pom.xml: CVE-2020-36460(8.1)
解决:
0 发现任何漏洞即失败 超严格安全要求 4 中等及以上漏洞(CVSS ≥4)失败 一般应用 7 高危漏洞(CVSS ≥7)失败(推荐值) 生产系统 9 严重漏洞(CVSS ≥9)失败 非核心系统 11 永不因漏洞失败(默认值) 仅做报告,不阻断构建
2.4、UpdateException: Error updating the NVD Data NoDataException: No documents exist 报错
在使用 org.owasp.dependency-check-maven 插件时遇到 UpdateException: Error updating the NVD Data 和 NoDataException: No documents exist 错误,通常是由于插件无法下载或访问 NVD(National Vulnerability Database)漏洞数据库导致的。
解决:
网络问题:插件无法连接 NVD 服务器(可能因网络限制、代理或防火墙)。
curl https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2024.json.gz
NVD 服务不可用:NIST 服务器可能暂时宕机或维护。
3、报告解读
举个例子:
Dependency: log4j-core-2.14.1.jar CPE: cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:* GAV: org.apache.logging.log4j:log4j-core:2.14.1 Highest Severity: Critical (CVSS 10.0) CVE Count: 3 CPE Confidence: Highest Evidence Count: 32
解读:
该 Log4j 2.14.1 组件被100%确认(Highest Confidence)存在 3 个高危漏洞(包括 CVSS 10.0 的 Log4Shell),扫描器通过分析依赖文件中的 32 条证据(如文件内容、元数据等)得出此结论。