I moderni framework e approcci allo sviluppo del software si concentrano sulla velocità e sull'affidabilità della distribuzione del software, nonché sulla proprietà condivisa tra gli stakeholder del software.
Oltre alla pratica DevOps di abbandonare la sicurezza, molte altre pratiche DevOps contribuiscono a fornire software più sicuro. Maggiore collaborazione con gli stakeholder, visibilità del lavoro, build riproducibili, test automatici, modifiche incrementali sono tutte pratiche che possono supportare la sicurezza del software. Infatti, il report 2022 Accelerate State of DevOps ha rilevato che le culture con fiducia più elevata hanno maggiori probabilità di adottare pratiche per rafforzare la catena di fornitura del software e l'uso di CI/CD aiuta a implementare le pratiche di sicurezza.
Tuttavia, i moderni framework di sviluppo non hanno indicazioni che aiutino le organizzazioni a comprendere le minacce al loro software, a valutare la loro capacità di rilevare e rispondere alle minacce e a implementare le mitigazioni. Tendono inoltre a concentrarsi in modo specifico sul codice e sui processi all'interno di un'organizzazione e trascurano i fattori esterni che possono influire sull'integrità delle applicazioni. Ad esempio, un attacco che compromette un pacchetto software open source ha un impatto su qualsiasi codice che si basa direttamente o indirettamente su quel pacchetto. Gli attacchi alla catena di fornitura del software come questi sono aumentati notevolmente dal 2020.
Catene di fornitura del software
Una catena di fornitura del software è composta 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 sue dipendenze e il software interno ed esterno che utilizzi per sviluppare, creare, pacchettizzare, installare ed eseguire il software.
- Processi e criteri per accesso al sistema, test, revisione, monitoraggio e feedback, comunicazione e approvazione.
- Sistemi affidabili per lo sviluppo, la creazione, l'archiviazione e l'esecuzione del software e delle sue dipendenze.
Data l'ampia portata e complessità della catena di fornitura del software, esistono numerosi modi per introdurre modifiche non autorizzate al software che distribuisci agli utenti. Questi vettori di attacco coprono tutto il ciclo di vita del software. Sebbene alcuni attacchi siano mirati, come quello al sistema di compilazione SolarWinds, altre minacce sono indirette o entrano nella catena di fornitura attraverso debolezze del processo o negligenza.
Ad esempio, in un post del blog sulla vulnerabilità dell'esecuzione remota in Apache log4j di dicembre 2021, il team degli insight di Google Open Source ha notato che in Maven Central erano presenti oltre 17.000 pacchetti. La maggior parte dei pacchetti interessati non dipendeva direttamente dal pacchetto log4j-core
vulnerabile, ma aveva delle dipendenze che lo richiedevano.
Le lacune nei processi, come la mancanza di revisione del codice o di criteri di sicurezza per il deployment in produzione, possono consentire al codice errato di entrare involontariamente nella catena di fornitura. Allo stesso modo, il codice non valido può entrare nel tuo software se crei con codice sorgente al di fuori del sistema di controllo della versione attendibile o se pacchettizzi ed esegui il deployment di applicazioni da sistemi esterni al sistema di compilazione e ai repository di artefatti attendibili.
Secondo lo stato della catena di fornitura del software nel 2021, sia l'uso di software open source sia gli attacchi alle catene di fornitura del software sono aumentati notevolmente tra il 2020 e il 2021:
- Nel 2021 è stato registrato un aumento del 650% su base annua degli attacchi alla catena di fornitura del software.
- La disponibilità e la domanda di pacchetti open source continuano a crescere, con un aumento del 73% su base annua dei download dei componenti open source nel 2021.
- Le vulnerabilità sono più comuni nei progetti open source più popolari.
Per proteggere l'integrità del software, è importante comprendere la tua postura di sicurezza, ovvero quanto è preparata la tua organizzazione a rilevare, rispondere e risolvere le minacce.
Requisiti di conformità e framework di valutazione
La crescente preoccupazione per la sicurezza della catena di fornitura ha portato alla creazione di nuove normative governative specifiche per la sicurezza della catena di fornitura, tra cui:
- Ordini esecutivi degli Stati Uniti
- La Direttiva sulla sicurezza delle reti e delle informazioni 2 dell'Unione Europea
Stanno emergendo nuovi framework per aiutare le organizzazioni a valutare la propria strategia di sicurezza e a conoscere le mitigazioni per le minacce.
- Supply Chain Levels for Software Artifacts (SLSA), un framework open source ispirato alle pratiche di sicurezza del software di Google.
- Framework di organizzazioni governative, ad esempio:
- National Institute of Standards and Technology (NIST) Secure Software Development Framework (SSDF) (Stati Uniti)
- Cybersecurity Assessment Framework (Regno Unito)
Questi framework adottano pratiche di sicurezza del software consolidate e le strutturano in un formato che consente di identificare le minacce alla sicurezza da affrontare e quali azioni intraprendere per mitigare le minacce.
Proteggi la catena di fornitura del software su Google Cloud
Software Delivery Shield offre una soluzione di sicurezza per la catena di fornitura del software completamente gestita su Google Cloud. Incorpora best practice, incluse pratiche in framework come SLSA e NIST SSDF. Adotta i componenti della soluzione gradualmente, in base alle tue priorità e alle tue esigenze.
Passaggi successivi
- Scopri di più sulle minacce alle catene di fornitura del software.
- Valuta la tua strategia di sicurezza esistente in modo da poter identificare modi per rafforzarla.
- Scopri le pratiche per proteggere la catena di fornitura del software e come le funzionalità di Software Delivery Shield possono essere utili.
- Scopri di più su Software Delivery Shield e prova le guide rapide.