Pažeidžiamumas, leidžiantis išleisti bet kurio NPM saugyklos paketo naujinimą

„GitHub“ atskleidė du incidentus savo NPM paketų saugyklos infrastruktūroje. Lapkričio 2 d. trečiųjų šalių saugos tyrinėtojai (Kajetan Grzybowski ir Maciej Piechota), kaip „Bug Bounty“ programos dalis, pranešė apie NPM saugyklos pažeidžiamumą, leidžiantį paskelbti naują bet kurio paketo versiją naudojant jūsų paskyrą. kuri neturi teisės atlikti tokių atnaujinimų.

Pažeidžiamumas atsirado dėl neteisingų leidimų patikrų mikropaslaugų, apdorojančių NPM užklausas, kode. Autorizacijos tarnyba atliko paketo leidimų patikras pagal užklausoje perduotus duomenis, tačiau kita paslauga, kuri įkėlė naujinimą į saugyklą, nustatė paketą, kurį reikia paskelbti pagal įkelto paketo metaduomenų turinį. Taigi, užpuolikas gali prašyti paskelbti savo paketo, prie kurio jis turi prieigą, naujinimą, tačiau pačiame pakete nurodyti informaciją apie kitą paketą, kuris galiausiai būtų atnaujintas.

Problema buvo ištaisyta praėjus 6 valandoms po pranešimo apie pažeidžiamumą, tačiau pažeidžiamumas NPM buvo ilgiau nei apima telemetrijos žurnalai. „GitHub“ teigia, kad nuo 2020 m. rugsėjo mėn. nebuvo jokių atakų, naudojančių šį pažeidžiamumą, pėdsakų, tačiau nėra garantijos, kad problema nebuvo išnaudota anksčiau.

Antrasis incidentas įvyko spalio 26 d. Atliekant techninį darbą su paslaugos replicate.npmjs.com duomenų baze, buvo atskleistas konfidencialių duomenų buvimas išorinėms užklausoms prieinamoje duomenų bazėje, atskleidžiantis informaciją apie vidinių paketų pavadinimus, kurie buvo paminėti pakeitimų žurnale. Informacija apie tokius pavadinimus gali būti naudojama vidinių projektų priklausomybės atakoms vykdyti (vasarį panaši ataka leido kodą vykdyti PayPal, Microsoft, Apple, Netflix, Uber ir dar 30 kompanijų serveriuose).

Be to, dėl vis daugėjančių didelių projektų saugyklų užgrobimo ir kenkėjiško kodo reklamavimo per kompromituojančias kūrėjų paskyras atvejų, „GitHub“ nusprendė įvesti privalomą dviejų veiksnių autentifikavimą. Pakeitimas įsigalios 2022 metų pirmąjį ketvirtį ir bus taikomas į populiariausių sąrašą įtrauktų paketų prižiūrėtojams bei administratoriams. Be to, pranešama apie infrastruktūros modernizavimą, kurio metu bus įdiegtas automatizuotas naujų paketų versijų stebėjimas ir analizė, siekiant anksti aptikti kenkėjiškus pakeitimus.

Prisiminkime, kad pagal 2020 m. atliktą tyrimą tik 9.27% paketų prižiūrėtojų naudoja dviejų veiksnių autentifikavimą, kad apsaugotų prieigą, o 13.37% atvejų registruodami naujas paskyras kūrėjai bandė pakartotinai panaudoti pažeistus slaptažodžius, kurie atsirado žinomų slaptažodžių nutekėjimų. Slaptažodžių saugos peržiūros metu 12 % NPM paskyrų (13 % paketų) buvo pasiekta dėl nuspėjamų ir nereikšmingų slaptažodžių, tokių kaip „123456“, naudojimo. Tarp probleminių buvo 4 vartotojų abonementai iš 20 populiariausių paketų, 13 paskyrų, kurių paketai atsisiunčiami daugiau nei 50 milijonų kartų per mėnesį, 40 su daugiau nei 10 milijonų atsisiuntimų per mėnesį ir 282 su daugiau nei 1 milijonu atsisiuntimų per mėnesį. Atsižvelgiant į modulių įkėlimą išilgai priklausomybių grandinės, nepatikimų paskyrų pažeidimas gali paveikti iki 52 % visų NPM modulių.

Šaltinis: opennet.ru

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