Esegui il deployment delle applicazioni in sicurezza

Last reviewed 2023-08-08 UTC

Questo documento nel framework dell'architettura Google Cloud fornisce le best practice per il deployment sicuro delle applicazioni.

Per eseguire il deployment di applicazioni sicure, devi avere un ciclo di vita di sviluppo del software ben definito, con controlli di sicurezza appropriati durante le fasi di progettazione, sviluppo, test e deployment. Quando progetti un'applicazione, ti consigliamo un'architettura di sistema a più livelli che utilizza framework standardizzati per il controllo dell'identità, dell'autorizzazione e degli accessi.

Automatizza le release sicure

Senza strumenti automatizzati, può essere difficile eseguire il deployment, aggiornare e applicare patch ad ambienti applicativi complessi per soddisfare requisiti di sicurezza coerenti. Ti consigliamo quindi di creare una pipeline CI/CD per queste attività, in modo da risolvere molti di questi problemi. Le pipeline automatizzate rimuovono gli errori manuali, forniscono loop di feedback di sviluppo standardizzati e consentono iterazioni del prodotto rapide. Ad esempio, i pool privati di Cloud Build consentono di eseguire il deployment di una pipeline CI/CD gestita e altamente sicura per settori altamente regolamentati, tra cui finanza e sanità.

Puoi utilizzare l'automazione per analizzare le vulnerabilità di sicurezza quando vengono creati gli artefatti. Puoi anche definire criteri per ambienti diversi (sviluppo, test, produzione e così via) in modo che venga eseguito il deployment solo degli artefatti verificati.

Assicurarsi che i deployment delle applicazioni seguano i processi approvati.

Se un utente malintenzionato compromette la tua pipeline CI/CD, l'intero stack potrebbe essere interessato. Per proteggere la pipeline, devi applicare un processo di approvazione stabilito prima di eseguire il deployment del codice in produzione.

Se prevedi di utilizzare Google Kubernetes Engine (GKE) o GKE Enterprise, puoi stabilire questi controlli e bilanciamenti utilizzando Autorizzazione binaria. Autorizzazione binaria collega le firme configurabili alle immagini container. Queste firme (chiamate anche attestations) aiutano a convalidare l'immagine. Al momento del deployment, Autorizzazione binaria utilizza queste attestazioni per determinare che un processo è stato completato in precedenza. Ad esempio, puoi utilizzare Autorizzazione binaria per:

  • Verifica che un sistema di compilazione specifico o una pipeline di integrazione continua (CI) abbia creato un'immagine container.
  • Convalida che un'immagine container sia conforme a un criterio di firma delle vulnerabilità.
  • Verifica che un'immagine container superi i criteri per la promozione nell'ambiente di deployment successivo, ad esempio dallo sviluppo al QA.

Analizza le vulnerabilità note prima del deployment

Ti consigliamo di utilizzare strumenti automatizzati in grado di eseguire continuamente analisi delle vulnerabilità sulle immagini container prima del deployment dei container in produzione.

Utilizza Artifact Analysis per analizzare automaticamente le vulnerabilità per i container archiviati in Artifact Registry e Container Registry. Questo processo prevede due attività: scansione e analisi continua.

Per iniziare, Artifact Analysis analizza le nuove immagini quando vengono caricate su Artifact Registry o Container Registry. La scansione estrae informazioni sui pacchetti di sistema nel container.

Artifact Analysis quindi cerca le vulnerabilità quando carichi l'immagine. Dopo la scansione iniziale, Artifact Analysis monitora costantemente i metadati delle immagini scansionate in Artifact Registry e Container Registry per rilevare nuove vulnerabilità. Quando Artifact Analysis riceve informazioni nuove e aggiornate sulle vulnerabilità da origini di vulnerabilità, compie quanto segue:

  • Consente di aggiornare i metadati delle immagini scansionate per mantenerle aggiornate.
  • Crea nuove occorrenze di vulnerabilità per le nuove note.
  • Elimina le occorrenze di vulnerabilità non più valide.

Monitorare il codice dell'applicazione per verificare la presenza di vulnerabilità note.

Come best practice, conviene utilizzare strumenti automatizzati in grado di monitorare costantemente il codice dell'applicazione per individuare vulnerabilità note come OWASP Top 10. Per una descrizione dei prodotti e delle funzionalità di Google Cloud che supportano le 10 principali tecniche di mitigazione OWASP, consulta Le 10 principali opzioni di mitigazione OWASP su Google Cloud.

Utilizza Web Security Scanner per identificare le vulnerabilità di sicurezza nelle applicazioni web di App Engine, Compute Engine e Google Kubernetes Engine. Lo scanner esegue la scansione dell'applicazione, seguendo tutti i link nell'ambito degli URL di partenza e tenta di utilizzare il maggior numero possibile di input utente e gestori di eventi. È in grado di analizzare e rilevare automaticamente le vulnerabilità comuni, tra cui cross-site scripting (XSS), Flash injection, contenuti misti (HTTP in HTTPS) e librerie obsolete o non sicure. Web Security Scanner consente di identificare in anticipo questi tipi di vulnerabilità con basse percentuali di falsi positivi.

Controlla lo spostamento dei dati attraverso i perimetri

Per controllare lo spostamento dei dati attraverso un perimetro, puoi configurare perimetri di sicurezza intorno alle risorse dei servizi gestiti da Google. Utilizza Controlli di servizio VPC per posizionare tutti i componenti e i servizi nella pipeline CI/CD (ad esempio Container Registry, Artifact Registry, Artifact Analysis e Autorizzazione binaria) all'interno di un perimetro di sicurezza.

I Controlli di servizio VPC migliorano la tua capacità di ridurre il rischio di copia o trasferimento non autorizzati dei dati (esfiltrazione di dati) dai servizi gestiti da Google. Con i Controlli di servizio VPC, puoi configurare i perimetri di sicurezza intorno alle risorse dei tuoi servizi gestiti da Google per controllare lo spostamento dei dati attraverso i confini del perimetro. Quando viene applicato un perimetro di servizio, le richieste che violano il criterio del perimetro vengono rifiutate, ad esempio quelle inviate ai servizi protetti dall'esterno di un perimetro. Quando un servizio è protetto da un perimetro in modalità di applicazione forzata, i Controlli di servizio VPC assicurano quanto segue:

  • Un servizio non può trasmettere dati fuori dal perimetro. I servizi protetti funzionano normalmente all'interno del perimetro, ma non possono inviare risorse e dati fuori dal perimetro. Questa limitazione contribuisce a impedire l'esfiltrazione di dati da parte di utenti malintenzionati interni che potrebbero avere accesso ai progetti nel perimetro.
  • Le richieste provenienti dall'esterno del perimetro al servizio protetto vengono soddisfatte solo se soddisfano i criteri dei livelli di accesso assegnati al perimetro.
  • È possibile rendere accessibile un servizio ai progetti in altri perimetri utilizzando i bridge perimetrali.

Cripta le immagini container

In Google Cloud, puoi criptare le immagini container utilizzando chiavi di crittografia gestite dal cliente (CMEK). Le chiavi CMEK sono gestite in Cloud Key Management Service (Cloud KMS). Quando utilizzi CMEK, puoi disabilitare temporaneamente o definitivamente l'accesso a un'immagine del container criptata disattivando o distruggendo la chiave.

Passaggi successivi

Scopri di più sulla protezione della catena di fornitura e della sicurezza delle applicazioni con le seguenti risorse: