Implementare la sicurezza shift-left

Last reviewed 2025-02-05 UTC

Questo principio del pilastro della sicurezza del Google Cloud Well-Architected Framework ti aiuta a identificare controlli pratici che puoi implementare nelle prime fasi del ciclo di vita dello sviluppo del software per migliorare la tua postura di sicurezza. Fornisce consigli che ti aiutano a implementare barriere di sicurezza preventive e controlli di sicurezza post-deployment.

Panoramica dei principi

La sicurezza shift-left consiste nell'adottare pratiche di sicurezza nelle prime fasi del ciclo di vita di sviluppo del software. Questo principio ha i seguenti obiettivi:

  • Evita i difetti di sicurezza prima di apportare modifiche al sistema. Implementa misure di sicurezza preventive e adotta pratiche come Infrastructure as Code (IaC), Policy as Code e controlli di sicurezza nella pipeline CI/CD. Puoi anche utilizzare altre funzionalità specifiche della piattaforma, come Organization Policy Service e cluster GKE rafforzati in Google Cloud.
  • Rileva e correggi i bug di sicurezza in modo tempestivo, rapido e affidabile dopo l'applicazione di eventuali modifiche al sistema. Adotta pratiche come revisioni del codice, scansione delle vulnerabilità post-deployment e test di sicurezza.

I principi di sicurezza Implementa la sicurezza in base al design e di sicurezza shift-left sono correlati, ma differiscono per ambito. Il principio di sicurezza per progettazione ti aiuta a evitare difetti di progettazione fondamentali che richiederebbero la riprogettazione dell'intero sistema. Ad esempio, un esercizio di modeling delle minacce rivela che il design attuale non include un criterio di autorizzazione e che tutti gli utenti avrebbero lo stesso livello di accesso senza questo criterio. La sicurezza di tipo shift-left consente di evitare difetti di implementazione (bug e errori di configurazione) prima dell'applicazione delle modifiche e di apportare correzioni rapide e affidabili dopo il deployment.

Consigli

Per implementare il principio di sicurezza shift-left per i tuoi carichi di lavoro cloud, prendi in considerazione i consigli riportati nelle seguenti sezioni:

Adotta controlli di sicurezza preventivi

Questo consiglio è pertinente per le seguenti aree di interesse:

  • Gestione di identità e accessi
  • Governance, rischio e conformità del cloud

I controlli di sicurezza preventivi sono fondamentali per mantenere una security posture solida nel cloud. Questi controlli ti aiutano a ridurre i rischi in modo proattivo. Puoi evitare configurazioni errate e accesso non autorizzato alle risorse, consentire agli sviluppatori di lavorare in modo efficiente e contribuire a garantire la conformità agli standard di settore e alle norme interne.

I controlli di sicurezza preventivi sono più efficaci se vengono implementati utilizzando Infrastructure as Code (IaC). Con IaC, i controlli di sicurezza preventivi possono includere controlli più personalizzati sul codice dell'infrastruttura prima del deployment delle modifiche. Se combinati con l'automazione, i controlli di sicurezza preventivi possono essere eseguiti come parte dei controlli automatici della pipeline CI/CD.

I seguenti prodotti e Google Cloud funzionalità possono aiutarti a implementare controlli preventivi nel tuo ambiente:

IAM ti consente di autorizzare chi può intervenire su risorse specifiche in base alle autorizzazioni. Per ulteriori informazioni, consulta Controllo dell'accesso alle risorse dell'organizzazione con IAM.

Il servizio Criteri dell'organizzazione ti consente di impostare limitazioni sulle risorse per specificare come possono essere configurate. Ad esempio, puoi utilizzare un criterio dell'organizzazione per:

Oltre a utilizzare i criteri dell'organizzazione, puoi limitare l'accesso alle risorse utilizzando i seguenti metodi:

  • Tag con IAM: assegna un tag a un insieme di risorse e imposta la definizione di accesso per il tag stesso, anziché definire le autorizzazioni di accesso su ogni risorsa.
  • Condizioni IAM: definiscono il controllo dell'accesso condizionale basato su attributi per le risorse.
  • Difesa in profondità: utilizza i Controlli di servizio VPC per limitare ulteriormente l'accesso alle risorse.

