Abilitazione della conformità continua nel ciclo di sviluppo del software applicativo
Sfruttando DevSecOps per automatizzare l'integrazione della sicurezza in ogni fase del ciclo di vita dello sviluppo dell'applicazione aziendale, si affrontano i problemi di sicurezza nel momento in cui emergono, rendendoli più facili, più veloci e meno costosi da risolvere. Utilizzando l'architettura distribuibile di DevSecOps Application Lifecycle Management, è possibile sfruttare i due principali vantaggi dell'utilizzo di DevSecOps,: velocità e sicurezza.
Durante tutto il ciclo di sviluppo, il codice viene esaminato, scansionato e testato per problemi di sicurezza. Questa sicurezza integrata consente al tuo team di rilevare i problemi in anticipo e riduce le revisioni duplicate e le ricompilazioni non necessarie, ottenendo un codice più sicuro che viene consegnato più velocemente. Poiché DevSecOps integra la scansione delle vulnerabilità e le patch nel ciclo di sviluppo e di rilascio, la capacità di identificare e applicare le patch alle vulnerabilità ed esposizioni comuni (CVE) è aumentata. Ciò limita la finestra che un attore di minaccia deve sfruttare per sfruttare le vulnerabilità dei sistemi di produzione pubblici. Inoltre, è inclusa la conformità continua con la scansione periodica delle applicazioni in produzione.
L'implementazione della scansione e del test automatizzati può garantire che le dipendenze software incorporate siano a livelli di patch appropriati e confermare che il software superi il test dell'unità di protezione. Inoltre, può testare e convalidare il codice per la sicurezza con analisi statiche e dinamiche. La prova dei risultati della scansione viene archiviata, raccolta e riepilogata in modo sicuro come parte di un processo di gestione delle modifiche automatizzato che cancelli le distribuzioni, prima che le modifiche vengano promosse alla produzione.
Esaminate le sezioni seguenti per ottenere una panoramica dei passaggi essenziali per garantire la sicurezza del ciclo di vita dello sviluppo dell'applicazione utilizzando gli strumenti di IBM Cloud DevSecOps.
Impostazione dell'architettura di sviluppo software sicura
L'architettura distribuibile di DevSecOps Application Lifecycle Management semplifica il processo di creazione della supply chain del software sicuro utilizzando una serie di modelli di toolchain di integrazione continua (CI), distribuzione continua (CD) e conformità continua (CC). Questi template utilizzano una raccolta di integrazioni di strumenti e pipeline Tekton di riferimento personalizzabili per le applicazioni di build, scansione, test, gestione delle modifiche e distribuzione.
Le pipeline Tekton forniscono un framework di script personalizzati che è possibile utilizzare per garantire l'orchestrazione automatica e conforme delle modifiche di codice e configurazione. Le pipeline conservano un inventario di release GitOps mentre raccolgono e memorizzano le prove che possono essere utilizzate per generare richieste di modifica controllabili. Inoltre, la pipeline di conformità continua esegue periodicamente la scansione delle risorse distribuite e dei repository del codice sorgente associati per rilevare eventuali vulnerabilità.
Per ulteriori informazioni sulla configurazione dell'architettura distribuibile in base alle proprie esigenze, consultare la guida alla distribuzione DevSecOps. Puoi utilizzare un progetto per distribuire questa architettura in tutti i tuoi ambienti di sviluppo dell'applicazione, in modo che il team di sviluppo possa adottare un approccio di tipo shift - left identificando i rischi di sicurezza e le esposizioni in anticipo, in modo che vengano affrontati prima che il codice raggiunga la produzione.
Garantire la continua conformità con la pipeline CC
Le pipeline CI/CD assicurano che il codice dell'applicazione che il tuo team sviluppa sia sicuro e privo di vulnerabilità prima che il codice venga inviato alla produzione. Una volta che il tuo codice raggiunge la produzione, puoi utilizzare la pipeline CC per scansionare continuamente il tuo codice di produzione alla ricerca di nuove vulnerabilità. La pipeline CC può essere attivata manualmente o periodicamente utilizzando i trigger.
La pipeline CC esegue la scansione delle risorse utente distribuite esistenti e dei loro repository di origine indipendentemente dalla pianificazione della distribuzione. Esegue le scansioni statiche e dinamiche sul codice sorgente dell'applicazione, rileva i segreti nei repository Git, controllo BOM (Bill Of Materials), controllo CIS e scansione Vulnerability Advisor.
Gestione dei problemi e raccolta delle prove per essere pronti per il controllo
Dopo la scansione e l'esecuzione dei controlli sulle risorse utente e sui repository di origine, la pipeline crea un nuovo problema di incidente o aggiorna i problemi di incidente esistenti nel repository di incidenti. Infine, utilizzando questi problemi e i risultati, la pipeline raccoglie le prove e riepiloga le prove.
Vengono riportati due tipi di problemi dalle pipeline CI e CC: problemi di incidente e problemi non di incidente. I problemi di incidente possono verificarsi a causa di vulnerabilità o CVE trovate all'interno del codice o delle risorse utente distribuite, e i problemi non di incidente non derivano dalle vulnerabilità, ma piuttosto rappresentano una deviazione dalla posizione di conformità, ad esempio, errori di test dell'unità e errori di controllo della protezione del ramo. Per ulteriori informazioni sulla gestione dei problemi, vedi Elaborazione dei problemi di incidente e non incidente e Gestione dei problemi di incidente
La prova di conformità crea la traccia che gli auditor cercano durante un controllo di conformità. Uno degli obiettivi di DevSecOps è la generazione e l'archiviazione automatica delle prove in richieste di modifica verificabili e armadietti per prove durevoli. Per ulteriori informazioni, vedi Prova.