Napad na NPM koji vam omogućuje određivanje prisutnosti paketa u privatnim spremištima

U NPM-u je identificiran nedostatak koji vam omogućuje otkrivanje postojanja paketa u zatvorenim spremištima. Problem je uzrokovan različitim vremenima odgovora kada se traži postojeći i nepostojeći paket od treće strane koja nema pristup repozitoriju. Ako nema pristupa bilo kojem paketu u privatnim repozitoriju, server registry.npmjs.org vraća pogrešku s kodom "404", ali ako paket sa traženim nazivom postoji, pogreška se izdaje s primjetnim kašnjenjem. Napadač može koristiti ovu značajku za određivanje prisutnosti paketa pretraživanjem naziva paketa pomoću rječnika.

Određivanje naziva paketa u privatnim spremištima može biti potrebno za izvođenje napada miješanja ovisnosti koji manipulira presjekom naziva ovisnosti u javnim i internim spremištima. Znajući koji su interni NPM paketi prisutni u korporativnim repozitoriju, napadač može postaviti pakete s istim nazivima i novijim brojevima verzije u javno NPM repozitorij. Ako tijekom sastavljanja interne biblioteke nisu eksplicitno povezane sa svojim repozitorijem u postavkama, npm upravitelj paketa smatrat će javno spremište višim prioritetom i preuzet će paket koji je pripremio napadač.

GitHub je obaviješten o problemu u ožujku, ali je odbio dodati zaštitu od napada, pozivajući se na arhitektonska ograničenja. Tvrtkama koje koriste privatne repozitorije preporuča se da povremeno provjeravaju pojavu preklapajućih naziva u javnom repozitoriju ili da u svoje ime kreiraju stubove s imenima koja ponavljaju nazive paketa u privatnim repozitorijima, kako napadači ne bi mogli postaviti svoje pakete s preklapajućim nazivima.

Izvor: opennet.ru

Dodajte komentar