Sicurezza della catena di fornitura del software

Google Cloud fornisce un insieme completo e modulare di funzionalità e strumenti nei prodotti Google Cloud che gli sviluppatori, i team DevOps e di sicurezza possono utilizzare per migliorare la security posture della catena di approvvigionamento del software.

Catene di fornitura del software

Una catena di fornitura del software è costituita da tutto il codice, le persone, i sistemi e i processi che contribuiscono allo sviluppo e alla distribuzione del software, sia all'interno che all'esterno dell'organizzazione. Comprende:

  • Il codice che crei, le relative dipendenze e il software interno ed esterno che utilizzi per sviluppare, compilare, pacchettizzare, installare ed eseguire il tuo software.
  • Procedure e criteri per l'accesso al sistema, i test, la revisione, il monitoraggio e il feedback, la comunicazione e l'approvazione.
  • Sistemi attendibili per sviluppare, compilare, archiviare ed eseguire il software e le relative dipendenze.

Data l'ampia copertura e la complessità delle catene di approvvigionamento del software, esistono numerosi modi per apportare modifiche non autorizzate al software che fornisci agli utenti. Questi vettori di attacco coprono tutto il ciclo di vita del software. Sebbene alcuni attacchi siano mirati, come l'attacco al sistema di compilazione di SolarWinds, altre minacce sono indirette o entrano nella catena di approvvigionamento tramite debolezze nei processi o negli accorgimenti.

Ad esempio, una valutazione della vulnerabilità di Apache Log4j effettuata a dicembre 2021 dal team di Google Open Source Insights ha rilevato che erano presenti oltre 17.000 pacchetti afectados in Maven Central. La maggior parte di questi pacchetti non dipendeva direttamente dal pacchetto log4j-core vulnerabile, ma aveva dipendenze che richiedevano il pacchetto.

Anche le pratiche e le procedure di sviluppo influiscono sulle catene di fornitura del software. Lacune nel processo, come la mancanza di revisione del codice o di criteri di sicurezza per il deployment in produzione, possono consentire l'ingresso involontario di codice dannoso nella catena di approvvigionamento. Analogamente, la mancanza di gestione delle dipendenze aumenta il rischio di vulnerabilità provenienti da origini esterne o pacchetti software che utilizzi per lo sviluppo, le build o il deployment.

Proteggere le catene di fornitura del software su Google Cloud

Google Cloud fornisce:

  • Prodotti e funzionalità che incorporano le best practice per la sicurezza per lo sviluppo, la creazione, il test, il deployment e l'applicazione delle norme.
  • Dashboard nella console Google Cloud che forniscono informazioni sulla sicurezza di source, build, elementi, implementazioni e runtime. Queste informazioni includono vulnerabilità negli elementi di compilazione, nella provenienza della compilazione e negli elenchi di dipendenze della Software Bill of Materials (SBOM).
  • Informazioni che identificano il livello di maturità della sicurezza della catena di fornitura del software utilizzando il framework SLSA (Supply chain Levels for Software Artifacts).

Il seguente diagramma mostra i servizi Google Cloud che collaborano per proteggere la catena di fornitura del software. Puoi integrare alcuni o tutti questi componenti nella tua catena di fornitura del software per migliorare la tua postura di sicurezza.

Componenti della catena di fornitura del software di Google Cloud

Proteggere l'ambiente di sviluppo

Cloud Workstations fornisce ambienti di sviluppo completamente gestiti su Google Cloud. Gli amministratori IT e di sicurezza possono eseguire il provisioning, scalare, gestire e proteggere i propri ambienti di sviluppo. Gli sviluppatori possono accedere a ambienti di sviluppo con configurazioni coerenti e strumenti personalizzabili.

Cloud Workstations sposta la sicurezza nelle fasi iniziali del processo di sviluppo migliorando la situazione di sicurezza degli ambienti di sviluppo delle applicazioni. Le funzionalità di sicurezza includono i Controlli di servizio VPC, il traffico in entrata o in uscita privato, l'aggiornamento forzato delle immagini e i criteri di accesso Identity and Access Management. Cloud Workstations offre funzionalità aggiuntive per la prevenzione della perdita di dati se combinata con Chrome Enterprise Premium.

Proteggere l'approvvigionamento del software