Per ulteriori informazioni sulla gestione delle risorse, consulta Decidere una gerarchia delle risorse per la Google Cloud landing zone.

Automatizza il provisioning e la gestione delle risorse cloud

Questo consiglio è pertinente per le seguenti aree di interesse:

  • Sicurezza delle applicazioni
  • Governance, rischio e conformità del cloud

L'automazione del provisioning e della gestione delle risorse e dei carichi di lavoro cloud è più efficace se adotti anche IaC dichiarativa, anziché scripting imperativo. L'IaC non è uno strumento o una pratica di sicurezza da solo, ma ti aiuta a migliorare la sicurezza della tua piattaforma. L'adozione di IaC ti consente di creare un'infrastruttura ripetibile e fornisce al tuo team operativo uno stato di buona qualità noto. La IaC migliora anche l'efficienza dei rollback, delle modifiche di controllo e della risoluzione dei problemi.

Se combinata con le pipeline CI/CD e l'automazione, la IaC offre anche la possibilità di adottare pratiche come i criteri come codice con strumenti come OPA. Puoi controllare le modifiche dell'infrastruttura nel tempo ed eseguire controlli automatici sul codice dell'infrastruttura prima di eseguire il deployment delle modifiche.

Per automatizzare il deployment dell'infrastruttura, puoi utilizzare strumenti come Config Controller, Terraform, Jenkins e Cloud Build. Per aiutarti a creare un ambiente di applicazioni sicuro utilizzando l'IaC e l'automazione, Google Cloud fornisce il progetto di base per le aziende. Questo blueprint è il design opinabile di Google che segue tutte le nostre pratiche e configurazioni consigliate. Il blueprint fornisce istruzioni dettagliate per configurare e implementare la Google Cloud topologia utilizzando Terraform e Cloud Build.

Puoi modificare gli script del progetto base per le aziende per configurare un ambiente che segua i consigli di Google e soddisfi i tuoi requisiti di sicurezza. Puoi sviluppare ulteriormente il blueprint con altri blueprint o progettare la tua automazione.Google Cloud Architecture Center fornisce altri progetti che possono essere implementati in base al progetto di fondazione dell'azienda. Di seguito sono riportati alcuni esempi di questi blueprint:

Automatizzare le release sicure delle applicazioni

Questo consiglio è pertinente alla seguente area di attenzione: Sicurezza delle applicazioni.

Senza strumenti automatici, può essere difficile eseguire il deployment, l'aggiornamento e l'applicazione di patch di ambienti di applicazioni complessi per soddisfare requisiti di sicurezza coerenti. Ti consigliamo di creare pipeline CI/CD automatizzate per il ciclo di vita di sviluppo del software (SDLC). Le pipeline CI/CD automatizzate ti aiutano a rimuovere gli errori manuali, fornire loop di feedback di sviluppo standardizzati e consentire iterazioni di prodotto efficaci. La distribuzione continua è una delle best practice consigliate dal framework DORA.

L'automazione dei rilasci delle applicazioni tramite le pipeline CI/CD consente di migliorare la capacità di rilevare e correggere i bug di sicurezza in modo tempestivo, rapido e affidabile. Ad esempio, puoi eseguire automaticamente la ricerca di vulnerabilità di sicurezza quando vengono creati gli elementi, restringere l'ambito delle revisioni di sicurezza e eseguire il rollback a una versione nota e sicura. Puoi anche definire criteri per ambienti diversi (ad esempio ambienti di sviluppo, di test o di produzione) in modo che venga eseguito il deployment solo degli elementi verificati.

Per aiutarti ad automatizzare le release delle applicazioni e incorporare i controlli di sicurezza nella tua pipeline CI/CD, Google Cloud fornisce diversi strumenti, tra cui Cloud Build, Cloud Deploy, Web Security Scanner e Autorizzazione binaria.

