Questo principio nel pilastro della sicurezza del Well-Architected Framework diGoogle Cloud ti aiuta a identificare i controlli pratici che puoi implementare nelle prime fasi del ciclo di vita dello sviluppo del software per migliorare la tua security posture. Fornisce suggerimenti che ti aiutano a implementare sistemi di protezione della sicurezza preventiva e controlli di sicurezza post-deployment.
Panoramica del principio
Shift-left security significa adottare pratiche di sicurezza nelle prime fasi del ciclo di vita dello sviluppo del software. Questo principio ha i seguenti obiettivi:
- Evita i difetti di sicurezza prima di apportare modifiche al sistema. Implementa misure protettive per la sicurezza preventiva e adotta pratiche come l'infrastructure as code (IaC), il policy as code e i controlli di sicurezza nella pipeline CI/CD. Puoi anche utilizzare altre funzionalità specifiche della piattaforma, come il servizio policy dell'organizzazione e i cluster GKE con protezione avanzata in Google Cloud.
- Rileva e correggi i bug di sicurezza in modo tempestivo, rapido e affidabile dopo il commit di eventuali modifiche al sistema. Adotta pratiche come le revisioni del codice, l'analisi delle vulnerabilità post-deployment e i test di sicurezza.
I principi Implementa la sicurezza by design e Shift-left security sono correlati, ma differiscono nell'ambito. Il principio della sicurezza by design ti aiuta a evitare difetti di progettazione fondamentali che richiederebbero la riprogettazione dell'intero sistema. Ad esempio, un esercizio di modellazione delle minacce rivela che il design attuale non include una policy di autorizzazione e che, senza questa, tutti gli utenti avrebbero lo stesso livello di accesso. La sicurezza shift-left ti aiuta a evitare difetti di implementazione (bug ed errori di configurazione) prima che vengano applicate le modifiche e consente correzioni rapide e affidabili dopo il deployment.
Consigli
Per implementare il principio di sicurezza shift-left per i workload cloud, considera i suggerimenti nelle sezioni seguenti:
- Adotta controlli di sicurezza preventivi
- Automatizza il provisioning e la gestione delle risorse cloud
- Automatizza le release sicure delle applicazioni
- Assicurati che i deployment delle applicazioni seguano i processi approvati
- Analizza le vulnerabilità note prima del deployment dell'applicazione
- Monitora il codice dell'applicazione per verificare la presenza di vulnerabilità note
Adotta controlli di sicurezza preventivi
Questo suggerimento è pertinente alle 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 mitigare i rischi in modo proattivo. Puoi evitare configurazioni errate e accessi non autorizzati alle risorse, consentire agli sviluppatori di lavorare in modo efficiente e contribuire a garantire la conformità agli standard di settore e alle policy interne.
I controlli di sicurezza preventivi sono più efficaci se vengono implementati utilizzando l'infrastructure as code (IaC). Con l'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 nell'ambito dei controlli automatici della pipeline CI/CD.
I seguenti prodotti e funzionalità di Google Cloud possono aiutarti a implementare controlli preventivi nel tuo ambiente:
- Vincoli delle policy dell'organizzazione: configura vincoli predefiniti e personalizzati con controllo centralizzato.
- Controlli di servizio VPC: crea perimetri intorno ai tuoi servizi Google Cloud .
- Identity and Access Management (IAM), Privileged Access Manager e policy di Principal Access Boundary: limitano l'accesso alle risorse.
- Policy Controller e Open Policy Agent (OPA): applicano i vincoli IaC nella pipeline CI/CD ed evitano errori di configurazione del cloud.
IAM ti consente di autorizzare chi può agire su risorse specifiche in base alle autorizzazioni. Per saperne di più, consulta Controllo dell'accesso alle risorse dell'organizzazione con IAM.
La policy dell'organizzazione ti consente di impostare limitazioni sulle risorse per specificare come possono essere configurate. Ad esempio, puoi utilizzare una policy dell'organizzazione per:
- Limita la condivisione delle risorse in base al dominio.
- Limita l'utilizzo dei service account.
- Limitare la posizione fisica delle risorse appena create.
Oltre a utilizzare le policy dell'organizzazione, puoi limitare l'accesso alle risorse utilizzando i seguenti metodi:
- Tag con IAM: assegna un tag a un insieme di risorse e poi imposta la definizione di accesso per il tag stesso, anziché definire le autorizzazioni di accesso su ogni risorsa.
- Condizioni IAM: definiscono 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 saperne di più sulla gestione delle risorse, consulta Decidi una gerarchia delle risorse per la tua zona di destinazione Google Cloud .
Automatizza il provisioning e la gestione delle risorse cloud
Questo suggerimento è pertinente alle seguenti aree di interesse:
- Sicurezza delle applicazioni
- Governance, rischio e conformità del cloud
L'automazione del provisioning e della gestione delle risorse e dei workload cloud è più efficace se adotti anche l'IaC dichiarativa, anziché lo scripting imperativo. L'IaC non è uno strumento o una pratica di sicurezza di per sé, 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 valido noto. L'IaC migliora anche l'efficienza dei rollback, delle modifiche di controllo e della risoluzione dei problemi.
Se combinata con pipeline CI/CD e automazione, l'IaC ti offre anche la possibilità di adottare pratiche come la policy as code con strumenti come OPA. Puoi controllare le modifiche all'infrastruttura nel tempo ed eseguire controlli automatici sul codice dell'infrastruttura prima del 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 applicativo sicuro utilizzando IaC e l'automazione, Google Cloud fornisce il progetto di base per le aziende. Questo progetto è il design di Google che segue tutte le nostre pratiche e configurazioni consigliate. Il progetto fornisce istruzioni passo passo per configurare ed eseguire il deployment della topologia Google Cloud utilizzando Terraform e Cloud Build.
Puoi modificare gli script del progetto delle basi aziendali per configurare un ambiente che segua i suggerimenti di Google e soddisfi i tuoi requisiti di sicurezza. Puoi sviluppare ulteriormente il progetto di base con altri progetti di base o progettare la tua automazione. L'Architecture CenterGoogle Cloud fornisce altri blueprint che possono essere implementati sul blueprint delle piattaforme aziendali. Ecco alcuni esempi di questi progetti:
- Esegui il deployment di una piattaforma aziendale per sviluppatori su Google Cloud
- Esegui il deployment di un'architettura serverless protetta utilizzando Cloud Run
- Crea ed esegui il deployment di modelli di AI generativa e machine learning in un'azienda
- Importa i dati da Google Cloud in un data warehouse BigQuery protetto
Automatizza le release sicure delle applicazioni
Questo suggerimento è pertinente alla seguente area di interesse: sicurezza delle applicazioni.
Senza strumenti automatizzati, può essere difficile eseguire il deployment, l'aggiornamento e l'applicazione di patch ad ambienti di applicazioni complessi per soddisfare requisiti di sicurezza coerenti. Ti consigliamo di creare pipeline CI/CD automatizzate per il ciclo di vita dello sviluppo software (SDLC). Le pipeline CI/CD automatizzate ti aiutano a rimuovere gli errori manuali, forniscono feedback loop di sviluppo standardizzati e consentono iterazioni efficienti del prodotto. La distribuzione continua è una delle best practice consigliate dal framework DORA.
L'automazione delle release delle applicazioni mediante l'utilizzo di pipeline CI/CD contribuisce a migliorare la tua capacità di rilevare e correggere i bug di sicurezza in modo tempestivo, rapido e affidabile. Ad esempio, puoi eseguire automaticamente la scansione delle vulnerabilità di sicurezza quando vengono creati gli artefatti, restringere l'ambito delle revisioni della sicurezza ed eseguire il rollback a una versione nota e sicura. Puoi anche definire policy per ambienti diversi (ad esempio ambienti di sviluppo, test o produzione) in modo che venga eseguito il deployment solo degli artefatti 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 cuiCloud Build,Cloud Deploy,Web Security ScannereAutorizzazione binaria.
Per stabilire un processo 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, 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 al cambiamento di Google Cloud.
Assicurarsi che i deployment delle applicazioni seguano i processi approvati.
Questo suggerimento è pertinente alla seguente area di interesse: sicurezza delle applicazioni.
Se un utente malintenzionato compromette la tua pipeline CI/CD, l'intero stack di 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) o Cloud Run, puoi stabilire un processo di approvazione utilizzando Autorizzazione binaria. Autorizzazione binaria associa firme configurabili alle immagini container. Queste firme (chiamate anche attestazioni) aiutano a convalidare l'immagine. Al momento del deployment, Autorizzazione binaria utilizza queste attestazioni per determinare se un processo è stato completato. Ad esempio, puoi utilizzare Autorizzazione binaria per:
- Verificare che un sistema di compilazione o una pipeline CI specifici abbiano creato un'immagine container.
- Convalida che un'immagine container sia conforme a una policy di firma delle vulnerabilità.
- Verifica che un'immagine container soddisfi i criteri per la promozione all'ambiente di deployment successivo, ad esempio dallo sviluppo al QA.
Utilizzando Autorizzazione binaria, puoi imporre che solo il codice attendibile venga eseguito sulle tue piattaforme di destinazione.
Scansione delle vulnerabilità note prima del deployment dell'applicazione
Questo suggerimento è pertinente alla seguente area di interesse: sicurezza delle applicazioni.
Ti consigliamo di utilizzare strumenti automatici in grado di eseguire continuamente analisi delle vulnerabilità sugli artefatti dell'applicazione prima che vengano distribuiti in produzione.
Per le applicazioni containerizzate, utilizza Artifact Analysis per eseguire automaticamente le analisi delle vulnerabilità per le immagini container. Artifact Analysis analizza le nuove immagini quando vengono caricate su Artifact Registry. L'analisi estrae informazioni sui pacchetti di sistema nel container. Dopo la scansione iniziale, Artifact Analysis monitora continuamente i metadati delle immagini scansionate in Artifact Registry per rilevare nuove vulnerabilità. Quando Artifact Analysis riceve informazioni nuove e aggiornate sulle vulnerabilità dalle origini delle 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.
Questo suggerimento è pertinente alla seguente area di interesse: sicurezza delle applicazioni.
Utilizza strumenti automatizzati per monitorare costantemente il codice dell'applicazione per rilevare vulnerabilità note, come quelle elencate nella Top 10 OWASP. Per saperne di più sui prodotti e sulle funzionalità di Google Cloud che supportano le tecniche di mitigazione OWASP Top 10, consulta Mitigazione di OWASP Top 10:2025 su Google Cloud.
Utilizza Web Security Scanner per identificare le vulnerabilità di sicurezza nelle tue applicazioni web App Engine, Compute Engine e GKE. Lo scanner esegue la scansione dell'applicazione, segue tutti i link nell'ambito degli URL di partenza e tenta di utilizzare il maggior numero possibile di input utente e gestori di eventi. Può scansionare e rilevare automaticamente le vulnerabilità comuni, tra cui cross-site scripting, code injection, contenuti misti e librerie obsolete o non sicure. Web Security Scanner fornisce un'identificazione precoce di questi tipi di vulnerabilità senza distrarti con falsi positivi.
Inoltre, se utilizzi GKE per gestire i parchi risorse dei cluster Kubernetes, la dashboard della security posture mostra suggerimenti guidati e attuabili per migliorare la security posture del tuo parco risorse.