DevOps Sfide e considerazioni sulla sicurezza
L'introduzione della metodologia infrastructure as code (IaC) ha richiesto alle organizzazioni di adattarsi rapidamente e implementare nuovi processi per operare, sviluppare e gestire le applicazioni in ambienti diversi, come on-premise e multicloud. Un aumento dei processi e della velocità può portare a lacune nella sicurezza. Di conseguenza, i processi sono stati perfezionati nel tempo per implementare cicli di distribuzione e rilascio dei prodotti più efficienti e sicuri. I nuovi processi di sicurezza integrati con la metodologia IaC sono indicati come DevSecOps.
Utilizza il servizio DevOps di Oracle Cloud Infrastructure (OCI) per raggiungere i tuoi obiettivi DevOps.
Il servizio DevOps OCI è una piattaforma completa di integrazione continua e distribuzione continua (CI/CD) per semplificare e automatizzare il ciclo di vita dello sviluppo software. Il servizio DevOps consente la collaborazione per lo sviluppo, la creazione, il test e la distribuzione di software. Hai visibilità sul ciclo di vita dello sviluppo e ottieni una cronologia dei commit di origine attraverso le fasi di creazione, test e distribuzione.
Durante il processo di definizione DevSecOps, è necessario analizzare i componenti della pipeline CI/CD nel processo di distribuzione per rafforzare le difese di sicurezza. Considera anche come migliorare il codice sorgente e proteggere i repository di codici.
Come funziona DevSecOps e perché ne hai bisogno
Gli obiettivi della metodologia DevOps sono sempre stati aumentare l'efficienza e accelerare la produzione di implementazione. Gli obiettivi di DevSecOps sono gli stessi di DevOps, con l'aggiunta della protezione di tutti i componenti utilizzati nei vari processi di distribuzione.
DevSecOps è una responsabilità condivisa con tutte le parti interessate, inclusi il provider cloud, i tecnici di DevOps, i tecnici di test, i proprietari delle applicazioni e gli analisti della sicurezza. È necessario trovare il giusto equilibrio per mantenere velocità e agilità durante il ciclo di vita del software, mantenendo al contempo il livello appropriato di sicurezza end-to-end.
Il DevSecOps Maturity Model (DSOMM) fornisce misure di sicurezza applicate quando si utilizzano le strategie DevOps e come assegnare loro priorità per migliorare la sicurezza. Ad esempio, utilizzare il modello per determinare come sottoporre a test ogni componente, ad esempio le librerie di applicazioni e le librerie del sistema operativo nelle immagini docker, per individuare vulnerabilità note.
Applicazione di DevSecOps in OCI
Le informazioni riportate di seguito forniscono il tipico flusso di lavoro DevSecOps che sfrutta le funzioni OCI.
Uno sviluppatore crea codice all'interno di un repository (ad esempio, nel servizio DevOps con criteri/autorizzazione e repository di codici di terze parti come GitHub e GitLab). Per eseguire l'integrazione con repository di codici di terze parti, ad esempio GitHub e GitLab, creare un PAT (Personal Access Token) in GitHub o GitLab, quindi memorizzare il PAT in un vault OCI.
Le modifiche si basano sullo strumento di integrazione continua e distribuzione continua (CI/CD) da creare.
Lo strumento CI/CD può eseguire una delle seguenti operazioni:
- Può richiamare uno strumento di terze parti per l'analisi di codice statico e dinamico per identificare eventuali difetti o bug di sicurezza nella qualità del codice come Sonatype, SonarQube o OverOps.
- Esegui il push dell'immagine del container di nuova creazione in un repository di Oracle Cloud Infrastructure Registry con funzionalità di scansione abilitata. Successivamente, lo strumento CI/CD ottiene i risultati della scansione delle immagini utilizzando l'API REST di analisi delle vulnerabilità. In base ai risultati della scansione delle immagini, lo strumento CI/CD può quindi determinare se spostare l'immagine nella fase successiva del ciclo di vita.
Se l'analisi del codice o la scansione delle immagini viene superata, vengono eseguiti test automatici, ad esempio sicurezza, integrazione API e test dell'interfaccia utente.
Quando l'applicazione e il codice superano questi test, all'interno della pipeline di distribuzione si consiglia di aggiungere un'approvazione della fase di controllo. Una fase di approvazione sospende la distribuzione per un periodo di tempo specificato, durante il quale un approvatore riceve la notifica delle distribuzioni, quindi fornisce manualmente l'approvazione.
Una volta approvata la pipeline di distribuzione, l'applicazione e il codice vengono distribuiti nelle piattaforme OCI nell'ambiente di produzione che includono i cluster istanze di computazione (virtual machine e bare metal), Container Engine for Kubernetes (Kubernetes gestito) e funzioni OCI (funzioni serverless).
L'ambiente in cui viene distribuita l'applicazione deve essere monitorato continuamente per identificare i problemi di sicurezza. Inoltre, esegui il monitoraggio classico delle metriche e dei log dei servizi utilizzando servizi OCI come Application Performance Monitoring (APM), Logging e Monitoring. Configura i sistemi di monitoraggio per rispondere rapidamente alle minacce alla sicurezza utilizzando funzioni OCI native, come le notifiche. È inoltre possibile integrare i log con i sistemi di ticketing (ad esempio, ServiceNow) o i sistemi SIEM di terze parti.
DevSecOps Procedure ottimali
Si consiglia le seguenti best practice DevSecOps.
Applica criteri e governance.
Un processo DevSecOps di successo aderisce e implementa una solida governance incentrata su funzioni di sicurezza, come Identity and Access Management (IAM) e PAM (privileged access management). Il processo deve inoltre definire i ruoli per il modello DevSecOps, fornire una formazione adeguata e rimanere aggiornato sulle più recenti tecniche di sicurezza.
Automatizza i processi e gli strumenti di sicurezza di DevOps.
Utilizza l'automazione nel tuo processo DevOps per ridurre i rischi derivanti da errori umani e incidenti di sicurezza. L'uso di strumenti e automazione più efficienti garantisce processi di sicurezza DevOps più rapidi e applicazioni più resilienti. OCI fornisce strumenti di sicurezza per l'analisi del codice, la gestione della configurazione, l'applicazione di patch e la gestione delle vulnerabilità con Gestione del sistema operativo e Oracle Vulnerability Scanning Service. La gestione delle credenziali e dei segreti con privilegi viene fornita con Vault.
Esegui una scoperta completa.
Convalida, monitora e includi costantemente tutti i dispositivi, gli strumenti e gli account in conformità ai tuoi criteri di sicurezza. Questo processo consente di allineare gli asset OCI per adottare un modello di sicurezza Zero Trust.
Eseguire la gestione delle vulnerabilità.
Tutti i tipi di vulnerabilità devono essere considerati, catalogati, convalidati e corretti prima che la distribuzione dell'applicazione entri in produzione. Ti consigliamo di integrare le Linee guida su OWASP DevSecOps con i tuoi test di sicurezza DevSecOps.
Accesso sicuro con la gestione dei segreti DevOps.
Quando implementi i processi DevOps, dai la priorità alla gestione della sicurezza e del ciclo di vita delle credenziali e degli account di identità nel codice. Vault può aiutarti a ottenere la gestione dei segreti.
Controlla, monitora e controlla l'accesso con privilegi di gestione degli accessi.
L'adozione di servizi OCI come IAM, DevOps Criteri IAM, Log e Monitoraggio può aiutarti a gestire l'accesso con privilegi.
Reti di segmento.
Quando si definiscono i processi DevOps, è necessario segmentare le reti per ridurre le superfici di attacco isolando ambienti di lavoro diversi (ad esempio, isolando la produzione dagli ambienti di test di sviluppo).
Per ulteriori informazioni, consulta la Self-Service Landing Zone, che soddisfa il benchmark CIS Foundations per Oracle Cloud.
Visualizza altro
Per ulteriori informazioni, consultare le risorse elencate di seguito.