Per stabilire una procedura che verifichi più requisiti di sicurezza nel tuo SDLC, utilizza il framework Supply-chain Levels for Software Artifacts (SLSA) definito da Google. SLSA richiede controlli di sicurezza per il codice sorgente, il processo di compilazione e la provenienza del codice. Molti di questi requisiti possono essere inclusi in una pipeline CI/CD automatizzata. Per capire in che modo Google applica queste pratiche internamente, consulta l'approccio diGoogle Cloudal cambiamento.

Assicurarsi che i deployment delle applicazioni seguano i processi approvati.

Questo consiglio è pertinente alla seguente area di attenzione: Sicurezza delle applicazioni.

Se un malintenzionato compromette la pipeline CI/CD, l'intero stack delle applicazioni può essere interessato. Per contribuire a proteggere la pipeline, devi applicare un processo di approvazione stabilito prima di eseguire il deployment del codice in produzione.

Se utilizzi Google Kubernetes Engine (GKE), GKE Enterprise o Cloud Run, puoi stabilire una procedura di approvazione utilizzando l'autorizzazione binaria. L'autorizzazione binaria associa firme configurabili alle immagini container. Queste firme (chiamate anche attestazioni) contribuiscono a convalidare l'immagine. Al momento del deployment, Autorizzazione binaria utilizza queste attestazioni per determinare se un processo è stato completato. Ad esempio, puoi utilizzare l'autorizzazione binaria per:

  • Verifica che un sistema di compilazione o una pipeline CI specifici abbiano creato un'immagine del contenitore.
  • Verificare che un'immagine del contenitore sia conforme a un criterio di firma delle vulnerabilità.
  • Verifica che un'immagine contenitore soddisfi i criteri per la promozione al successivo ambiente di deployment, ad esempio dallo sviluppo al QA.

Utilizzando l'autorizzazione binaria, puoi imporre l'esecuzione solo di codice attendibile sulle piattaforme di destinazione.

Esegui la ricerca di vulnerabilità note prima del deployment dell'applicazione

Questo consiglio è pertinente alla seguente area di attenzione: Sicurezza delle applicazioni.

Ti consigliamo di utilizzare strumenti automatici che possono eseguire continuamente scansioni di vulnerabilità sugli elementi dell'applicazione prima che vengano implementati in produzione.

Per le applicazioni containerizzate, utilizza Artifact Analysis per eseguire automaticamente scansioni delle vulnerabilità per le immagini container. Artifact Analysis esegue la scansione delle nuove immagini quando vengono caricate su Artifact Registry. La scansione estrae informazioni sui pacchetti di sistema nel contenitore. Dopo la scansione iniziale, Artifact Analysis monitora continuamente i metadati delle immagini sottoposte a scansione in Artifact Registry per rilevare nuove vulnerabilità. Quando Analisi elementi riceve informazioni sulle vulnerabilità nuove e aggiornate da 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.

Questo consiglio è pertinente alla seguente area di attenzione: Sicurezza delle applicazioni.

Utilizza strumenti automatizzati per monitorare costantemente il codice dell'applicazione alla ricerca di vulnerabilità note come quelle elencate nella lista OWASP Top 10. Per saperne di più sui Google Cloud prodotti e sulle funzionalità che supportano le tecniche di mitigazione OWASP Top 10, consulta 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 GKE. Lo scanner analizza l'applicazione, segue 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 scansione e rilevare le vulnerabilità comuni, tra cui scripting tra siti, iniezione di codice, contenuti misti e librerie obsolete o non sicure. Web Security Scanner consente di identificare in anteprima questi tipi di vulnerabilità senza distrarti con falsi positivi.

Inoltre, se utilizzi GKE Enterprise per gestire parchi risorse di cluster Kubernetes, la dashboard della postura di sicurezza mostra suggerimenti attendibili e strategici per aiutarti a migliorare la postura di sicurezza del tuo parco risorse.