Integrare i controlli dell'analisi della composizione del software nelle pipeline
La scansione di sicurezza era considerata un'attività che veniva completata una volta per rilascio da un team di sicurezza dedicato i cui membri avevano poco coinvolgimento con altri gruppi.
Questa pratica costituisce un modello pericoloso in cui gli specialisti della sicurezza riscontrano numerosi problemi proprio durante il rilascio di un prodotto software, ovvero il momento in cui gli sviluppatori sono maggiormente sotto pressione.
La pressione si concretizza spesso nella distribuzione di software che presenta vulnerabilità di sicurezza che devono essere affrontate dopo il rilascio del prodotto, integrando la scansione nel flusso di lavoro di un team in più punti del percorso di sviluppo. Secure DevOps consente di rendere tutte le attività di garanzia della qualità, inclusa la sicurezza, continue e automatizzate.
Integrazione dell'analisi della scansione del codice delle richieste pull.
I team DevOps possono usare le richieste pull per inviare le modifiche proposte alla codebase principale di un'applicazione. Per evitare di introdurre nuovi problemi, gli sviluppatori devono verificare gli effetti delle modifiche apportate al codice prima di creare una richiesta pull. In genere viene creata una PR per ogni piccola modifica in un processo DevOps. Per mantenere aggiornata la codebase principale, viene eseguito continuamente il merge delle modifiche. Idealmente, uno sviluppatore deve verificare la presenza di problemi di sicurezza prima di creare una PR.
Le estensioni di Azure Marketplace che consentono di integrare le analisi durante le PR includono:
- Mend. Consente di 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 Synopsys. Strumento di controllo per il codice open source per identificare, correggere e gestire la conformità.
Queste estensioni consentono agli sviluppatori di valutare le modifiche prima di inviarle come richiesta pull.
Analisi e integrazione del codice di definizione di compilazione e versione
Gli sviluppatori devono ottimizzare l'integrazione continua per la velocità al fine di ottenere un feedback immediato sui problemi di compilazione. L'analisi del codice può essere eseguita abbastanza rapidamente per integrare la definizione di compilazione dell'integrazione continua, impedendo l'interruzione della compilazione. Consente agli sviluppatori di ripristinare lo stato di una compilazione in modo che sia pronto/verde correggendo immediatamente i potenziali problemi.
Allo stesso tempo, la distribuzione continua deve essere accurata. In Azure DevOps la distribuzione continua viene in genere gestita tramite definizioni di versione (che fanno avanzare l'output della compilazione nei vari ambienti) o altre definizioni di compilazione.
Le definizioni di compilazione possono essere pianificate (giornaliere) o attivate a 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 di integrazione continua.