.. _releaseProcessGovWay_thirdPartyDynamicAnalysis: 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: - `National Vulnerability Database `_; - `RetireJS `_; - `CISA Known Exploited Vulnerabilities Catalog `_; - `Github Advisory Database (via NPM Audit API) `_. **OSV-Scanner** utilizza il database `OSV `_ che aggrega vulnerabilità da più fonti ecosystem-native: - `GitHub Advisory Database `_; - 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 :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis_ci`. La verifica può essere attivata anche manualmente, effettuando il checkout dei `sorgenti del progetto GovWay `_ come descritto nella sezione :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis_maven`. Nel caso in cui il processo di verifica, descritto nella sezione :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis_ci`, rilevasse una vulnerabilità, viene avviata una gestione della vulnerabilità come descritto in :ref:`vulnerabilityManagement`. Altrimenti, se a valle dell'analisi della vulnerabilità rilevata, si riscontrasse un falso positivo (:ref:`vulnerabilityManagement_skip_registry`), 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 :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis_skip`. 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 :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis_sbom`. L'SBOM documenta formalmente tutte le dipendenze del progetto. .. note:: 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: :: ... .... .... * * .. toctree:: :maxdepth: 2 ci_jenkins maven skip sbom