Minacce alla catena di fornitura del software in fase di creazione

Mentre il ciclo di vita della supply chain del software progredisce dal codice sorgente agli artefatti eseguibili, la fase di build rappresenta un momento critico. Tuttavia, questa fase trasformativa è anche suscettibile a una serie di minacce che possono compromettere l'integrità del software e build securityQueste minacce possono infiltrarsi nel processo di compilazione attraverso vari metodi, tra cui aggirare le regole stabilite CI/CD pipeline, modificando il controllo post-sorgente del codice, compromettendo il processo di compilazione stesso o manipolando i repository di artefatti. In questo post del blog, approfondiamo queste minacce ed esaminiamo gli attacchi più diffusi alla creazione della catena di fornitura del software. Questo contenuto continua l'esplorazione della nostra serie di blog software supply chain security tutto l' SDLC.

La fase di creazione nel ciclo di vita dello sviluppo del software 

La fase di creazione del ciclo di vita della catena di fornitura del software comprende il processo di trasformazione del codice sorgente in artefatti software eseguibili. Questa fase prevede la compilazione, il collegamento e il confezionamento del codice sorgente, nonché la generazione di pacchetti di installazione e file di configurazione.

Build security le minacce sono vulnerabilità che potrebbero consentire a un avversario di introdurre modifiche non autorizzate al software durante il processo di compilazione senza alterare il codice sorgente. Queste minacce possono essere introdotte tramite vari metodi, come la compromissione dell'ambiente di compilazione o lo sfruttamento delle vulnerabilità negli strumenti di compilazione. 

attacchi-di-costruzione-di-sicurezza-della-catena-di-fornitura-del-software-attacchi-di-costruzione-della-catena-di-fornitura-del-software

Minacce più comuni alla catena di fornitura del software: attacchi di build

Aggirare CI/CD

Si riferisce alla pratica di aggirare le norme stabilite CI/CD (integrazione continua e consegna continua) pipeline creare e pubblicare direttamente software senza sottoporsi ai rigorosi processi di test, verifica e controllo normalmente applicati dai funzionari pipelineCiò può essere fatto creando manualmente il software al di fuori del CI/CD ambiente o utilizzando strumenti o script che consentono modifiche non autorizzate al processo di compilazione. Un esempio di questo tipo di attacco vettoriale è stato il Attacco Jenkins. Nel 2022, gli hacker si sono infiltrati nel build pipeline di un popolare progetto software open source chiamato Jenkins. Gli hacker hanno iniettato codice dannoso in un Jenkinsfile, che è uno script che definisce il processo di compilazione. Il codice dannoso ha permesso agli hacker di bypassare il CI/CD pipelinee inseriscono il loro codice nel processo di compilazione. Questo codice viene quindi eseguito sui sistemi delle organizzazioni che hanno installato il software.

Modificare il codice dopo il controllo del codice sorgente 

Questa pratica implica apportare modifiche non autorizzate al codice sorgente dopo che è stato creato committed a un sistema di controllo del codice sorgente affidabile (SCS) e quindi costruendo il software utilizzando questo codice modificato. Ciò può essere fatto modificando direttamente il codice sulla workstation di uno sviluppatore o utilizzando strumenti o script esterni per inserire codice dannoso nel processo di creazione. Un esempio di questo attacco vettoriale è stato il GitLab Attack nel 2022. Gli hacker si sono infiltrati nella build pipeline of GitLabGli hacker hanno iniettato codice dannoso in GitLab CI/CD pipeline, che è uno strumento che automatizza l' build security processo. Il codice maligno ha permesso agli hacker di modificare il codice dopo che era stato sottoposto a controllo del codice sorgente. Ciò ha permesso loro di iniettare il loro codice nel software, che è stato poi eseguito sui sistemi delle organizzazioni che hanno installato il software.

Compromettere il processo di creazione

Ciò comporta la manipolazione o l'alterazione del processo di compilazione stesso, tramite l'accesso diretto all'ambiente di compilazione o sfruttando le vulnerabilità negli strumenti di compilazione o le dipendenze di terze parti. Questo può essere fatto per introdurre codice dannoso nell'output della build, manomettere la provenienza della build o interrompere del tutto il processo di build. L'esempio più famoso di questo attacco vettoriale è stato il Attacco SolarWinds. Un utente malintenzionato aveva ottenuto l'accesso non autorizzato alla piattaforma di build di SolarWinds, un sistema utilizzato per compilare e impacchettare il software SolarWinds Orion. Questo script ha iniettato codice dannoso nel software SolarWinds Orion compilato. Quando gli utenti installavano il software compromesso, il codice dannoso veniva eseguito sui loro sistemi, fornendo all'aggressore un accesso non autorizzato ai loro sistemi. L'aggressore è anche riuscito a rubare dati sensibili dai loro sistemi, come credenziali, proprietà intellettuale e informazioni sui clienti.

Compromettere il repository degli artefatti

Si riferisce all'accesso o alla manipolazione non autorizzati di un repository di artefatti, in cui pacchetti software e file binari vengono archiviati per la distribuzione a utenti interni o esterni. Gli aggressori possono sfruttare questa vulnerabilità per introdurre codice dannoso, manomettere l'autenticità del software o interrompere il processo di distribuzione. Un esempio di questo attacco vettoriale è stato I RubyGems nel 2022. Gli hacker si sono infiltrati nel repository degli artefatti di RubyGems. Gli hacker hanno sostituito un artefatto legittimo con uno dannoso, che è stato poi scaricato da migliaia di organizzazioni che realizzavano software con Ruby on Rails. L'artefatto dannoso ha consentito agli hacker di eseguire codice arbitrario sui sistemi delle organizzazioni che hanno installato il software. Ciò potrebbe potenzialmente consentire loro di rubare dati, installare malware o interrompere le operazioni.

Osservazioni finali

Poiché le organizzazioni continuano ad adottare pratiche di sviluppo software che enfatizzano l'automazione e la distribuzione continua, l'importanza di proteggere il processo di creazione del software non è mai stata così grande. Implementando solide misure di sicurezza durante tutta la fase di creazione, le organizzazioni possono ridurre significativamente il rischio di cadere vittime di attacchi dannosi che possono compromettere l'integrità e la sicurezza del proprio software.

Le strategie delineate in questo post del blog e gli esempi forniti servono a ricordare che la fase di creazione è un punto vulnerabile nella catena di fornitura del software. Le organizzazioni dovrebbero prestare attenzione a queste minacce e implementare le misure di sicurezza necessarie per proteggere il proprio software dagli attacchi. In questo modo, possono garantire l'integrità, la sicurezza e l'affidabilità del proprio software per utenti e clienti.

Unisciti al nostro viaggio verso un ecosistema software sicuro

Non perdere questa opportunità di rimanere all'avanguardia nell'evitare le minacce alla catena di fornitura del software. Iscriviti oggi stesso al nostro blog e sarai il primo a ricevere i nostri ultimi approfondimenti, assicurando che la tua organizzazione rimanga resiliente e sicura nonostante le minacce in evoluzione. Insieme possiamo costruire un ecosistema software più solido e sicuro per tutti.

Esplora le funzionalità di Xygeni!
Guarda la nostra demo video
sca-tools-software-strumenti-di-analisi-della-composizione
Dai priorità, risolvi e proteggi i rischi del tuo software
Prova gratuita 7-day
Nessuna carta di credito richiesta

Proteggi lo sviluppo e la consegna del tuo software

con la suite di prodotti Xygeni