Gli aggressori hanno sfruttato una grave vulnerabilità che ha consentito loro di accedere ai repository di codice NPM con più di 100 pacchetti di furto di credenziali da agosto, per lo più senza essere rilevati.
scoperta, quartiere Mercoledì la società di sicurezza Koi ha attirato l’attenzione su una pratica NPM che consente il downgrade automatico dei pacchetti installati e l’esecuzione di pacchetti inaspettati da domini non attendibili. Koi afferma che una campagna tracciata come Phantomraven ha utilizzato le “dipendenze dinamiche remote” di NPM per inondare NPM con 126 pacchetti dannosi che sono stati scaricati più di 86.000 volte. Circa 80 di questi pacchi erano disponibili mercoledì mattina, ha detto Coe.
Un punto cieco
“PhantomRaven mostra come gli aggressori sofisticati stiano migliorando (migliore) nello sfruttamento dei punti ciechi negli strumenti di sicurezza tradizionali”, ha scritto Oren Yomtov di Quoir. “Le dipendenze dinamiche remote non sono visibili nell’analisi statica.”
Le dipendenze dinamiche remote forniscono una maggiore flessibilità nell’accesso alle dipendenze, ovvero alle librerie di codici richieste da molti altri pacchetti per funzionare. In genere, le dipendenze sono visibili allo sviluppatore che ha installato il pacchetto. Questi vengono solitamente scaricati dall’infrastruttura affidabile di NPM.
Gli RDD funzionano diversamente. Ciò consente a un pacchetto di scaricare le dipendenze da siti Web non attendibili, anche quelli che si connettono tramite HTTP, che non è crittografato. Gli aggressori di PhantomRaven hanno sfruttato questa generosità includendo il codice in 126 pacchetti caricati su npm. Il codice scarica dipendenze dannose da URL tra cui http://packages.storeartifact.com/npm/unused-imports. Coe afferma che queste dipendenze sono “invisibili” agli sviluppatori e a molti scanner di sicurezza. Invece, mostrano che il pacchetto ha “0 dipendenze”. Una funzionalità NPM fa sì che questi download invisibili vengano installati automaticamente.
Ad aggravare la vulnerabilità, le dipendenze vengono scaricate “fresche” dal server dell’aggressore ogni volta che un pacchetto viene installato, anziché essere memorizzate nella cache, con versione o altrimenti statiche, come spiega Koi:














