Attacco su NPM che consente di determinare la presenza di pacchetti nei repository privati

In NPM è stata individuata una vulnerabilità che consente di determinare l'esistenza di pacchetti in repository privati. Il problema è causato da tempi di reazione diversi quando si richiede un pacchetto esistente rispetto a uno inesistente da un utente esterno privo di accesso al repository. In assenza di accesso a qualsiasi pacchetto nei repository privati, il server registry.npmjs.org restituisce un errore con codice «404», ma nel caso in cui esista un pacchetto con il nome richiesto, l'errore viene restituito con un ritardo significativo. L'attaccante può utilizzare questa peculiarità per determinare la presenza di un pacchetto cercando nomi di pacchetti in dizionari.

La determinazione dei nomi dei pacchetti nei repository privati può essere necessaria per condurre attacchi tramite miscelazione delle dipendenze, che manipola l'intersezione dei nomi delle dipendenze nei repository pubblici e interni. Sapendo quali pacchetti interni NPM sono presenti nei repository aziendali, un attaccante può pubblicare pacchetti con gli stessi nomi e numeri di versione più recenti in un repository pubblico NPM. Se durante la compilazione le librerie interne non sono chiaramente vincolate nelle impostazioni al proprio repository, il gestore pacchetti npm considererà più prioritario il repository pubblico e caricherà il pacchetto preparato dall'attaccante.

GitHub è stato avvisato del problema a marzo, ma ha rifiutato di aggiungere protezione contro l'attacco, citando limitazioni architettoniche. Alle aziende che utilizzano repository privati è consigliato di controllare periodicamente l'emergere di nomi in conflitto nel repository pubblico o di creare a proprio nome dei placeholder con nomi che ripetono i nomi dei pacchetti nei repository privati, affinché i malintenzionati non possano pubblicare i propri pacchetti con nomi in conflitto.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster