Pruvate cù a creazione di un pacchettu NPM chì dipende di tutti i pacchetti in u repository

Unu di i sviluppatori di pacchetti JavaScript hà sperimentatu a creazione è pusendu in u repository NPM un pacchettu "tuttu" chì copre tutti i pacchetti esistenti in u repository cù dipendenze. Per implementà sta funzione, u pacchettu "tuttu" hà dipendenze dirette cù cinque pacchetti "@everything-registry/chunk-N", chì à u turnu anu dipendenze nantu à più di 3000 pacchetti "sub-chunk-N", ognuna ligata à 800 pacchetti esistenti in u repository.

Pone "tuttu" in NPM hà avutu dui effetti interessanti. Prima, u pacchettu "tuttu" hè diventatu un tipu d'uttellu per eseguisce attacchi DoS, postu chì un tentativu di stallà porta à scaricà milioni di pacchetti ospitati in NPM è esaurisce u spaziu di discu dispunibule o piantà l'esekzione di i prucessi di creazione. Sicondu statistiche NPM, u pacchettu hè statu scaricatu circa 250 volte, ma nimu ùn si preoccupa di aghjunghje cum'è una dependenza à un altru pacchettu dopu chì u contu di u sviluppatore hè statu pirateatu per fà sabotaje. Inoltre, certi servizii è arnesi chì monitoranu è verificanu novi pacchetti ospitati da NPM sò stati involontariamente esposti à l'attaccu.

Siconda, a publicazione di u pacchettu "tuttu" hà bluccatu in modu efficace l'abilità di sguassà qualsiasi pacchetti in NPM chì finiscinu in a so lista di dipendenze. Un pacchettu da NPM pò esse sguassatu da l'autore solu s'ellu ùn hè micca digià utilizatu in e dipendenze di l'altri pacchetti, ma dopu a publicazione di "tuttu", tutti i pacchetti in u repositariu sò stati cuparti da dipendenze. Hè nutate chì a rimuzione di u pacchettu "tuttu" stessu hè statu ancu bluccatu, postu chì 9 anni fà un pacchettu di teste "tuttu-altru" hè statu publicatu in u repository, chì includeva a stringa "tuttu" in a lista di dipendenze. Cusì, dopu a publicazione, u pacchettu "tuttu" hà finitu per esse dipendente di un altru pacchettu.

Source: opennet.ru

Add a comment