Third Party Dependency Analysis
Ogni libreria terza parte utilizzata da GovWay viene sottoposta a verifica di possibile presenza di vulnerabilità di sicurezza note tramite due tool complementari:
OWASP Dependency-Check: utilizza il matching CPE per associare le librerie alle vulnerabilità note. La sua configurazione può essere consultata nel file mvn/dependencies/pom.xml.
OSV-Scanner (Google): utilizza il matching per coordinate Maven (groupId:artifactId:version), più preciso del CPE per l’ecosistema Java. La sua configurazione può essere consultata nel file mvn/dependencies/pom.xml e nello script mvn/dependencies/osv/osv-scanner.sh.
Il duplice controllo è necessario per massimizzare la copertura: i due tool utilizzano database e metodi di matching differenti, e ciascuno rileva vulnerabilità che l’altro potrebbe non individuare.
OWASP Dependency-Check è configurato per utilizzare le seguenti basi dati di vulnerabilità note:
OSV-Scanner utilizza il database OSV che aggrega vulnerabilità da più fonti ecosystem-native:
Maven Advisory;
e altre fonti aggregate dalla piattaforma OSV.
L’analisi viene effettuata in automatico ad ogni commit sul branch 3.4.x dei sorgenti del progetto, come descritto nella sezione Verifica automatica in Continuous Integration.
La verifica può essere attivata anche manualmente, effettuando il checkout dei sorgenti del progetto GovWay come descritto nella sezione Verifica manuale tramite Maven.
Nel caso in cui il processo di verifica, descritto nella sezione Verifica automatica in Continuous Integration, rilevasse una vulnerabilità, viene avviata una gestione della vulnerabilità come descritto in Introduzione.
Altrimenti, se a valle dell’analisi della vulnerabilità rilevata, si riscontrasse un falso positivo (Falsi Positivi), questa verrebbe registrata come tale nella configurazione di entrambi i tool, in modo che successive verifiche non ne segnalino più la presenza. Maggiori dettagli sulla modalità di registrazione dei falsi positivi vengono forniti nella sezione Gestione dei Falsi Positivi.
Oltre alla verifica delle vulnerabilità, il processo di build produce un SBOM (Software Bill of Materials) in formati CycloneDX e SPDX, come descritto nella sezione Generazione SBOM (Software Bill of Materials). L’SBOM documenta formalmente tutte le dipendenze del progetto.
Nota
Per evitare che il progetto erediti possibili vulnerabilità da software terze parti non utilizzati, tutte e sole le librerie terza parte utilizzate nel progetto govway sono definite puntualmente nei file mvn/dependencies/*/pom.xml.
Per ognuna di tali librerie, maven è configurato per il download puntuale del solo archivio jar interessato, escludendo esplicitamente il download ricorsivo degli archivi jar indicati come dipendenze, utilizzando l’elemento “exclusions”, come mostrato di seguito:
<dependency>
<groupId>...</groupId>
<artifactId>....</artifactId>
<version>....</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>