Implementare la sicurezza integrata

Last reviewed 2025-02-05 UTC

Questo principio alla base della sicurezza del Google Cloud framework ben strutturato fornisce suggerimenti per incorporare solide funzionalità, controlli e pratiche di sicurezza nella progettazione di piattaforme, applicazioni e servizi cloud. Dall'ideazione alle operazioni, la sicurezza è più efficace quando è incorporata come parte integrante di ogni fase del processo di progettazione.

Panoramica dei principi

Come spiegato in Panoramica dell'impegno di Google per la sicurezza prima di tutto, i termini sicura per impostazione predefinita e sicura per progettazione sono spesso utilizzati in modo intercambiabile, ma rappresentano approcci distinti alla creazione di sistemi sicuri. Entrambi gli approcci hanno lo scopo di ridurre al minimo le vulnerabilità e migliorare la sicurezza, ma differiscono per ambito e implementazione:

  • Sicuro per impostazione predefinita: si concentra sull'assicurarsi che le impostazioni predefinite di un sistema siano impostate su una modalità sicura, riducendo al minimo la necessità per gli utenti o gli amministratori di intraprendere azioni per proteggere il sistema. Questo approccio mira a fornire un livello di sicurezza di base per tutti gli utenti.
  • Sicuro per progettazione: dà risalto all'integrazione proattiva di considerazioni di sicurezza durante l'intero ciclo di vita dello sviluppo di un sistema. Questo approccio consiste nell'anticipare tempestivamente le potenziali minacce e alle vulnerabilità e a fare scelte di progettazione che mitigano i rischi. Questo approccio comporta l'utilizzo di pratiche di codifica sicure, l'esecuzione di revisioni della sicurezza e l'incorporamento della sicurezza durante l'intero processo di progettazione. L'approccio secure-by-design è una filosofia generale che guida il processo di sviluppo e contribuisce a garantire che la sicurezza non sia un'aggiunta tardiva, ma parte integrante della progettazione di un sistema.

Consigli

Per implementare il principio di sicurezza "by design" per i carichi di lavoro cloud, considera i suggerimenti nelle sezioni seguenti:

Scegli i componenti di sistema che contribuiscono a proteggere i tuoi carichi di lavoro

Questo suggerimento è pertinente per tutte le aree interessate.

Una decisione fondamentale per una sicurezza efficace è la selezione di componenti di sistema robusti, inclusi componenti hardware e software, che costituiscono la tua piattaforma, soluzione o servizio. Per ridurre la superficie di attacco alla sicurezza e limitare i potenziali danni, devi anche considerare attentamente i pattern di deployment di questi componenti e le relative configurazioni.

Nel codice dell'applicazione, ti consigliamo di utilizzare librerie, astrazioni e framework applicativi semplici, sicuri e affidabili per eliminare classi di vulnerabilità. Per eseguire la ricerca di vulnerabilità nelle librerie software, puoi utilizzare strumenti di terze parti. Puoi anche utilizzare Assured Open Source Software, che contribuisce a ridurre i rischi per la catena di fornitura del software utilizzando pacchetti di software open source (OSS) utilizzati e protetti da Google.

La tua infrastruttura deve utilizzare opzioni di networking, archiviazione e computing che supportano un funzionamento sicuro e in linea con i requisiti di sicurezza e i livelli di accettazione del rischio. La sicurezza dell'infrastruttura è importante sia per i carichi di lavoro interni che per internet.

Per informazioni su altre soluzioni Google che supportano questo consiglio, consulta Implementare la sicurezza shift-left.

Crea un approccio alla sicurezza a più livelli

Questo consiglio è pertinente per le seguenti aree di interesse:

  • Sicurezza di IA e ML
  • Sicurezza dell'infrastruttura
  • Gestione di identità e accessi
  • Sicurezza dei dati

Ti consigliamo di implementare la sicurezza a ogni livello dello stack di applicazioni e infrastrutture applicando un approccio di difesa in profondità.

Utilizza le funzionalità di sicurezza in ogni componente della tua piattaforma. Per limitare l'accesso e identificare i confini del potenziale impatto (ovvero il raggio d'azione) in caso di incidente di sicurezza:

  • Semplifica la progettazione del sistema per garantire la flessibilità, ove possibile.
  • Documenta i requisiti di sicurezza di ogni componente.
  • Incorpora un meccanismo solido e sicuro per far fronte ai requisiti di resilienza e ripristino.

