OWASP Dependency-Check Falsi Positivi
Librerie utilizzate solo a scopo di test
Le librerie terza parte utilizzate solamente nelle testsuite interne del prodotto, che non insistono negli archivi binari rilasciati, non vengono considerate tra i check di vulnerabilità “owasp”. Il motivo risiede nel fatto che alcune batterie di test richiedono versioni storiche di librerie, alcune delle quali possiedono anche vulnerabilità. Per evitare la verifica, le librerie utilizzate solamente dalle testsuite e non dai componenti runtime sono marcate con lo scope “test” come mostrato nell’esempio seguente:
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
Falsi Positivi
Nell’utilizzo del plugin vengono aggiunte le configurazioni che permettono di registrare dei falsi positivi rispetto al progetto, individuati nella Introduzione. Di seguito il frammento del file mvn/dependencies/pom.xml che evidenza come venga utilizzato il plugin owasp configurato con i suppressionFiles:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>7.3.2</version>
<executions>
<execution>
<id>check owasp</id>
<phase>verify</phase>
<configuration>
<autoUpdate>true</autoUpdate>
<failBuildOnAnyVulnerability>false</failBuildOnAnyVulnerability>
<outputDirectory>../../dependency-check-result</outputDirectory>
<format>ALL</format>
<suppressionFiles>
<suppressionFile>${owasp.falsePositives.dir}/swagger-codegen-linkit.xml</suppressionFile>
<suppressionFile>${owasp.falsePositives.dir}/console-back-office.xml</suppressionFile>
...
</suppressionFiles>
</configuration>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
Esaminando nel dettaglio i file che definiscono i falsi positivi:
swagger-codegen-linkit.xml: esclude i jar inclusi nel file mvn/dependencies/swagger-codegen/pom.xml poichè vengono utilizzati solamente durante lo sviluppo per generare alcune classi e non a runtime dal Gateway.
commons-discovery.xml: CVE-2022-0869
snakeyaml.xml: CVE-2022-[38752,41854,1471,3064] CVE-2021-4235
spring-web.xml: CVE-2016-1000027
spring-security-crypto.xml: CVE-2020-5408
xercesImpl.xml: CVE-2017-10355
console-back-office.xml: esclude i jar inclusi nel file mvn/dependencies/faces/pom.xml poichè utilizzati dalle console di gestione e monitoraggio adibite a funzioni di backoffice che non devono essere esposte al pubblico.
Nota
È in corso una attività di revisione dei jar utilizzati dalle console al fine di superare tutte le vulnerabilità note.