Anbardakı bütün paketlərdən asılı olan NPM paketi yaratmaqla sınaqdan keçirin

JavaScript paketlərinin tərtibatçılarından biri NPM deposunda asılılıqları olan bütün mövcud paketləri əhatə edən “hər şey” paketini yaratmaq və yerləşdirməklə təcrübə keçirdi. Bu funksiyanı həyata keçirmək üçün “hər şey” paketinin beş “@everything-registry/chunk-N” paketi ilə birbaşa asılılıqları var ki, bu da öz növbəsində hər biri bir-birinə bağlanan 3000-dən çox “sub-chunk-N” paketindən asılılığa malikdir. Repozitoriyada 800 mövcud paket.

NPM-də "hər şeyi" yerləşdirmək iki maraqlı effekt verdi. Birincisi, "hər şey" paketi DoS hücumlarını həyata keçirmək üçün bir növ alətə çevrildi, çünki onu quraşdırmaq cəhdi NPM-də yerləşdirilən milyonlarla paketin yüklənməsinə və mövcud disk sahəsinin tükənməsinə və ya quraşdırma proseslərinin icrasının dayandırılmasına səbəb olur. NPM statistikasına görə, paket təxminən 250 dəfə endirilib, lakin təxribat törətmək üçün tərtibatçının hesabı sındırıldıqdan sonra heç kim onu ​​başqa paketə asılılıq kimi əlavə etməkdən narahat deyil. Bundan əlavə, NPM tərəfindən yerləşdirilən yeni paketləri izləyən və yoxlayan bəzi xidmətlər və alətlər istəmədən hücuma məruz qaldı.

İkincisi, "hər şey" paketinin dərc edilməsi NPM-də asılılıqlar siyahısına daxil olan hər hansı paketi silmək imkanını effektiv şəkildə blokladı. NPM-dən bir paket yalnız digər paketlərin asılılıqlarında istifadə edilmədiyi təqdirdə müəllif tərəfindən silinə bilər, lakin "hər şey" dərc edildikdən sonra asılılıqlar depodakı bütün paketləri əhatə edir. Maraqlıdır ki, "hər şey" paketinin çıxarılması da bloklanıb, çünki 9 il əvvəl depoda "hər şey" test paketi yerləşdirilib, bu da asılılıqlar siyahısına "hər şey" sətirini daxil edib. Beləliklə, nəşrdən sonra "hər şey" paketi başqa bir paketdən asılı oldu.

Mənbə: opennet.ru

Добавить комментарий