【问题标题】:dependency-check-maven - suppression not working依赖检查 maven - 抑制不起作用
【发布时间】:2022-01-12 14:28:07
【问题描述】:

我正在尝试将已确认存在风险的某些库列入白名单 - 理想情况下,我想从 pom.xml 本身内部执行此操作,但似乎这是不可能的。

我创建了一个简单的项目,其依赖项 (H2) 具有出色的 CVE,并使用从 Dependency-Check-Report 生成的 XML 配置了 suppressions 文件以忽略该依赖项的 dependency-check-maven

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.me</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
                <version>6.5.3</version>
                <configuration>
                    <suppressionFile>path\to\owasp-suppressions.xml</suppressionFile>
                    <failBuildOnCVSS>8</failBuildOnCVSS>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.200</version>
        </dependency>
    </dependencies>
</project>

owasp-suppressions.xml:

<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
   <suppress>
      <notes><![CDATA[
      file name: h2-1.4.200.jar
      ]]></notes>
      <packageUrl regex="true">^pkg:maven/com\.h2database/h2@.*$</packageUrl>
      <cpe>cpe:/a:h2database:h2</cpe>
   </suppress>
</suppressions>

但尽管如此,构建仍然失败:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.703 s
[INFO] Finished at: 2022-01-12T14:26:58Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.owasp:dependency-check-maven:6.5.3:check (default) on project test: 
[ERROR] 
[ERROR] One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '8.0': 
[ERROR] 
[ERROR] h2-1.4.200.jar: CVE-2021-23463

谁能告诉我我做错了什么?

【问题讨论】:

    标签: java maven owasp maven-dependency-check-plugin


    【解决方案1】:

    我在我的机器上进行了验证。当我运行您的代码时,它确实失败了。然后我使用 html 输出和“抑制”代码生成器。但是,它为我生成的代码与您提供的代码略有不同。使用该代码可以正常工作。 所以也许是一个累了的复制粘贴然后编辑和弄乱它的情况?

    但是,这对我有用:

      <suppress>
        <notes>
          <![CDATA[
          file name: h2-1.4.200.jar
          ]]>
        </notes>
        <packageUrl regex="true">^pkg:maven/com\.h2database/h2@.*$</packageUrl>
        <vulnerabilityName>CVE-2021-23463</vulnerabilityName>
      </suppress>
    

    查看您的评论。我调查了更多。 没有抑制给了我 2 个标识符:

    • pkg:maven/com.h2database/h2@1.4.200(置信度:高)
    • cpe:2.3:a:h2database:h2:1.4.200:::::::*(置信度:最高)

    然后像您的示例中那样通过 cpe 抑制它并仅显示:

    • pkg:maven/com.h2database/h2@1.4.200(置信度:高)

    那个没有“抑制生成按钮”。我尝试了sha和filePath,但事实证明它不能与cpe结合。解析xml失败。

    但是我们可以将漏洞抑制与 filePath 结合起来,这样你仍然可以只抑制你想要的特定 jar。甚至更好:抑制特定 jar 中的特定 CVE。 像这样:

      <suppress>
        <notes>
          <![CDATA[
          file name: h2-1.4.200.jar
          ]]>
        </notes>
        <filePath regex="true">.*\/h2database.*\.jar</filePath>
        <vulnerabilityName>CVE-2021-23463</vulnerabilityName>
      </suppress>
    

    注意,我也删除了 packageUrl 标记,显然这也没有结合。

    【讨论】:

    • 谢谢,这似乎适用于 H2 示例,但不适用于其他依赖项?例如:&lt;dependency&gt;&lt;groupId&gt;com.google.oauth-client&lt;/groupId&gt;&lt;artifactId&gt;google-oauth-client-servlet&lt;/artifactId&gt;&lt;version&gt;1.21.0&lt;/version&gt;&lt;/dependency&gt; 抑制 &lt;suppress&gt;&lt;notes&gt;&lt;![CDATA[ file name: google-oauth-client-servlet-1.21.0.jar ]]&gt;&lt;/notes&gt;&lt;filePath regex="true"&gt;.*\/google-oauth-client.*\.jar&lt;/filePath&gt;&lt;vulnerabilityName&gt;CVE-2020-7692&lt;/vulnerabilityName&gt;&lt;/suppress&gt;
    • 它对我来说很好用!你那边有什么问题?
    • [ERROR] Failed to execute goal org.owasp:dependency-check-maven:6.5.3:check (default) on project test: [ERROR] [ERROR] One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '8.0': [ERROR] [ERROR] google-oauth-client-1.21.0.jar: CVE-2020-7692
    猜你喜欢
    • 1970-01-01
    • 2021-11-23
    • 2020-09-20
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2019-11-13
    • 2011-08-30
    • 2014-11-26
    相关资源
    最近更新 更多