Eksperimentoni me krijimin e një pakete NPM që varet nga të gjitha paketat në depo

Një nga zhvilluesit e paketave JavaScript eksperimentoi me krijimin dhe vendosjen në depo NPM paketën “gjithçka”, e cila mbulon të gjitha paketat ekzistuese në depo me varësi. Për të zbatuar këtë veçori, paketa "gjithçka" ka varësi të drejtpërdrejta me pesë paketa "@everything-registry/chunk-N", të cilat nga ana e tyre kanë varësi nga më shumë se 3000 paketa "sub-chunk-N", secila prej të cilave lidhet me 800 paketa ekzistuese në depo.

Vendosja e "çdo gjëje" në NPM pati dy efekte interesante. Së pari, paketa "gjithçka" është bërë një lloj mjeti për kryerjen e sulmeve DoS, pasi një përpjekje për ta instaluar atë çon në shkarkimin e miliona paketave të pritura në NPM dhe shterimin e hapësirës së disponueshme të diskut ose ndalimin e ekzekutimit të proceseve të ndërtimit. Sipas statistikave të NPM, paketa u shkarkua rreth 250 herë, por askush nuk shqetësohet ta shtojë atë si një varësi në një paketë tjetër pasi llogaria e zhvilluesit u hakerua për të kryer sabotim. Përveç kësaj, disa shërbime dhe mjete që monitorojnë dhe kontrollojnë paketat e reja të organizuara nga NPM u ekspozuan padashur ndaj sulmit.

Së dyti, publikimi i paketës "gjithçka" bllokoi në mënyrë efektive mundësinë për të hequr çdo paketë në NPM që përfundonte në listën e saj të varësive. Një paketë nga NPM mund të hiqet nga autori vetëm nëse nuk është përdorur tashmë në varësitë e paketave të tjera, por pas publikimit të "çdo gjëje" varësitë rezultuan të mbulojnë të gjitha paketat në depo. Vlen të përmendet se është bllokuar edhe heqja e vetë paketës “gjithçka”, pasi 9 vite më parë në depo u postua një paketë testimi “gjithçka-tjetër”, e cila përfshinte vargun “gjithçka” në listën e varësive. Kështu, pas publikimit, paketa “gjithçka” përfundoi duke qenë e varur nga një paketë tjetër.

Burimi: opennet.ru

Shto një koment