Saturday’s Talks: dependency confusion, ovvero come bucare Apple, Shopify, Netflix, Paypal e altri con un solo vettore di attacco

piracymalware 768x513 1

Siano essi centralinisti, sistemisti o developer, ogni persona che lavori per conto di un’azienda tech è potenziale vettore e obiettivo di attori malevoli ed è necessario mantenere alta la guardia per evitare di ritrovarsi a essere inconsapevolmente noi stessi punto di ingresso verso il cuore dell’infrastruttura aziendale.

Tutto nasce da un pacchetto, ovvero una collezione di codice riutilizzabile scritto da altri per fare quasi qualunque cosa, dal sapere se un numero è pari, sino all’identificare delle persone in un feed video. Avere come dipendenza del codice pubblico significa fidarsi di altri dev sconosciuti ma è una pratica essenziale nel mondo tecnologico moderno perché consente di non dover reinventare la ruota ogni giorno.

Ebbene, correva il 2021 quando un security researcher rumeno che va sotto il nome di Alex Birsen stava lavorando a un bounty program per Paypal quando, insieme a un gruppo di colleghi, notava su dei repo Github del codice Node.js, sempre relativo a Paypal, che includeva nel file package.json una lista di pacchetti elencati come dipendenze.

Si sa che le dipendenze sono spesso sede di vulnerabilità e, più dipendenze ha un software, maggiore sarà la superficie di attacco. Tali pacchetti, però, non risultavano disponibili tramite npm, il noto package manager di Javascript, poiché distribuiti da repository interni all’azienda e quindi inarrivabili.

Un vicolo cieco, verrebbe da pensare, e tutto ciò sarebbe potuto essere ignorato se non fosse per la curiosità di Alex Birsen e colleghi, i quali si sono chiesti cosa sarebbe accaduto se si fosse caricato sui repo pubblici un pacchetto con lo stesso nome di uno di quelli internamente distribuiti.

Alex Birsen e colleghi che, ricordiamo, stavano lavorando al bounty program ed erano quindi autorizzati dalla stessa azienda ad andare oltre, hanno così provato a fare esattamente quanto descritto e i risultati avevano dell’incredibile: in mancanza di accorgimenti specifici (package indexing o hash da matchare), trovando lo stesso pacchetto sia nei repo aziendali interni e sia sui repo pubblici, npm non solo sceglie di installare la versione più recente, ma permette anche di eseguire uno script di pre-installazione, che può contenere ulteriore codice arbitrario. Trattandosi di un test e non di hacker black hat, si è scelto di raccogliere giusto alcune informazioni tecniche innocue e non sensibili, come ad esempio ip e hostname delle macchine raggiunte.

Non è difficile immaginare come, a questo punto, la frittata fosse quasi fatta, sebbene il cerchio non fosse ancora chiuso. Rimaneva solo l’ultimo ma non meno importante passo, ovvero l’esfiltrazione dei dati acquisiti, lavoro non facile dal momento che qualsiasi azienda che si rispetti implementa diverse misure di sicurezza che bloccherebbero o almeno rileverebbero quasi subito il traffico anomalo, tra regole firewall stringenti, IDS, EDR e quant’altro.

Come ben sappiamo, però, qualcosa deve pur uscire affinché la rete funzioni e una di queste sono le richieste DNS, ancora tallone di Achille di molte infrastrutture. Il team di Alex Birsen ha quindi pensato di implementare un’altra categoria di attacco già conosciuta come DNS exfiltration e, adesso sì, il piano era completo.

A questo punto non rimaneva che testare il piano sul campo e i risultati hanno superato ogni aspettativa. I pacchetti malevoli venivano scaricati e questo attacco di dependency confusion stava funzionando davvero. Il team ha quindi espanso lo scope anche ad altre aziende, entrandone nei relativi bounty program per essere autorizzati a svolgere tali test, e ben 35 aziende si sono rivelate vulnerabili all’attacco, che sembra essere viabile sia con npm (Javascript), sia con pip (Python), sia con gem (Ruby).

Non molto tempo dopo, una volta comunicato quanto scoperto alle aziende interessate, il team iniziava a intascare i premi delle relative bug bounty, che si aggirano complessivamente intorno ai 130.000 dollari. Tra le aziende colpite, giganti del calibro Apple, Shopify, Netflix, Paypal, Yelp e Uber.

A seguito di questa vicenda, Sonatype ha dichiarato di aver rilevato più di 700 pacchetti che emulavano la tecnica, stavolta caricati da attori malevoli e non più con l’intento di esportare informazioni innocue ma dati sensibili, finalizzati alla reale compromissione delle aziende colpite.

Tornando ai giorni nostri, vi starete domandando se tale attacco è ancora possibile e la risposta non solo è affermativa, ma tale attacco continua ad essere usato attivamente.

Possibili mitigazioni consistono nell’includere un controllo di hash, limitare quanto più possibile l’utilizzo di dipendenze esterne e affidarsi a pacchetti ben conosciuti o specificare direttamente il repo (privato o pubblico) da cui si intendono installare i pacchetti. Occorre, comunque, mantenere alta la guardia in quanto i supply chain attack rimangono sempre dietro l’angolo.

Fonte: https://www.miamammausalinux.org/2022/05/saturdays-talks-dependency-confusion-ovvero-come-bucare-apple-shopify-netflix-paypal-e-altri-con-un-solo-vettore-di-attacco/

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.