Usare il controllo npm per rilevare e correggere le vulnerabilità del pacchetto
Servizi di Azure DevOps
Il comando npm audit esegue un'analisi approfondita del progetto, identificando potenziali vulnerabilità di sicurezza e generando un report dettagliato che evidenzia eventuali problemi rilevati. L'esecuzione di controlli di sicurezza è un passaggio fondamentale per riconoscere e risolvere le vulnerabilità all'interno delle dipendenze del progetto. Il comando npm audit fix risolve automaticamente le vulnerabilità rilevate, aggiornando le versioni dei pacchetti non sicure alle versioni sicure più recenti. Risolvere queste vulnerabilità è fondamentale per prevenire potenziali problemi come la perdita di dati, le interruzioni del servizio e l'accesso non autorizzato alle informazioni riservate.
Avviso
L'esecuzione del controllo npm trasmetterà i nomi di tutti i pacchetti specificati nel package.json al registro pubblico.
Eseguire il controllo npm in locale
npm audit
può essere eseguito in locale senza dover eseguire l'autenticazione con il feed. In questo modo è possibile analizzare il progetto per individuare le vulnerabilità e ricevere un report dettagliato sui problemi di sicurezza rilevati e sulla relativa gravità.
Se si desidera correggere le vulnerabilità rilevate, è possibile eseguire npm audit fix
, ma è necessario essere autenticati con il feed per farlo. Questo comando aggiorna le versioni dei pacchetti non sicure alle versioni sicure più recenti disponibili.
Quando si esegue la correzione del controllo npm, non solo aggiorna il package.json del progetto locale e package-lock.json, ma sincronizza anche queste modifiche con il feed azure Artifacts associato. Le nuove versioni protette dei pacchetti saranno automaticamente disponibili nel feed.
Questa sincronizzazione garantisce che anche altri progetti che condividono lo stesso feed trarranno vantaggio da questi aggiornamenti. Consente di mantenere un set coerente e sicuro di versioni dei pacchetti in tutti i progetti.
Eseguire il comando seguente nella directory del progetto per eseguire un controllo npm:
npm audit
Se si vuole tentare di eseguire l'aggiornamento a versioni di pacchetti non vulnerabili, assicurarsi di essere connessi prima al feed , quindi eseguire il comando seguente nella directory del progetto:
npm audit fix
Dopo aver eseguito la correzione del controllo npm, assicurarsi di eseguire un test approfondito sull'applicazione per verificare che gli aggiornamenti non introducono modifiche di rilievo. Se una correzione richiede un aggiornamento della versione principale, è consigliabile esaminare le note sulla versione del pacchetto per eventuali potenziali modifiche di rilievo. Tenere presente che, mentre un pacchetto privato con dipendenze pubbliche vulnerabili riceve avvisi di vulnerabilità, non riceverà correzioni tramite npm audit fix.
Nota
npm audit viene eseguito automaticamente con ogni esecuzione di npm install, ma funziona solo per i pacchetti pubblici.
Eseguire il controllo npm dalla pipeline
Azure Pipelines attualmente non supporta il controllo npm. Se si prova a usare il normale comando di controllo npm nella pipeline, l'operazione avrà esito negativo. Eseguire invece il controllo npm con l'argomento --registry e fornire l'URL di origine del feed.
Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.
Selezionare Pipeline, selezionare la pipeline e quindi selezionare Modifica per modificarla.
Nella definizione della pipeline selezionare il
+
segno per aggiungere una nuova attività.Cercare l'attività npm e quindi selezionare Aggiungi per aggiungerla alla pipeline.
Immettere un nome visualizzato per l'attività e selezionare personalizzato dal menu a discesa Comando .
Incollare il comando personalizzato nella casella di testo Comando e argomenti :
Usare il comando seguente per eseguire un controllo npm e analizzare le vulnerabilità del pacchetto. Sostituire il segnaposto con l'URL di origine del feed:
audit --registry=<FEED_SOURCE_URL>
Se si vuole tentare di eseguire l'aggiornamento a versioni di pacchetti non vulnerabili, usare il comando seguente. Sostituire il segnaposto con l'URL di origine del feed:
audit fix --registry=<FEED_SOURCE_URL>