安全,  安全性测试相关,  测试

Dependency-Check for SonarQube使用说明


SonarQube 10.2 或更高版本的依赖关系检查插件

Build Status
Codacy Badge
Download
Downloads
Quality Gate Status
Coverage
Security Rating


将 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 项目。

 指标


该插件会跟踪许多统计数据,包括:


  • 扫描的依赖项总数

  • 在所有依赖项中发现的漏洞总数

  • 易受攻击组件的总数

  • 严重、高、中、低严重性漏洞总数


此外,还定义了以下两个指标:


遗传风险评分 (IRS)

 (high * 5) + (medium * 3) + (low * 1)




IRS 只是对应用程序通过使用易受攻击的组件继承的漏洞进行加权测量。它不会衡量由于这些组件而导致的应用程序的实际风险。分数越高,应用程序继承的风险就越大。


易损组件比率


(漏洞/vulnerableComponents)


这只是对易受攻击组件的漏洞数量的度量(以百分比表示)。百分比越高,表示大量组件包含漏洞。百分比越低越好。

 编译


$ mvn 干净包

 使用 NodeJS

  •  启动 SonarQube 服务器

  • 在里面 sonar-dependency-check-plugin 运行 npm start

    • PROXY_CONTEXT_PATH 调整 DEFAULT_PORTPROXY_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 许可条款授予修改和重新分发的权限。

Dependency-Check for SonarQube使用说明已关闭评论