Esplorare l'analisi della composizione del software

Completato

Due aree cruciali della pipeline Secure DevOps sono la gestione dei pacchetti e i componenti software open source (OSS).

Gestione pacchetti

Proprio come i team usano il controllo della versione come unica fonte di verità per il codice sorgente, Secure DevOps si basa su un servizio di gestione pacchetti come origine univoca dei componenti binari.

Usando la gestione dei pacchetti binari, un team di sviluppo può creare una cache locale di componenti approvati e un feed attendibile per la pipeline di integrazione continua (CI).

In Azure DevOps, Azure Artifacts è parte integrante del flusso di lavoro dei componenti per organizzare e condividere l'accesso ai pacchetti. Azure Artifacts consente di:

  • Mantenere organizzati gli artefatti. Condividere facilmente il codice archiviando insieme i pacchetti Apache Maven, npm e NuGet. È possibile archiviare i pacchetti usando Universal Packages, eliminando il mantenimento dei file binari in Git.
  • Proteggere i pacchetti. Mantenere ogni pacchetto di origine pubblico usato, inclusi i pacchetti da npmjs e NuGet.org, al sicuro nel feed dove solo chi lo ha inserito può eliminarlo ed è supportato dal Contratto di servizio di Azure di livello aziendale.
  • Integrare la gestione dei pacchetti senza problemi nella pipeline di integrazione continua (CI)/sviluppo continuo (CD). Accedere facilmente a tutti gli artefatti nelle compilazioni e nelle versioni. Azure Artifacts si integra in modo nativo con lo strumento CI/CD di Azure Pipelines.

Per altre informazioni su Azure Artifacts, visitare la pagina Web. Che cos'è Azure Artifacts?

Versioni e compatibilità

Nella tabella seguente sono elencati i tipi di pacchetto supportati da Azure Artifacts. Viene visualizzata anche la disponibilità di ogni pacchetto in Azure DevOps Services.

La tabella seguente illustra in dettaglio la compatibilità di ogni pacchetto con versioni specifiche di Azure DevOps Server, noto in precedenza come Team Foundation Server (TFS).

Funzionalità Servizi di Azure DevOps TFS
NuGet TFS 2017
npm Aggiornamento 1 di TFS 2017 e versioni successive
Maven Aggiornamento 1 di TFS 2017 e versioni successive
Gradle TFS 2018
Universale No
Python No

I pacchetti Maven, npm e NuGet possono essere supportati con i team di qualsiasi dimensione di origini pubbliche e private. Azure Artifacts include Azure DevOps, ma l'estensione è disponibile anche da Visual Studio Marketplace.

Screenshot of Azure DevOps with Artifacts highlighted in the menu pane.

Nota

Dopo aver pubblicato una determinata versione del pacchetto in un feed, tale numero di versione è riservato in modo definitivo.

Nota

Non è possibile caricare un pacchetto di revisione più recente con lo stesso numero di versione o eliminare la versione e caricare un nuovo pacchetto con lo stesso numero di versione. La versione pubblicata non è modificabile.

Ruolo dei componenti software open source

Il lavoro di sviluppo è più produttivo a causa dell'ampia disponibilità di componenti software open source (OSS) riutilizzabili.

Questo approccio pratico del riutilizzo include i runtime, disponibili nei sistemi operativi Windows e Linux, ad esempio Microsoft .NET Core e Node.js.

Tuttavia, il riutilizzo del componente OSS presenta il rischio che le dipendenze riutilizzate possano essere vulnerabili in termini di sicurezza. Di conseguenza, molti utenti riscontrano vulnerabilità di sicurezza nelle proprie applicazioni a causa delle versioni del pacchetto Node.js che usano.

L'OSS si basa su un nuovo concetto denominato analisi della composizione del software (SCA, Software Composition Analysis) per risolvere questi problemi di sicurezza, illustrato nell'immagine seguente.

Screenshot of an image of the workflow for safely creating open-source dependencies.

Quando si usa un componente OSS, che si creino o si usino le dipendenze, solitamente si seguono questi passaggi generali:

  1. Iniziare con la versione più recente e corretta per evitare vulnerabilità precedenti o usi impropri delle licenze.
  2. Verificare che i componenti OSS siano i file binari corretti per la versione. Nella pipeline di versione verificare i file binari per garantire l'accuratezza e mantenere una distinta base tracciabile.
  3. Ottenere immediatamente notifiche di vulnerabilità del componente, correggerle e ridistribuire automaticamente il componente per risolvere le vulnerabilità di sicurezza o l'uso improprio delle licenze del software riutilizzato.