Rischi comuni della catena di fornitura del software e come mitigarli

Secondo un Relazione Gartner, entro il 45, fino al 2025% delle organizzazioni in tutto il mondo avrebbe subito un attacco alla catena di fornitura del software. Questo tipo di attacco sta diventando frequente e difficile da affrontare a causa dei cambiamenti nel modo in cui vengono realizzati oggigiorno i prodotti software.

Oggi gli ingegneri del software non devono creare applicazioni da zero. Tanto quanto Il 90% di un'app può essere creato con codici di terze parti, librerie discrete e software Open Source. Se da un lato questo approccio allo sviluppo del software contribuisce a semplificare il processo di creazione delle app e a far risparmiare una notevole quantità di tempo, dall'altro aumenta anche le minacce e le vulnerabilità della sicurezza poiché i pacchetti dannosi possono essere distribuiti tramite codici e software di terze parti.

Alla fine, lo è diventando sempre più difficile per mantenere l’integrità delle catene di fornitura del software. Il recente aumento dei rischi nella catena di fornitura del software e le violazioni di alto profilo da essi causate dimostrano quanto sia grave il problema delle vulnerabilità nella catena di fornitura.

In linea con questa tendenza, è diventato imperativo per le organizzazioni agire per garantire l’integrità e la sicurezza del proprio software. In questo post esploreremo i rischi comuni della catena di fornitura del software e i vari modi in cui le organizzazioni possono mitigare queste vulnerabilità e proteggere il proprio software dagli attacchi.

Le vulnerabilità note nelle catene di fornitura del software

Il software di terze parti può rappresentare diverse minacce per la catena di fornitura del software. Gli aggressori possono utilizzare vari modi per sfruttare le vulnerabilità nei sistemi che dipendono da questo software di terze parti. Alcuni di questi metodi di attacco includono l'introduzione di codice dannoso nel software, la confusione delle dipendenze, il typosquatting e così via.

Tuttavia, a causa della complessità dello sviluppo del software e della velocità con cui le nuove app devono essere distribuite nel mercato digitale altamente competitivo di oggi, gli ingegneri del software non hanno altra scelta se non quella di affidarsi a strumenti di terze parti e librerie esterne per creare applicazioni il più rapidamente possibile. .

Le vulnerabilità possono essere introdotte nelle applicazioni come risultato di:

 

  • Il codice che scrivi: pratiche di sicurezza inadeguate nel codice personalizzato che hai scritto tu stesso
  • Con cosa crei: gli strumenti di sviluppo software utilizzati per creare app possono essere compromessi, esponendo il tuo software a vulnerabilità della sicurezza
  • Cosa acquisti: alcune applicazioni Software-as-a-Service (SaaS) standardizzate utilizzate per lo sviluppo di app potrebbero contenere vulnerabilità
  • Cosa usi: molte applicazioni dipendono da librerie open source di terze parti che possono fungere da anello debole nella tua catena di fornitura.

 

Considerando i numerosi potenziali anelli deboli in ogni catena di fornitura del software, le organizzazioni devono essere proattive nella prevenzione e nella riparazione vulnerabilità della catena di fornitura del software. Per fare ciò, gli ingegneri del software devono comprendere questi potenziali rischi o minacce che i loro progetti software possono potenzialmente affrontare. Alcune di queste minacce includono:

Pacchetto di codice dannoso incorporato

Una delle cose che gli aggressori fanno in un attacco alla catena di fornitura del software è infettare gli endpoint interessati con software dannoso. Questo malware potrebbe essere un virus, un ransomware, un cavallo di Troia o uno spyware in grado di provocare danni al software e ai sistemi informatici interessati.

Gli aggressori spesso scelgono obiettivi i cui sistemi dispongono di un'autorizzazione di alto livello sui dispositivi degli utenti. Un esempio notevole di un attacco come questo è l’attacco informatico del 2021 subito da Cassiere, uno sviluppatore di soluzioni IT i cui clienti includevano fornitori di servizi gestiti e clienti aziendali.

Una delle soluzioni IT chiave offerte da Kaseya è VSA, uno strumento unificato di monitoraggio e gestione remota. Il server VSA era altamente affidabile sui dispositivi dei clienti e, infiltrandosi al suo interno, gli aggressori sono riusciti a eludere i controlli di autenticazione sui client connessi. In questo modo, potrebbero caricare payload dannosi senza ostacoli. L'attacco Kaseya è simile al Il fiasco della sicurezza di SolarWinds, in cui gli aggressori sono riusciti a inviare aggiornamenti dannosi a migliaia di clienti, esponendoli a ulteriori vulnerabilità della sicurezza.

Esfiltrazione di dati sensibili

