Esegui il deployment delle applicazioni in sicurezza

Last reviewed 2023-08-08 UTC

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

Per eseguire il deployment di applicazioni sicure, devi avere un software ben definito ciclo di sviluppo del prodotto, con adeguati controlli di sicurezza durante la progettazione, di sviluppo, test e deployment. Quando progetti un'applicazione, consigliamo un'architettura di sistema a più livelli che utilizzi framework standardizzati di identità, autorizzazione e controllo dell'accesso.

Automatizza le release sicure

Senza strumenti automatici, può essere difficile eseguire il deployment, l'aggiornamento e l'applicazione di patch a ambienti di applicazioni complessi per soddisfare requisiti di sicurezza coerenti. Pertanto, consigliamo di creare una pipeline CI/CD per queste attività, che può risolvere molti di questi problemi. Le pipeline automatiche rimuovono gli errori manuali, forniscono loop di feedback di sviluppo standardizzati e consentono rapide iterazioni dei prodotti. Ad esempio, Cloud Build pool privati consentono di eseguire il deployment pipeline CI/CD gestita e molto sicura per settori altamente regolamentati, tra cui finanza e sanità.

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

Assicurarsi che i deployment delle applicazioni seguano i processi approvati.

Se un utente malintenzionato compromette la tua pipeline CI/CD, l'intero stack può essere interessati. Per proteggere la pipeline, devi applicare in modo forzato una procedura di approvazione 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 contrappesi utilizzando l'Autorizzazione binaria. Autorizzazione binaria associa firme configurabili alle immagini container. Queste firme (chiamate anche attestazioni) contribuiscono a convalidare l'immagine. Alle ore Autorizzazione binaria utilizza queste attestazioni per determinare che un processo è stata completata in precedenza. Ad esempio, puoi utilizzare Autorizzazione binaria per:

  • Verifica che un sistema di compilazione o una pipeline di integrazione continua (CI) specifica abbia creato un'immagine contenitore.
  • Verifica che un'immagine container sia conforme a una vulnerabilità criterio di firma.
  • Verifica che un'immagine container superi i criteri per la promozione alla successiva dall'ambiente di deployment, come lo sviluppo al QA.

Analizza le vulnerabilità note prima del deployment

Ti consigliamo di utilizzare strumenti automatici in grado di eseguire continuamente scansioni delle vulnerabilità sulle immagini dei contenitori prima che i contenitori vengano implementati in produzione.

Utilizza le funzionalità di Analisi degli artefatti per analizzare automaticamente le vulnerabilità dei container Artifact Registry. Questa procedura include due attività: scansione e analisi continua.

Per iniziare, Artifact Analysis esegue la scansione delle nuove immagini quando vengono caricate su Artifact Registry. La scansione estrae informazioni sui pacchetti di sistema nel container.

Artifact Analysis cerca quindi le vulnerabilità e carica l'immagine. Dopo la scansione iniziale, Artifact Analysis monitora continuamente i metadati delle immagini sottoposte a scansione in Artifact Registry per rilevare nuove vulnerabilità. Quando l'analisi degli elementi riceve informazioni sulle vulnerabilità nuove e aggiornate dalle sorgenti di vulnerabilità, esegue le seguenti operazioni:

  • Aggiorna i metadati delle immagini scansionate per mantenerli aggiornati.
  • 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.

È buona norma utilizzare strumenti automatici che possono monitorare costantemente il codice dell'applicazione alla ricerca di vulnerabilità note, come quelle elencate nella lista OWASP Top 10. Per una descrizione dei prodotti e delle funzionalità Google Cloud che supportano OWASP le 10 principali tecniche di mitigazione (vedi OWASP Top 10 mitigation options on Google Cloud.

Utilizza Web Security Scanner per identificare le vulnerabilità di sicurezza nelle tue applicazioni web di App Engine, Compute Engine e Google Kubernetes Engine. Lo scanner scansiona l'applicazione, seguendo tutti i link che rientrano nell'ambito degli URL di partenza, e cerca di esercitare il maggior numero possibile di input dell'utente e gestori di eventi. it può scansionare 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 precocemente questi tipi di vulnerabilità con tassi di falsi positivi ridotti.

Controllare il movimento dei dati attraverso i perimetri

Per controllare il movimento dei dati attraverso un perimetro, puoi configurare perimetrali attorno alle risorse dei tuoi servizi gestiti da Google. Utilizza le funzionalità di Controlli di servizio VPC inserire tutti i componenti e i servizi nella pipeline CI/CD (ad esempio, Artifact Registry, Artifact Analysis e Autorizzazione binaria) all'interno di un perimetro di sicurezza.

I Controlli di servizio VPC migliorano la tua capacità di mitigare il rischio di copia o trasferimento non autorizzati di dati (esfiltrazione di dati) dalla gestione di Google i servizi di machine learning. Con i Controlli di servizio VPC, puoi configurare i perimetri di sicurezza le risorse dei tuoi servizi gestiti da Google per controllare il movimento che attraversa il confine del perimetro. Quando viene applicato un perimetro di servizio, le richieste che violano il criterio del perimetro vengono rifiutate, ad esempio le richieste rivolte a servizi protetti dall'esterno di un perimetro. Quando un servizio è protetto da un perimetro applicato, Controlli di servizio VPC garantisce quanto segue:

  • Un servizio non può trasmettere dati al di fuori del perimetro. Servizi protetti funzionano normalmente all'interno del perimetro, ma non possono inviare risorse e dati fuori dal perimetro. Questa limitazione contribuisce a impedire agli addetti ai lavori malintenzionati che potrebbero avere accesso ai progetti nel perimetro di esfiltrare i dati.
  • Le richieste provenienti dall'esterno del perimetro al servizio protetto vengono rispettate solo se soddisfano i criteri dei livelli di accesso assegnati al perimetro.
  • Un servizio può essere reso accessibile ai progetti in altri perimetri utilizzando ponti perimetrali.

Cripta le immagini container

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

Passaggi successivi

Scopri di più su come proteggere la catena di fornitura e la sicurezza delle applicazioni con il seguenti risorse: