Katsetage NPM-paketi loomist, mis sõltub kõigist hoidlas olevatest pakettidest

Üks JavaScripti pakettide arendajatest katsetas NPM-i hoidlasse paketi “kõik” loomist ja paigutamist, mis katab kõik hoidlas olemasolevad paketid sõltuvustega. Selle funktsiooni rakendamiseks on paketil "kõik" otsesed sõltuvused viie "@everything-register/chunk-N" paketiga, mis omakorda sõltuvad enam kui 3000 "sub-chunk-N" paketist, millest igaüks on seotud 800 olemasolevat paketti hoidlas.

"Kõik" paigutamisel NPM-i oli kaks huvitavat efekti. Esiteks on paketist "kõik" saanud omamoodi tööriist DoS-i rünnakute sooritamiseks, kuna selle installimise katse toob kaasa miljonite NPM-is hostitud pakettide allalaadimise ja vaba kettaruumi ammendumise või ehitusprotsesside täitmise peatamise. NPM-i statistika järgi laaditi paketti alla umbes 250 korda, kuid keegi ei viitsi seda pärast arendaja kontole sabotaaži sooritamiseks häkkimist sõltuvusena mõnele teisele paketile lisada. Lisaks sattusid mõned teenused ja tööriistad, mis jälgivad ja kontrollivad uusi NPM-i hostitud pakette, tahtmatult rünnaku alla.

Teiseks blokeeris paketi "kõik" avaldamine tõhusalt võimaluse eemaldada NPM-is kõik paketid, mis sattusid selle sõltuvuste loendisse. NPM-ist saab paketi autor eemaldada ainult siis, kui seda ei kasutata juba teiste pakettide sõltuvustes, kuid pärast “kõige” avaldamist selgus, et sõltuvused hõlmavad kõiki hoidlas olevaid pakette. Tähelepanuväärne on, et blokeeriti ka paketi “kõik” eemaldamine, kuna 9 aastat tagasi postitati hoidlasse testpakett “kõik-muu”, mis sisaldas sõltuvuste loendis stringi “kõik”. Seega sattus pakett “kõik” pärast avaldamist sõltuma teisest paketist.

Allikas: opennet.ru

Lisa kommentaar