Quando progetti i livelli di sicurezza, esegui una valutazione dei rischi per determinare le funzionalità di sicurezza necessarie per soddisfare i requisiti di sicurezza interni e i requisiti normativi esterni. Ti consigliamo di utilizzare un framework di valutazione del rischio standard di settore applicabile agli ambienti cloud e pertinente ai requisiti normativi. Ad esempio, Cloud Security Alliance (CSA) fornisce la Cloud Controls Matrix (CCM). La valutazione dei rischi fornisce un catalogo di rischi e i controlli di sicurezza corrispondenti per mitigarli.

Quando esegui la valutazione del rischio, ricorda che hai un contratto di responsabilità condivisa con il tuo provider cloud. Di conseguenza, i rischi in un ambiente cloud sono diversi da quelli in un ambiente on-premise. Ad esempio, in un ambiente on-premise, devi mitigare le vulnerabilità dello stack hardware. Al contrario, in un ambiente cloud, questi rischi sono a carico del cloud provider. Inoltre, ricorda che i confini delle responsabilità condivise differiscono tra i servizi IaaS, PaaS e SaaS per ciascun provider cloud.

Dopo aver identificato i potenziali rischi, devi progettare e creare un piano di mitigazione che utilizzi controlli tecnici, amministrativi e operativi, nonché protezioni contrattuali e attestazioni di terze parti. Inoltre, un metodo di modellazione delle minacce, come il metodo di modellazione delle minacce per le applicazioni OWASP, ti aiuta a identificare potenziali lacune e a suggerire azioni per risolverle.

Utilizza infrastrutture e servizi protetti e attestati

Questo suggerimento è pertinente per tutte le aree interessate.

Un programma di sicurezza maturo mitiga le nuove vulnerabilità come descritto nei bollettini sulla sicurezza. Il programma di sicurezza deve anche fornire una soluzione per correggere le vulnerabilità nei deployment esistenti e proteggere le immagini VM e dei contenitori. Puoi utilizzare guide per l'applicazione di misure di protezione specifiche per il sistema operativo e l'applicazione delle tue immagini, nonché benchmark come quello fornito dal Center of Internet Security (CIS).

Se utilizzi immagini personalizzate per le VM di Compute Engine, devi correggere personalmente le patch. In alternativa, puoi utilizzare immagini curate del sistema operativo fornite da Google, a cui vengono applicate regolarmente le patch. Per eseguire i container sulle VM di Compute Engine, utilizza immagini del sistema operativo ottimizzate per i container selezionate da Google. Google applica patch e aggiorna regolarmente queste immagini.

Se utilizzi GKE, ti consigliamo di attivare gli upgrade automatici dei nodi in modo che Google aggiorni i nodi del cluster con le patch più recenti. Google gestisce i piani di controllo GKE, che vengono aggiornati e sottoposti a patch automaticamente. Per ridurre ulteriormente la superficie di attacco dei container, puoi utilizzare immagini senza i pacchetti di distribuzione. Le immagini senza distribuzione sono ideali per applicazioni sensibili alla sicurezza, microservizi e situazioni in cui è fondamentale ridurre al minimo le dimensioni dell'immagine e la superficie di attacco.

Per i carichi di lavoro sensibili, utilizza le VM Shielded, che impediscono il caricamento di codice dannoso durante il ciclo di avvio della VM. Le istanze Shielded VM offrono sicurezza in fase di avvio, monitorano l'integrità e utilizzano il Virtual Trusted Platform Module (vTPM).

Per proteggere l'accesso SSH, OS Login consente ai dipendenti di connettersi alle tue VM utilizzando le autorizzazioni IAM (Identity and Access Management) come fonte attendibile invece di utilizzare le chiavi SSH. Pertanto, non devi gestire le chiavi SSH in tutta l'organizzazione. L'accesso al sistema operativo lega l'accesso di un amministratore al ciclo di vita del dipendente, pertanto quando i dipendenti cambiano ruolo o lasciano l'organizzazione, il loro accesso viene revocato con il loro account. Accedi con il sistema operativo supporta anche l'autenticazione a due fattori di Google, che aggiunge un ulteriore livello di sicurezza contro gli attacchi di acquisizione dell'account.

