Questo documento del Google Cloud framework dell'architettura fornisce le best practice per il deployment sicuro delle applicazioni.
Per eseguire il deployment di applicazioni sicure, devi avere un ciclo di vita ben definito dello sviluppo del software, con controlli di sicurezza appropriati durante le fasi di progettazione, sviluppo, test e deployment. Quando progetti un'applicazione, ti consigliamo di utilizzare un'architettura di sistema a più livelli che utilizza framework standardizzati per l'identità, l'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 per lo sviluppo standardizzati e consentono rapide iterazioni dei prodotti. Ad esempio, i pool privati Cloud Build ti consentono di implementare una pipeline CI/CD gestita e altamente sicura per settori altamente regolamentati, tra cui finanza e sanità.
Puoi utilizzare l'automazione per eseguire la scansione delle vulnerabilità di sicurezza quando vengono creati gli elementi. 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 malintenzionato compromette la pipeline CI/CD, l'intero stack può essere coinvolto. Per contribuire a 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 contrappesi utilizzando l'Autorizzazione binaria. Autorizzazione binaria associa firme configurabili alle immagini container. Queste firme (chiamate anche attestazioni) contribuiscono a convalidare l'immagine. Al deployment, l'autorizzazione binaria utilizza queste attestazioni per determinare che un processo è stato completato in precedenza. Ad esempio, puoi utilizzare l'autorizzazione binaria per:
- Verifica che un sistema di compilazione o una pipeline di integrazione continua (CI) specifica abbia creato un'immagine contenitore.
- Verificare che un'immagine del contenitore sia conforme a un criterio di firma delle vulnerabilità.
- Verifica che un'immagine container soddisfi i criteri per la promozione al successivo ambiente di deployment, ad esempio dallo sviluppo al QA.
Esegui la ricerca di vulnerabilità note prima del deployment
Ti consigliamo di utilizzare strumenti automatici in grado di eseguire continuamente scansioni delle vulnerabilità sulle immagini dei container prima che i container vengano implementati in produzione.
Utilizza Artifact Analysis per eseguire automaticamente la ricerca di vulnerabilità per i container archiviati in Artifact Registry. Questo processo include due attività: scansione e analisi continua.
Per iniziare, Artifact Analysis esegue la scansione delle nuove immagini quando vengono caricate su Artifact Registry. L'analisi estrae informazioni sui pacchetti di sistema nel contenitore.
Artifact Analysis cerca quindi le vulnerabilità quando carichi 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.
- Consente di eliminare le occorrenze di vulnerabilità che non sono 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 Google Cloud prodotti e delle funzionalità che supportano le tecniche di mitigazione OWASP Top 10, consulta le opzioni di mitigazione OWASP Top 10 su 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 esegue la scansione della tua applicazione, seguendo tutti i link nell'ambito degli URL di partenza e tenta di eseguire il maggior numero possibile di input utente e gestori di eventi. Può eseguire automaticamente la ricerca e il rilevamento di 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 un basso tasso di falsi positivi.
Controllare il movimento dei dati attraverso i perimetri
Per controllare il movimento dei dati all'interno di un perimetro, puoi configurare perimetri di sicurezza attorno alle risorse dei tuoi servizi gestiti da Google. Utilizza Controlli di servizio VPC per posizionare tutti i componenti e i servizi della 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 ridurre il rischio di copia o trasferimento non autorizzato di dati (esfiltrazione di dati) dai servizi gestiti da Google. Con Controlli di servizio VPC, puoi configurare perimetri di sicurezza attorno alle risorse dei servizi gestiti da Google per controllare il movimento dei dati oltre 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 in modalità di applicazione forzata, Controlli di servizio VPC garantisce quanto segue:
- Un servizio non può trasmettere dati al di fuori del perimetro. I servizi protetti funzionano normalmente all'interno del perimetro, ma non possono inviare risorse e dati al di fuori del 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 bridge di perimetro.
Criptare le immagini container
In Google Cloud, puoi criptare le immagini dei contenitori utilizzando chiavi di crittografia gestite dal cliente (CMEK). Le chiavi CMEK vengono gestite in Cloud Key Management Service (Cloud KMS). Quando utilizzi CMEK, puoi disattivare temporaneamente o definitivamente l'accesso a un'immagine del contenitore criptata disattivando o distruggendo la chiave.
Passaggi successivi
Scopri di più su come proteggere la catena di approvvigionamento e la sicurezza delle applicazioni con le seguenti risorse:
- Gestire gli obblighi di conformità (documento successivo di questa serie)
- Eccellenza operativa
- Autorizzazione binaria
- Artifact Analysis
- Artifact Registry