Ogni attacco con obiettivo il furto di dati può essere classificato come attacco di esfiltrazione di dati. Si dice che l'esfiltrazione dei dati avvenga quando un utente malintenzionato effettua un trasferimento non autorizzato di dati sensibili da un sistema di destinazione a una posizione diversa. Un esempio notevole di attacco di esfiltrazione di dati avvenuto a seguito di un attacco alla catena di fornitura è stato il Attacco del novembre 2013 a Target, una delle più grandi società di vendita al dettaglio negli Stati Uniti.

Gli aggressori sono entrati nei sistemi di Target utilizzando credenziali rubate a un fornitore di terze parti. Questo attacco ha consentito loro di accedere non autorizzati al database del servizio clienti di Target, consentendo loro di acquisire nomi, numeri di telefono, indirizzi e-mail, informazioni sulle carte di pagamento e altri dati sensibili dei clienti. Le informazioni sulle carte di pagamento di 41 milioni di clienti target sono state esfiltrate nei server dell'aggressore mentre più di 60 milioni di clienti hanno visto esposte le proprie informazioni di contatto.

Esecuzione di codice remoto

L'esecuzione di codice remoto (chiamata anche esecuzione di codice arbitrario) è un tipo di attacco informatico in cui un utente malintenzionato ottiene l'accesso per comandare il funzionamento di un dispositivo o computer in remoto. In genere l'aggressore inserisce codice dannoso in un file, una stringa o un intero pacchetto che la vittima intende eseguire sui propri sistemi. Ciò consente all'aggressore di lanciare un attacco su vasta scala in grado di compromettere un'intera app Web o un intero server Web. Due modi comuni in cui possono verificarsi attacchi di esecuzione di codice in modalità remota negli attacchi alla catena di fornitura del software sono tramite Typosquatting e Dependency Confusion:

Typosquatting

Per eseguire questo tipo di attacco, gli autori malintenzionati in genere creano un pacchetto compromesso identico alle dipendenze che si intende installare. Di solito, il pacchetto dannoso ha un'ortografia leggermente diversa. L'intenzione è quella di trarre vantaggio da un possibile errore di battitura di un comando di installazione. Il pacchetto dannoso normalmente funziona come la dipendenza che l'ingegnere intendeva installare, ma allo stesso tempo esegue anche un codice dannoso che è stato incorporato al suo interno.

Confusione delle dipendenze

La confusione delle dipendenze è un altro approccio utilizzato dagli aggressori per avviare un'esecuzione di codice remoto in un attacco alla catena di fornitura del software. Con questo tipo di attacco, gli autori malintenzionati creano su una libreria esterna un pacchetto con lo stesso nome di un pacchetto di dipendenze interno. Poiché entrambe le dipendenze hanno lo stesso nome, il gestore dei pacchetti potrebbe invece installare il codice dannoso. Ciò consente all'aggressore di penetrare nell'ambiente di integrazione continua/distribuzione continua (CI/CD) dell'applicazione software in fase di sviluppo.

Come mitigare i rischi nella catena di fornitura del software?

Negli ultimi anni, gli attacchi alla catena di fornitura del software sono diventati una delle maggiori minacce informatiche affrontate dalle organizzazioni di tutto il mondo. La mitigazione dei rischi di attacchi come questo è diventata una parte importante della sicurezza informatica e della gestione del rischio in ogni organizzazione, in particolare quelle che dipendono da un software di terze parti o da un altro. Piuttosto che fidarsi ciecamente delle piattaforme di terze parti e degli archivi pubblici, è meglio prendere precauzioni ed eseguire i controlli necessari su ciò che viene importato nel tuo sistema. Quando crei il tuo piano di gestione dei rischi della catena di fornitura del software, puoi utilizzare i seguenti modi per mitigare i rischi di attacchi alla catena di fornitura del software:

 

Controlla il tuo software

Ciò che rende gli attacchi alla supply chain così difficili da combattere è che il rischio va oltre i vostri sistemi. Per mitigare il rischio di questi attacchi, devi fare molto di più che proteggere semplicemente il tuo perimetro. Invece, la tua strategia deve essere maggiormente focalizzata nel garantire che i sistemi software esterni collegati al tuo siano altrettanto sicuri.

Tuttavia, questo è spesso difficile da ottenere, soprattutto quando non si dispone nemmeno di informazioni sufficienti sui sistemi esterni a cui si è connessi o sulle dipendenze del codice utilizzato all'interno dell'applicazione. Il primo passo per mitigare il rischio di un attacco alla catena di fornitura è eseguire un audit completo della catena di fornitura del software.

