Sicurezza della catena di fornitura del software

Google Cloud fornisce un insieme completo e modulare di funzionalità e strumenti tra i Google Cloud prodotti che i team di sviluppo, DevOps e sicurezza possono utilizzare per migliorare la security posture della catena di fornitura 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, creare, pacchettizzare, installare ed eseguire il software.
  • Processi e policy per l'accesso al sistema, i test, la revisione, il monitoraggio e il feedback, la comunicazione e l'approvazione.
  • I sistemi di cui ti fidi per sviluppare, creare, archiviare ed eseguire il software e le relative dipendenze.

Data l'ampia portata e la complessità delle catene di fornitura del software, esistono numerosi modi per introdurre modifiche non autorizzate al software che distribuisci agli utenti. Questi vettori di attacco riguardano l'intero ciclo di vita del software. Mentre alcuni attacchi sono mirati, come l'attacco al SolarWinds sistema di compilazione, altre minacce sono indirette o entrano nella catena di fornitura attraverso debolezze nel processo o negligenza.

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

Anche le pratiche e i processi di sviluppo influiscono sulle catene di fornitura del software. Le lacune nei processi, come la mancanza di revisione del codice o di criteri di sicurezza per il deployment in produzione, possono consentire l'ingresso involontario di codice errato nella catena di fornitura. Allo stesso modo, la mancanza di gestione delle dipendenze aumenta il rischio di vulnerabilità da origine esterna o pacchetti software utilizzati per lo sviluppo, le build o il deployment.

Proteggi le catene di fornitura del software su Google Cloud

Google Cloud fornisce:

  • Prodotti e funzionalità che incorporano le best practice di sicurezza per lo sviluppo, la creazione, i test, il deployment e l'applicazione delle policy.
  • Dashboard nella Google Cloud console che forniscono informazioni sulla sicurezza relative a origine, build, artefatti, deployment e runtime. Queste informazioni includono le vulnerabilità negli artefatti della build, la provenienza della build e gli elenchi di dipendenze della distinta base del software (SBOM).
  • Informazioni che identificano il livello di maturità della sicurezza della catena di fornitura del software utilizzando il framework Supply-chain Levels for Software Artifacts (SLSA).

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

 Componenti della catena di fornitura del softwareGoogle Cloud

Proteggi l'ambiente di sviluppo

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

Cloud Workstations sposta la sicurezza a sinistra migliorando la security posture degli ambienti di sviluppo delle applicazioni. Le funzionalità di sicurezza includono Controlli di servizio VPC, traffico in entrata o in uscita privato, aggiornamento forzato delle immagini e policy di accesso Identity and Access Management. Cloud Workstations fornisce funzionalità aggiuntive di prevenzione della perdita di dati se combinato con Chrome Enterprise Premium.

Proteggi la fornitura del software

Proteggere la fornitura del software, ovvero gli artefatti della build e le dipendenze delle applicazioni, è un passaggio fondamentale per migliorare la sicurezza della catena di fornitura del software. L'uso diffuso di software open source rende questo problema particolarmente difficile.

  • 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, analisi e test per rilevare eventuali vulnerabilità.

  • Artifact Registry è un gestore di pacchetti universale per tutti gli artefatti e le dipendenze delle build. Centralizzando tutti gli artefatti e le dipendenze, hai maggiore visibilità e controllo sul codice nella catena di fornitura del software.

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

Proteggi la pipeline CI/CD

I 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' Google Cloud infrastruttura. Le funzionalità di sicurezza includono autorizzazioni IAM granulari, Controlli di servizio VPC e ambienti di build isolati ed effimeri. Le funzionalità specifiche per la sicurezza della catena di fornitura del software includono:

    • Supporto per le build di livello 3 di SLSA per le immagini container.
    • Possibilità di generare una provenienza della build autenticata e non falsificabile per le applicazioni containerizzate.
    • Insight sulla sicurezza per le applicazioni create. Sono inclusi:

      • 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 artefatti della build.
      • La provenienza della build, ovvero una raccolta di metadati verificabili su una build. Include dettagli come i digest delle immagini create, le posizioni della sorgente di ingresso, la toolchain di build, i passaggi di build e la durata della build.

    Per istruzioni sulla visualizzazione degli insight sulla sicurezza per le applicazioni create, vedi Creare un'applicazione e visualizzare insight sulla sicurezza.

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

Proteggi le applicazioni in produzione

Google Kubernetes Engine (GKE) e Cloud Run contribuiscono a proteggere la security posture degli ambienti di runtime. Entrambi includono funzionalità di sicurezza per proteggere le applicazioni in fase di runtime.

  • GKE può valutare la security posture dei container e fornire indicazioni attive sulle impostazioni dei cluster, sulla configurazione dei carichi di lavoro e sulle vulnerabilità. GKE include una dashboard sulla postura di sicurezza che fornisce suggerimenti attendibili e strategici per migliorare la security posture. Per istruzioni sulla visualizzazione degli insight sulla sicurezza nella dashboard sulla postura di sicurezza di GKE, vedi Eseguire il deployment su GKE e visualizzare insight sulla sicurezza.

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

Crea una catena di attendibilità tramite le policy

Autorizzazione binaria consente di stabilire, gestire 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 eseguendo correttamente un processo specifico e obbligatorio. In base a queste attestazioni raccolte, Autorizzazione binaria consente di definire, verificare e applicare policy basate sull'attendibilità. Assicura che il deployment dell'immagine venga eseguito solo se le attestazioni soddisfano la policy dell'organizzazione. Puoi configurare Autorizzazione binaria in modo che ti invii una notifica se rileva violazioni delle policy.

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

  • È stata creata da Cloud Build.
  • Non contiene vulnerabilità di gravità superiore a quella specificata. Se esistono vulnerabilità specifiche che non si applicano alle tue applicazioni, puoi aggiungerle a una lista consentita.

Puoi utilizzare Autorizzazione binaria con GKE e Cloud Run.

Prezzi

Ogni Google Cloud servizio ha un proprio prezzo. Per maggiori dettagli, consulta la documentazione sui prezzi dei servizi di tuo interesse.

Passaggi successivi