Strategie della catena di fornitura del software per parare gli attacchi di confusione delle dipendenze

Strategie della catena di fornitura del software per parare gli attacchi di confusione delle dipendenze

Strategie della catena di fornitura del software per contrastare gli attacchi confusi legati alle dipendenze PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

"Cosa c'è in un nome? Ciò che chiamiamo rosa con qualsiasi altro nome avrebbe un profumo altrettanto dolce. Quando Shakespeare scrisse queste parole (Romeo e Giulietta, Atto 2, Scena 2) nel 1596, stava dicendo che un nome è solo una convenzione. Non ha alcun significato intrinseco. Giulietta ama Romeo per quello che è, non per il suo nome.

Ma senza saperlo, Shakespeare descriveva anche gli attacchi di confusione da dipendenza.

La confusione delle dipendenze si verifica quando i pacchetti che stai utilizzando nel tuo codice non sono tuoi. Hanno lo stesso nome, ma non è il tuo codice in esecuzione in produzione. Stesso nome, ma un pacchetto profuma di rosa e l'altro... puzza.

Recenti rapporti di ricerca stimano che dal 41% al 49% delle organizzazioni sono a rischio di attacchi di confusione delle dipendenze. Una nuova ricerca di OX Security mostra che quando un’organizzazione è a rischio di un attacco di confusione delle dipendenze, il 73% delle sue risorse sono vulnerabili. La ricerca si è concentrata sulle organizzazioni di medie e grandi dimensioni (1K+, 8K+,80K+ dipendenti) in un'ampia gamma di settori (finanza, giochi, tecnologia e media) e hanno riscontrato il rischio in ogni settore e in organizzazioni di tutte le dimensioni. La ricerca ha inoltre rilevato che quasi tutte le applicazioni con più di 1 miliardo di utenti utilizzano dipendenze vulnerabili alla confusione delle dipendenze.

Questo articolo ha lo scopo di aiutarti a comprendere la confusione delle dipendenze e come prevenirla.

Doppio, doppio

Le dipendenze (chiamate anche pacchetti) sono gli elementi costitutivi del tuo software. In genere questi software, sviluppati da intere comunità o all'interno di un'azienda, svolgono un compito comune e necessario.

I gestori di pacchetti vengono spesso utilizzati per installare le dipendenze e mantenerle aggiornate. Eseguono la scansione dei registri pubblici e privati ​​per il nome del pacchetto e, a parità di altre condizioni, selezionano il numero di versione più alto. Gli aggressori ne approfittano inserendo nel registro pubblico un pacchetto “fittizio” con lo stesso nome ma con una versione successiva.

Quando un gestore di pacchetti si imbatte in due pacchetti identici, uno in un registro pubblico e uno in uno privato, si crea confusione, da qui il nome “confusione delle dipendenze”. Poiché i due pacchetti sono identici, il gestore sceglierà automaticamente di installare quello con una versione superiore - in questo caso, il pacchetto dannoso dell'aggressore.

Ciò offre ai dirottatori una backdoor nel tuo software. Da questo punto in poi, possono compiere violazioni dei dati, furti di proprietà intellettuale e compromettere in altro modo la catena di fornitura di fiducia del software. Possono anche introdurre violazioni della conformità che faranno scattare gravi sanzioni normative.

Fatica e guai

Esistono vari approcci a un attacco di confusione delle dipendenze.

  • Spaziatura dei nomi. Caricando una libreria di software dannoso in un registro pubblico, come il Python Package Index (PyPI) o JavaScript registro npm - questo è nominato in modo simile a una libreria attendibile utilizzata internamente, i sistemi che omettono un controllo dello spazio dei nomi/URL o non forzano il recupero da un registro privato potrebbero erroneamente inserire il codice dannoso. IL recente incidente di confusione tra dipendenze PyTorch ne è un esempio.
  • Spoofing DNS. Utilizzando una tecnica come lo spoofing DNS, i sistemi possono essere indirizzati a estrarre dipendenze da repository dannosi visualizzando al contempo quelli che sembrano URL/percorsi interni legittimi.
  • Sceneggiatura. Modificando gli script di build/installazione o integrazione continua/consegna continua (CI/CD), i sistemi possono essere indotti con l'inganno a scaricare le dipendenze del software da una fonte dannosa anziché da un repository locale.

Cose fatte bene e con cura

Per proteggersi dalla confusione delle dipendenze, istituire queste pratiche.

  • Imposta le policy nel gestore pacchetti. Impedisce ai gestori di pacchetti di dare priorità a un pacchetto pubblico rispetto a un pacchetto privato.
  • Includere sempre un file .npmrc. Se utilizzi il popolare NPM come gestore di pacchetti, includi sempre un file .npmrc che specifica dove recuperare i pacchetti nell'ambito di un'organizzazione specifica.
  • Prenota il nome del pacchetto in un registro pubblico. Un altro modo per proteggersi dagli attacchi di confusione delle dipendenze è riservare il nome del pacchetto in un registro pubblico in modo che i dirottatori non possano utilizzarlo e, quindi, non possano "ingannare" il gestore dei pacchetti inducendolo a installare un pacchetto dannoso.

Per proteggersi completamente dagli attacchi di confusione delle dipendenze, le organizzazioni dovrebbero sempre utilizzare ambiti dell'organizzazione per tutti i pacchetti interni, anche durante la pubblicazione nel registro interno. Gli ambiti dell'organizzazione dovrebbero inoltre essere registrati nel registro pubblico di NPM, impedendo così a chiunque di appropriarsi dell'ambito e di trarre vantaggio dalla confusione.

Anche i nomi dei pacchetti dovrebbero essere registrati pubblicamente. Se un'organizzazione utilizza il popolare PIP come gestore di pacchetti per le dipendenze Python, ad esempio, dovrebbe creare pacchetti interni con un suffisso rigoroso che sia riconoscibile e funzioni su tutti i progetti. Carica un pacchetto vuoto con lo stesso nome nel registro pubblico PyPI come segnaposto.

Un altro motivo per riservare il nome del pacchetto in un registro pubblico è perché se qualcun altro lo riserva (dolcemente o meno), gli sviluppatori dovranno cambiare tutti i nomi dei pacchetti nel registro privato con uno che non sia ancora stato riservato nel registro pubblico. Questo può essere un processo lungo e noioso.

È importante notare che non tutti i registri dei pacchetti consentono agli utenti di riservare i nomi dei pacchetti, quindi assicurati di trovarne uno che lo faccia.

Esci, inseguito da un orso

Gli attacchi di confusione delle dipendenze rappresentano una minaccia seria e imminente alla sicurezza informatica per le organizzazioni a livello globale. Circa la metà di tutte le organizzazioni sono a rischio e il 73% delle loro risorse sono esposte. Per contrastare questa minaccia crescente, le organizzazioni devono implementare solide misure preventive e adottare le migliori pratiche di sicurezza informatica.

Le rose di Shakespeare potrebbero aver presagito il rischio di attacchi di confusione da dipendenza per centinaia di anni, ma un'altra citazione del Bardo potrebbe contenere una certa saggezza per proteggersi da essi: “Lascia che ogni occhio negozi per se stesso e non si fidi di nessun agente.” (Molto rumore per nulla, atto 2, scena 1)

Timestamp:

Di più da Lettura oscura