Dependency-Check for SonarQube使用说明
将 Dependency-Check 报告集成到 SonarQube v10.2 或更高版本中。
该项目将尝试将所有代码从 master 分支向后移植到最后支持的 LTS。请参阅 SonarQube 6.x 或 SonarQube 7.x 分支,了解受支持的旧版本。
Dependency-Check 是一个实用程序,用于尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 (CPE) 标识符来实现此目的。
如果找到,它将生成链接到关联 CVE 条目的报告。
Dependency-Check 支持识别多种不同语言(包括 Java、.NET、Node.js、Ruby 和 Python)的项目依赖项。
此 SonarQube 插件不执行分析,而是读取现有的依赖关系检查报告。使用其他可用方法之一扫描项目依赖项并生成必要的 JSON 报告,然后此插件可以使用该报告。有关相关文档,请参阅 Dependency-Check 项目。
该插件会跟踪许多统计数据,包括:
扫描的依赖项总数
在所有依赖项中发现的漏洞总数
易受攻击组件的总数
严重、高、中、低严重性漏洞总数
此外,还定义了以下两个指标:
(high * 5) + (medium * 3) + (low * 1)
IRS 只是对应用程序通过使用易受攻击的组件继承的漏洞进行加权测量。它不会衡量由于这些组件而导致的应用程序的实际风险。分数越高,应用程序继承的风险就越大。
(漏洞/vulnerableComponents)
这只是对易受攻击组件的漏洞数量的度量(以百分比表示)。百分比越高,表示大量组件包含漏洞。百分比越低越好。
$ mvn 干净包
- 启动 SonarQube 服务器
在里面sonar-dependency-check-plugin
运行npm start
PROXY_CONTEXT_PATH
调整DEFAULT_PORT
、PROXY_URL
针对您的环境
GitHub 提供了现成的二进制文件。
请使用最新版本。请记住,此插件仅支持最新的 SonarQube LTS 版本和最新的非 SonarQube LTS 版本。
插件版本 | SonarQube 版本 |
---|---|
5.0.0 及更高版本 | SonarQube 10.2 及更高版本 |
4.0.0 - 4.0.1 | SonarQube 9.9 LTS - 10.2 |
3.0.0 - 3.1.0 | SonarQube 8.9 LTS - 9.9 LTS |
2.0.6 - 2.0.8 | SonarQube 7.9 LTS - 8.9 LTS |
1.2.x - 2.0.5 | SonarQube 7.6 - 7.9 LTS |
1.1.x | SonarQube 6.7 LTS |
1.0.3 | SonarQube 5.6 LTS |
将插件(jar 文件)复制到 $SONAR_INSTALL_DIR/extensions/plugins 并重新启动 SonarQube 或通过 SonarQube Marketplace 安装。
使用 Dependency-Check 创建聚合报告。Dependency-Check 将输出一个名为“dependency-check-report.json”的文件。Dependency-Check SonarQube 插件读取现有的 Dependency-Check JSON 报告。
典型的 SonarQube 配置将具有以下参数。此示例假定使用 Jenkins 工作区,但可以很容易地针对其他 CI/CD 系统进行更改。
sonar.dependencyCheck.jsonReportPath=${WORKSPACE}/dependency-check-report.json
sonar.dependencyCheck.htmlReportPath=${WORKSPACE}/dependency-check-report.html
在此示例中,指定了所有受支持的报表(JSON 和 HTML)。
只需要 JSON 报告,但是,如果 HTML 报告也可用,则通过在 SonarQube 项目中合并实际的 Dependency-Check HTML 报告,它大大增强了 SonarQube 插件的可用性。
此插件尝试将 SonarQube 问题添加到您的项目配置文件(例如 pom.xml、*.gradle、package-json.lock)。请确保这些文件是 sonar.sources
的一部分。
若要配置所创建问题的严重性,可以选择使用以下参数指定每个严重性的最低分数。指定 的 -1
分数以完全禁用严重性。
sonar.dependencyCheck.severity.high=7.0
sonar.dependencyCheck.severity.medium=4.0
sonar.dependencyCheck.severity.low=0.0
在大型项目中,您有许多依赖项,(希望)没有漏洞。以下配置将一个依赖项的所有漏洞汇总为一个问题。
sonar.dependencyCheck.summarize=true
sonar.dependencyCheck.summarize=false (default)
如果你想跳过这个插件,可以通过以下配置。
sonar.dependencyCheck.skip=true
sonar.dependencyCheck.skip=false (default)
如果要使用 Security-Hotspots 在团队中启用评审过程,请使用以下配置。
sonar.dependencyCheck.securityHotspot=true
sonar.dependencyCheck.securityHotspot=false (default)
如果要使用完整的 jar 文件路径而不是名称,请使用以下配置。
sonar.dependencyCheck.useFilePath=true
sonar.dependencyCheck.useFilePath=false (default)
Dependency-Check 可作为:
- 命令行实用程序
- 蚂蚁任务
- Gradle 插件
- Jenkins 插件
- Maven 插件
- SonarQube 插件
Dependency-Check Sonar 插件是版权 (c) 依赖检查。保留所有权利。
Dependency-Check 版权归 Jeremy Long 所有。保留所有权利。
根据 LGPLv3 许可条款授予修改和重新分发的权限。