Integrare i controlli di analisi della composizione software nelle pipeline

Completato

L'analisi della sicurezza è stata considerata come un'attività che è stata completata una volta per ogni rilascio da parte di un team di sicurezza dedicato i cui membri hanno avuto poco coinvolgimento con altri gruppi.

Questa pratica crea un modello pericoloso in cui gli specialisti della sicurezza trovano grandi batch di problemi nel momento esatto in cui gli sviluppatori sono sotto la massima pressione per rilasciare un prodotto software.

La pressione spesso comporta la distribuzione del software con vulnerabilità di sicurezza che devono essere risolte dopo il rilascio di un prodotto, integrando l'analisi nel flusso di lavoro di un team in più punti lungo il percorso di sviluppo. Secure DevOps consente di eseguire tutte le attività di controllo di qualità, tra cui sicurezza, continua e automatizzata.

Integrazione dell'analisi del codice della richiesta pull.

I team DevOps possono inviare modifiche proposte alla codebase (principale) di un'applicazione usando richieste pull.DevOps teams can submit proposed changes to an application's (main) codebase using pull requests (PRS). Per evitare di introdurre nuovi problemi, gli sviluppatori devono verificare gli effetti al codice delle modifiche prima di creare una pull request. Una PR viene generalmente effettuata per ogni piccola modifica nel processo DevOps. Le modifiche vengono unite continuamente alla codebase principale per mantenere aggiornata la codebase principale. Idealmente, uno sviluppatore dovrebbe verificare la presenza di problemi di sicurezza prima di creare una pull request.

Le estensioni di Azure Marketplace che consentono di integrare le analisi durante i pull request includono:

  • Mend. Aiuta a convalidare le dipendenze con l'impronta digitale binaria.
  • Checkmarx. Fornisce un'analisi incrementale delle modifiche.
  • Veracode. Implementa il concetto di sandbox per sviluppatori.
  • Black Duck di Synopsis. Strumento di controllo per il codice open source per identificare, correggere e gestire la conformità.

Queste estensioni consentono agli sviluppatori di sperimentare le modifiche prima di inviarle come pull request.

Scansione, analisi e integrazione del codice nella definizione di build e rilascio

Gli sviluppatori devono ottimizzare la velocità dell'integrazione continua per ottenere un feedback immediato sui problemi di compilazione. L'analisi del codice può essere eseguita abbastanza rapidamente per integrare la definizione di compilazione CI, impedendo una compilazione interrotta. Consente agli sviluppatori di ripristinare lo stato di una compilazione su pronto/verde correggendo immediatamente i potenziali problemi.

Allo stesso tempo, il CD deve essere completo. In Azure DevOps il CD viene in genere gestito tramite definizioni di versione (che avanzano l'output della compilazione in ambienti) o altre definizioni di compilazione.

Le definizioni di compilazione possono essere pianificate (ad esempio, giornalmente) o attivate con ogni commit. In entrambi i casi, la definizione di compilazione può eseguire un'analisi statica più lunga , come illustrato nell'immagine seguente.

È possibile analizzare il progetto di codice completo ed esaminare eventuali errori o avvisi offline senza bloccare il flusso CI.

Diagramma che mostra un flusso di lavoro che delinea come una definizione di compilazione può attivare un'analisi statica del codice sorgente.