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 Oracle Cloud Infrastructure (OCI) DevOps 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 le misure di sicurezza che vengono applicate quando si utilizzano le strategie DevOps e come dare priorità alle strategie per migliorare la sicurezza. Ad esempio, utilizzare il modello per determinare come eseguire il test di ogni componente, ad esempio le librerie di applicazioni e le librerie del sistema operativo nelle immagini del docker, per individuare le 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 come GitHub e GitLab, creare un token di accesso personale (PAT) in GitHub o GitLab, quindi memorizzare il PAT in un vault OCI.
-
Le modifiche vengono impegnate nello 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.
- Eseguire il push dell'immagine del contenitore appena creata in un repository di Oracle Cloud Infrastructure Registry con la funzionalità di scansione abilitata. Quindi 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 alla 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, la procedura ottimale nella pipeline di distribuzione consiste nell'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 e quindi fornisce l'approvazione manualmente.
-
Quando la pipeline di distribuzione è stata approvata, l'applicazione e il codice vengono distribuiti nelle piattaforme OCI nel tuo ambiente di produzione che includono: istanze di computazione (virtual machine e bare metal), Container Engine for Kubernetes (cluster Kubernetes gestito) e OCI Functions (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), Log 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 sistemi di ticketing (ad esempio, ServiceNow) o 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 governance solida incentrata sulle funzioni di sicurezza, come Identity and Access Management (IAM) e PAM (privileged access management). Il processo deve anche definire i ruoli per il modello DevSecOps, fornire una formazione adeguata e rimanere aggiornati sulle tecniche di sicurezza più recenti.
-
Automatizza i processi e gli strumenti di sicurezza di DevOps.
Utilizza l'automazione nel processo DevOps per ridurre i rischi derivanti da errori umani e incidenti di sicurezza. L'uso di strumenti più efficienti e l'automazione si traduce in processi di sicurezza DevOps più veloci 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 continuamente tutti i dispositivi, gli strumenti e gli account in conformità con i 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. Si consiglia di integrare le linee guida OOWASP DevSecOps con i test di sicurezza DevSecOps.
-
Accesso sicuro con la gestione dei segreti DevOps.
Quando si implementano i processi DevOps, assegnare 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 IAM Policies, Logging e Monitoring 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 zona di destinazione self-service, che soddisfa il benchmark CIS Foundations per Oracle Cloud.
Visualizza altro
Per ulteriori informazioni, consultare le risorse elencate di seguito.