Proprio di recente, a seguito dell’attacco SolarWinds del 2020 che ha colpito diverse agenzie governative statunitensi, il governo federale degli Stati Uniti ha reso gli audit del software un requisito legale per ogni azienda che vende software a un'agenzia governativa statunitense. Dovresti fare lo stesso anche per tutti i tuoi sistemi. Tenere un registro chiaro di tutte le dipendenze del tuo software è l'unico modo per sapere se il tuo sistema è esposto al rischio di attacchi alla catena di fornitura.

Oltre a controllare immediatamente le dipendenze del tuo software, devi anche controllare nuovamente il tuo sistema con ogni nuova versione del tuo software. Potrebbe anche essere necessario andare oltre il controllo manuale eseguendo un controllo più approfondito in grado di identificare tutti i tipi di dipendenze, comprese quelle temporanee.

Controllo automatizzato

Oltre a controllare manualmente i tuoi sistemi, potresti anche dover impostare il controllo sul pilota automatico. L'automazione gioca un ruolo chiave nell'individuare le vulnerabilità in qualsiasi parte del tuo software. Le scansioni automatizzate aiutano a scoprire rapidamente le vulnerabilità nel codice software in modo che possano essere risolte prima che il codice venga messo in produzione. L’uso di codice di terze parti nello sviluppo di software continuerà a crescere e gli autori malintenzionati prenderanno continuamente di mira questi sistemi come anello debole per lanciare attacchi al software nella catena del valore. L'unico modo per fermarli è rimanere costantemente al passo con la sicurezza del tuo sistema controllandolo continuamente.

Preparare una distinta base del software

La distinta base del software (SBOM) è diventato uno dei modi principali per garantire la sicurezza del software e mitigare i rischi della catena di fornitura. Questo documento è un metadato formale, leggibile dalla macchina, progettato per identificare tutto il contenuto di un pacchetto software. Fornisce inoltre in dettaglio altre informazioni vitali come i dati di licenza e i diritti d'autore di tutti i componenti utilizzati nella creazione di un prodotto software.

Il concetto di redigere una distinta base non è del tutto nuovo. Storicamente trae origine dal mondo manifatturiero. Qui, ogni prodotto fabbricato riceve una distinta base che funge da inventario di tutti gli articoli inclusi nel processo di produzione di quel prodotto.

Immagine su SBOM

 

Lo stesso principio può essere applicato alla gestione del rischio della catena di fornitura del software. La SBOM descrive in dettaglio la parte della tua applicazione che hai creato da zero, elencando anche tutte le parti ottenute da fornitori di terze parti. In questo modo, quando viene scoperta una vulnerabilità, puoi facilmente risalire alla sua fonte.

Le SBOM sono pensate per essere condivise tra varie organizzazioni che utilizzano un componente software. Ciò garantisce trasparenza su tutti i componenti utilizzati da tutti nella catena di fornitura del software. In qualità di organizzazione preoccupata per la sicurezza del software, è necessario dare priorità alle SBOM. Prima di aggiungere un componente al prodotto software, sarebbe utile ottenere una distinta dei materiali dal fornitore. Ciò renderà più semplice rispondere alle sfide e alle vulnerabilità della sicurezza.

Sviluppare un quadro di gestione del rischio

Per mitigare i rischi degli attacchi alla catena di fornitura del software, è sempre meglio adottare un approccio proattivo piuttosto che aspettare che si verifichi un attacco. Delineando in anticipo i possibili scenari di attacco, puoi accedere alla tua preparazione per combatterli in futuro.

Nell'ambito delle attività di gestione del rischio della catena di fornitura del software, è necessario sviluppare un modo per valutare la probabilità che un utente malintenzionato possa compromettere il sistema. In questo modo, puoi determinare le strategie preventive da adottare per limitare questi rischi, nonché il piano di emergenza da mettere in atto per affrontare il rischio.

Formare tutti i membri della tua organizzazione su come rispondere agli attacchi alla catena di fornitura è un'altra parte essenziale del tuo quadro di gestione del rischio. Ciò consentirà a tutti di essere vigili nell’anticipare tali attacchi e di rispondere adeguatamente se si verificano.

Conclusione

Gli attacchi alla catena di fornitura del software continueranno a esporre le organizzazioni a varie forme di rischi. Pertanto, gli ingegneri non possono più dare per scontato che i pacchetti di terze parti che utilizzano per creare, distribuire e mantenere le loro applicazioni software siano sicuri e adeguatamente mantenuti. In effetti, il motivo principale per cui gli attacchi alla catena di fornitura del software sono diventati più comuni rispetto al passato è in parte dovuto alla maggiore dipendenza da codici di terze parti nella creazione di app software. Per mitigare questi rischi, è necessario fare un inventario della catena di fornitura del software e adottare misure per ridurre al minimo l’impatto di queste minacce sul sistema al fine di prevenire gravi violazioni e le relative conseguenze.