Detecção e relatório de vulnerabilidades de segurança no Quarkus
Most of the Quarkus tags are registered in the US National Vulnerability Database (NVD) in Common Platform Enumeration (CPE) name format.
US National Vulnerability Database
Para visualizar os nomes registrados do Quarkus CPE no NVD dos EUA, use o seguinte URL de pesquisa:
Se o banco de dados NVD sinalizar um CVE em relação a uma tag Quarkus, um link que fornece mais informações sobre o CVE será adicionado à entrada do nome do CPE em questão.
A equipe do NVD CPE atualiza a lista regularmente, mas se você encontrar um falso positivo, comunique os detalhes criando um problema no repositório quarkusio .
Detect vulnerabilities in Quarkus at build time
Você pode detectar as vulnerabilidades no momento da construção do aplicativo com um feed NVD usando o plug-in Maven OWASP Dependency-check-maven .
Para adicionar o plug-in OWASP (Open Worldwide Application Security Project) Dependency-check-maven ao seu projeto Quarkus Maven, adicione a seguinte configuração XML ao arquivo pom.xml
:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${owasp-dependency-check-plugin.version}</version>
</plugin>
Defina o valor de |
Em seguida, configure o plug-in da seguinte forma:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${owasp-dependency-check-plugin.version}</version>
<configuration>
<!-- Fail only when detecting High Vulnerability issues -->
<failBuildOnCVSS>7</failBuildOnCVSS>
<suppressionFiles>
<suppressionFile>${project.basedir}/dependency-cpe-suppression.xml</suppressionFile>
</suppressionFiles>
</configuration>
</plugin>
Para detectar problemas menos graves, ajuste o valor de failBuildOnCVSS
para suprimir os falsos positivos, conforme demonstrado no exemplo de código a seguir:
<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.2.xsd">
<!--
This is a CPE suppression file for the maven dependency check plugin.
Each CPE that is found by error (false positive) needs to be suppressed for a specific jar using its' GAV.
See https://jeremylong.github.io/DependencyCheck/general/suppression.html
-->
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for netty-tcnative-classes to netty
]]>
</notes>
<gav regex="true">^io\.netty:netty-tcnative-classes.*:.*$</gav>
<cpe>cpe:/a:netty:netty</cpe>
</suppress>
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for Quarkus Mutiny to mutiny:mutiny
]]>
</notes>
<gav regex="true">^io\.quarkus:quarkus-mutiny.*:.*$</gav>
<cpe>cpe:/a:mutiny:mutiny</cpe>
</suppress>
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for Smallrye Mutiny to mutiny:mutiny
]]>
</notes>
<gav regex="true">^io\.smallrye\.reactive:mutiny.*:.*$</gav>
<cpe>cpe:/a:mutiny:mutiny</cpe>
</suppress>
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for Smallrye Mutiny to mutiny:mutiny
]]>
</notes>
<gav regex="true">^io\.smallrye\.reactive:smallrye-mutiny.*:.*$</gav>
<cpe>cpe:/a:mutiny:mutiny</cpe>
</suppress>
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for Smallrye Mutiny to mutiny:mutiny
]]>
</notes>
<gav regex="true">^io\.smallrye\.reactive:vertx-mutiny.*:.*$</gav>
<cpe>cpe:/a:mutiny:mutiny</cpe>
</suppress>
<suppress>
<notes>
<![CDATA[
Suppress the false positive CPE for graal-sdk to GraalVM (the JVM distribution)
]]>
</notes>
<gav regex="true">^org\.graalvm\.sdk:graal-sdk.*:.*$</gav>
</suppress>
</suppressions>
Certifique-se de revisar e atualizar a lista de supressão regularmente para garantir que os resultados estejam atualizados. Opcionalmente, você pode aplicar um limite de tempo a supressões individuais adicionando um atributo de expiração, conforme descrito no exemplo a seguir:
<suppress until="2022-01-01Z">…</suppress>
Você pode ajustar a data de expiração, se necessário.