In GKE, le istanze di applicazione vengono eseguite all'interno di container Docker. Per attivare un profilo di rischio definito e impedire ai dipendenti di apportare modifiche ai contenitori, assicurati che i contenitori siano senza stato e immutabili. Il principio di immutabilità prevede che i dipendenti non modifichino il contenitore o non vi accedano in modo interattivo. Se il container deve essere modificato, crei una nuova immagine ed eseguine il deployment. Abilita l'accesso SSH ai container sottostanti solo in scenari di debug specifici.

Per proteggere le configurazioni a livello globale nel tuo ambiente, puoi utilizzare i criteri dell'organizzazione per impostare vincoli o sistemi di protezione sulle risorse che influiscono sul comportamento degli asset cloud. Ad esempio, puoi definire i seguenti criteri dell'organizzazione e applicarli a livello globale in Google Cloud un'organizzazione o in modo selettivo a livello di cartella o progetto:

  • Disattiva l'allocazione di indirizzi IP esterni alle VM.
  • Limita la creazione di risorse a località geografiche specifiche.
  • Disattiva la creazione di account di servizio o delle relative chiavi.

Crittografare i dati at-rest e in transito

Questo consiglio è pertinente per le seguenti aree di interesse:

  • Sicurezza dell'infrastruttura
  • Sicurezza dei dati

La crittografia dei dati è un controllo di base per proteggere le informazioni sensibili ed è un elemento chiave della governance dei dati. Una strategia di protezione dei dati efficace include il controllo dell'accesso, la segmentazione dei dati e la residenza geografica, il controllo e l'implementazione della crittografia basata su un'attenta valutazione dei requisiti.

Per impostazione predefinita, Google Cloud cripta i dati inattivi dei clienti senza che sia richiesta alcuna azione da parte tua. Oltre alla crittografia predefinita, Google Cloud offre opzioni per la crittografia dell'involucro e la gestione delle chiavi di crittografia. È necessario individuare le soluzioni più adatte ai tuoi requisiti in termini di generazione, archiviazione e rotazione delle chiavi, sia che tu stia scegliendo le chiavi per l'archiviazione, per il computing o per i carichi di lavoro di big data. Ad esempio, le chiavi di crittografia gestite dal cliente (CMEK) possono essere create in Cloud Key Management Service (Cloud KMS). Le CMEK possono essere basate su software o protette da HSM per soddisfare i requisiti normativi o di conformità, ad esempio la necessità di ruotare regolarmente le chiavi di crittografia. Cloud KMS Autokey consente di automatizzare il provisioning e l'assegnazione delle CMEK. Inoltre, puoi utilizzare le tue chiavi provenienti da un sistema di gestione delle chiavi di terze parti utilizzando Cloud External Key Manager (Cloud EKM).

Consigliamo vivamente di criptare i dati in transito. Google cripta e autentica i dati in transito su uno o più livelli di rete quando i dati si spostano al di fuori dei confini fisici non controllati da Google o per conto di Google. Tutto il traffico da VM a VM all'interno di una rete VPC e tra reti VPC in peering viene criptato. Puoi utilizzare MACsec per la crittografia del traffico sulle connessioni Cloud Interconnect. IPsec fornisce la crittografia per il traffico sulle connessioni Cloud VPN. Puoi proteggere il traffico tra applicazioni nel cloud utilizzando funzionalità di sicurezza come le configurazioni TLS e mTLS in Apigee e Cloud Service Mesh per le applicazioni containerizzate.

Per impostazione predefinita, Google Cloud cripta i dati at-rest e in transito sulla rete. Tuttavia, i dati non vengono criptati per impostazione predefinita mentre sono in uso nella memoria. Se la tua organizzazione gestisce dati riservati, è necessario ridurre eventuali minacce che compromettano la riservatezza e l'integrità dell'applicazione o dei dati nella memoria di sistema. Per ridurre al minimo queste minacce, puoi utilizzare Confidential Computing, che fornisce un ambiente di esecuzione attendibile per i tuoi carichi di lavoro di calcolo. Per maggiori informazioni, consulta Panoramica di Confidential VM.