La protezione dell'approvvigionamento del software, ovvero degli elementi di build e delle dipendenze delle applicazioni, è un passaggio fondamentale per migliorare la sicurezza della catena di fornitura del software. L'uso diffuso del software open source rende questo problema particolarmente impegnativo.

  • Assured Open Source Software fornisce pacchetti open source verificati e testati da Google. Questi pacchetti vengono creati utilizzando le pipeline sicure di Google e vengono regolarmente sottoposti a scansione, analizzati e testati per rilevare eventuali vulnerabilità.

  • Artifact Registry è un gestore di pacchetti universale per tutti gli artefatti e le dipendenze della build. Se centralizzi tutti gli elementi e le dipendenze, hai una maggiore visibilità e controllo sul codice nella catena di approvvigionamento del software.

    • I repository remoti memorizzando gli elementi da origini esterne predefinite come Docker Hub, Maven Central, Python Package Index (PyPI), Debian o CentOS, nonché le origini definite dall'utente per i formati supportati. La memorizzazione nella cache degli elementi nei repository remoti riduce il tempo di download, migliora la disponibilità dei pacchetti e include analisi delle vulnerabilità, se abilitata.
    • I repository virtuali raggruppano i repository dello stesso formato dietro un unico endpoint e ti consentono di controllare l'ordine di ricerca nei repository upstream. Puoi dare la priorità ai pacchetti privati, il che riduce il rischio di attacchi di confusione delle dipendenze.
    • Puoi anche proteggere gli elementi configurando funzionalità di sicurezza come controllo dell'accesso dell'accesso, i perimetri di servizio dei Controlli di servizio VPC, i criteri dell'organizzazione e altre funzionalità di sicurezza. Per maggiori dettagli, consulta la documentazione di Artifact Registry.
  • Artifact Analysis rileva in modo proattivo le vulnerabilità per gli elementi in Artifact Registry.

Proteggi la pipeline CI/CD

Gli utenti malintenzionati possono attaccare le catene di fornitura del software compromettendo le pipeline CI/CD. I seguenti prodotti ti aiutano a proteggere la pipeline CI/CD:

  • Cloud Build esegue le build sull'infrastruttura Google Cloud. Le funzionalità di sicurezza includono autorizzazioni IAM granulari, Controlli di servizio VPC ed ambienti di build isolati ed effimeri. Le funzionalità specifiche per la sicurezza della catena di fornitura del software includono:

    • Supporto per le build SLSA di livello 3 per le immagini container.
    • Possibilità di generare provenienza della compilazione autenticata e non falsificabile per le applicazioni containerizzate.
    • Approfondimenti sulla sicurezza per le applicazioni create. tra cui:

      • Il livello di build SLSA, che identifica il livello di maturità del processo di compilazione del software in conformità con la specifica SLSA.
      • Vulnerabilità negli elementi della build.
      • La provenienza della build, ovvero una raccolta di metadati verificabili su una build. Sono inclusi dettagli come i digest delle immagini create, le località delle origini di input, la toolchain di build, i passaggi di build e la durata della build.

    Per istruzioni su come visualizzare gli insight sulla sicurezza per le applicazioni create, consulta Creare un'applicazione e visualizzare insight sulla sicurezza.

  • Cloud Deploy automatizza la distribuzione delle applicazioni in una serie di ambienti di destinazione in una sequenza definita. supporta la distribuzione continua direttamente in Google Kubernetes Engine, GKE Enterprise e Cloud Run, con approvazioni e rollback con un solo clic, sicurezza e audit aziendali, nonché metriche di distribuzione integrate. Inoltre, mostra informazioni sulla sicurezza per le applicazioni di cui è stato eseguito il deployment.

Proteggere le applicazioni in produzione

Google Kubernetes Engine (GKE) e Cloud Run contribuiscono a proteggere la posizione di sicurezza dei tuoi ambienti di runtime. Entrambe sono dotate di funzionalità di sicurezza per proteggere le applicazioni in fase di esecuzione.

  • GKE può valutare la tua strategia di sicurezza dei container e fornire indicazioni attive su impostazioni del cluster, configurazione dei carichi di lavoro e vulnerabilità. GKE include una dashboard della security posture che fornisce suggerimenti strategici e attuabili per migliorare la tua security posture. Per istruzioni su come visualizzare gli approfondimenti sulla sicurezza nella dashboard della security posture di GKE, consulta Eseguire il deployment su GKE e visualizzare gli approfondimenti sulla sicurezza.

  • Cloud Run include un riquadro della sicurezza che mostra insight sulla sicurezza della catena di approvvigionamento del software, come le informazioni sulla conformità a livello di build SLSA, la provenienza della build e le vulnerabilità rilevate nei servizi in esecuzione. Per istruzioni su come visualizzare gli insight sulla sicurezza nel riquadro degli insight sulla sicurezza di Cloud Run, consulta Esegui il deployment su Cloud Run e visualizza gli insight sulla sicurezza.

Crea una catena di attendibilità tramite i criteri

Binary Authorization consente di stabilire, mantenere e verificare una catena di attendibilità lungo la catena di fornitura del software raccogliendo attestazioni, ovvero documenti digitali che certificano le immagini.

Un'attestazione indica che l'immagine associata è stata creata mediante l'esecuzione corretta di una procedura specifica richiesta. In base a queste attestazioni raccolte, Autorizzazione binaria consente di definire, verificare e applicare criteri basati sull'attendibilità. Garantisce che l'immagine venga implementata solo se le attestazioni soddisfano i criteri della tua organizzazione. Puoi configurare l'autorizzazione binaria in modo che ti invii una notifica se rileva violazioni dei criteri.

Ad esempio, le attestazioni possono indicare che un'immagine è:

Puoi utilizzare l'Autorizzazione binaria con GKE e Cloud Run.

Prezzi

Ogni servizio Google Cloud ha un proprio prezzo. Per maggiori dettagli, consulta la documentazione relativa ai prezzi dei servizi che ti interessano.

Passaggi successivi