Implementare la sicurezza shift left

Last reviewed 2025-02-05 UTC

Questo principio del pilastro della sicurezza del Google Cloud framework Well-Architected 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 postura di sicurezza. Fornisce consigli che ti aiutano a implementare misure protettive per la sicurezza preventive e controlli di sicurezza post-deployment.

Panoramica del principio

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

  • Evitare difetti di sicurezza prima di apportare modifiche al sistema. Implementare misure protettive per la sicurezza preventive e adottare 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 il servizio Policy dell'organizzazione e i cluster GKE rafforzati in Google Cloud.
  • Rilevare e correggere i bug di sicurezza in modo rapido, affidabile e nelle prime fasi dopo il commit di eventuali modifiche al sistema. Adottare pratiche come le revisioni del codice, l'analisi delle vulnerabilità post-deployment e i test di sicurezza.

I principi di implementazione della sicurezza by design e della sicurezza shift-left sono correlati, ma differiscono per 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 la progettazione attuale non include una policy di autorizzazione e che tutti gli utenti avrebbero lo stesso livello di accesso senza di essa. La sicurezza shift-left ti aiuta a evitare difetti di implementazione (bug e configurazioni errate) prima dell'applicazione delle modifiche e consente correzioni rapide e affidabili dopo il deployment.

Consigli

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

Adottare controlli di sicurezza preventivi

Questo consiglio è 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 postura di sicurezza solida nel cloud. Questi controlli ti aiutano a mitigare in modo proattivo i rischi. Puoi impedire 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 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 i controlli preventivi nel tuo ambiente:

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

Il servizio 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 eseguire le seguenti operazioni:

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: definisci 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 saperne di più sulla gestione delle risorse, consulta Decidere una gerarchia delle risorse per la Google Cloud zona di destinazione.

Automatizzare il provisioning e la gestione delle risorse cloud

Questo consiglio è 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 carichi di lavoro cloud è più efficace se adotti anche IaC dichiarativa, anziché script imperativi. IaC non è uno strumento o una pratica di sicurezza in 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 di funzionamento ottimale noto. IaC migliora anche l'efficienza dei rollback, delle modifiche di controllo e della risoluzione dei problemi.

Se combinato con le pipeline CI/CD e l'automazione, IaC ti offre anche la possibilità di adottare pratiche come 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 della piattaforma aziendale. Questo progetto è la progettazione di Google che segue tutte le nostre pratiche e configurazioni consigliate. Il progetto fornisce istruzioni passo passo per configurare ed eseguire il deployment della Google Cloud topologia utilizzando Terraform e Cloud Build.

Puoi modificare gli script del progetto della piattaforma aziendale per configurare un ambiente che segua i consigli di Google e soddisfi i tuoi requisiti di sicurezza. Puoi ampliare ulteriormente il progetto con altri progetti o progettare la tua automazione. L' Google Cloud Architecture Center fornisce altri progetti che possono essere implementati sopra il progetto della piattaforma aziendale. Di seguito sono riportati alcuni esempi di questi progetti:

Automatizzare le release sicure delle applicazioni

Questo consiglio è 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 agli ambienti applicativi complessi per soddisfare requisiti di sicurezza coerenti. Ti consigliamo di creare pipeline CI/CD automatizzate per il ciclo di vita dello sviluppo del software (SDLC). Le pipeline CI/CD automatizzate ti aiutano a rimuovere gli errori manuali, forniscono loop di feedback 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 utilizzando le pipeline CI/CD ti aiuta a migliorare la tua capacità di rilevare e correggere i bug di sicurezza in modo rapido, affidabile e nelle prime fasi. Ad esempio, puoi eseguire automaticamente la scansione per rilevare le vulnerabilità di sicurezza quando vengono creati gli artefatti, restringere l'ambito delle revisioni di sicurezza ed eseguire il rollback a una versione nota e sicura. Puoi anche definire policy per diversi ambienti (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 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 come Google applica internamente queste pratiche, consulta Google Cloud's approccio alle modifiche.

Assicurarsi che i deployment delle applicazioni seguano i processi approvati.

Questo consiglio è pertinente alla seguente area di interesse: sicurezza delle applicazioni.

Se un attaccante compromette la tua pipeline CI/CD, l'intero stack di applicazioni può essere interessato. Per proteggere la pipeline, devi applicare una procedura di approvazione stabilita prima di eseguire il deployment del codice in produzione.

Se utilizzi Google Kubernetes Engine (GKE) o Cloud Run, puoi stabilire una procedura 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 una procedura è stata completata. Ad esempio, puoi utilizzare Autorizzazione binaria per eseguire le seguenti operazioni:

  • Verificare che un sistema di compilazione o una pipeline CI specifici abbiano creato un'immagine container.
  • Convalidare che un'immagine container sia conforme a una policy di firma delle vulnerabilità.
  • Verificare 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 applicare in modo forzato l'esecuzione solo di codice attendibile sulle piattaforme di destinazione.

Eseguire la scansione per rilevare vulnerabilità note prima del deployment dell'applicazione

Questo consiglio è pertinente alla seguente area di interesse: sicurezza delle applicazioni.

Ti consigliamo di utilizzare strumenti automatizzati in grado di eseguire continuamente scansioni delle vulnerabilità sugli artefatti dell'applicazione prima del deployment 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 in Artifact Registry. La scansione 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 sulle vulnerabilità nuove e aggiornate 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 consiglio è pertinente alla seguente area di interesse: sicurezza delle applicazioni.

Utilizza strumenti automatizzati per monitorare costantemente il codice dell'applicazione per rilevare vulnerabilità note , come le 10 principali vulnerabilità OWASP. Per saperne di più sui Google Cloud prodotti e sulle funzionalità che supportano le tecniche di mitigazione delle 10 principali vulnerabilità OWASP, consulta Opzioni di mitigazione delle 10 principali vulnerabilità OWASP 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 attivare il maggior numero possibile di input utente e gestori di eventi. Può eseguire automaticamente la scansione e rilevare vulnerabilità comuni, tra cui cross-site scripting, code injection, contenuti misti, e librerie obsolete o non sicure. Web Security Scanner fornisce l'identificazione precoce di questi tipi di vulnerabilità senza distrarti con falsi positivi.

Inoltre, se utilizzi GKE per gestire i parchi di cluster Kubernetes, la dashboard sulla postura di sicurezza mostra suggerimenti attendibili e strategici per migliorare la postura di sicurezza del tuo parco.