Ievainojamība, kas ļāva izlaist atjauninājumu jebkurai pakotnei NPM repozitorijā

GitHub ir atklājis divus incidentus savā NPM pakotnes repozitorija infrastruktūrā. 2. novembrī trešās puses drošības pētnieki (Kajetan Grzybowski un Maciej Piechota), kas ir daļa no programmas Bug Bounty, ziņoja par ievainojamību NPM repozitorijā, kas ļauj publicēt jebkuras pakotnes jaunu versiju, izmantojot savu kontu, kas nav pilnvarots veikt šādus atjauninājumus.

Ievainojamību izraisīja nepareizas atļauju pārbaudes mikropakalpojumu kodā, kas apstrādā pieprasījumus NPM. Autorizācijas pakalpojums veica pakotnes atļauju pārbaudes, pamatojoties uz pieprasījumā nodotajiem datiem, bet cits pakalpojums, kas augšupielādēja atjauninājumu repozitorijā, noteica pakotni publicēšanai, pamatojoties uz augšupielādētās pakotnes metadatu saturu. Tādējādi uzbrucējs var pieprasīt savas pakotnes, kurai viņam ir piekļuve, atjauninājuma publicēšanu, bet pašā pakotnē norādīt informāciju par citu pakotni, kas galu galā tiks atjaunināta.

Problēma tika novērsta 6 stundas pēc ziņošanas par ievainojamību, taču ievainojamība NPM pastāvēja ilgāk, nekā aptver telemetrijas žurnāli. GitHub apgalvo, ka kopš 2020. gada septembra nav bijušas pēdas par uzbrukumiem, izmantojot šo ievainojamību, taču nav garantijas, ka problēma iepriekš nav izmantota.

Otrs incidents notika 26. oktobrī. Tehniskā darba laikā ar servisa replicate.npmjs.com datu bāzi atklājās konfidenciālu datu esamība ārējiem pieprasījumiem pieejamā datu bāzē, atklājot informāciju par izmaiņu žurnālā minēto iekšējo pakotņu nosaukumiem. Informācija par šādiem nosaukumiem var tikt izmantota, lai veiktu atkarības uzbrukumus iekšējiem projektiem (februārī līdzīgs uzbrukums ļāva kodu izpildīt PayPal, Microsoft, Apple, Netflix, Uber un 30 citu uzņēmumu serveros).

Turklāt, tā kā pieaug lielu projektu repozitoriju nolaupīšanas un ļaunprātīga koda reklamēšanas gadījumu skaits, izmantojot kompromitējošus izstrādātāju kontus, GitHub ir nolēmis ieviest obligātu divu faktoru autentifikāciju. Izmaiņas stāsies spēkā 2022. gada pirmajā ceturksnī un attieksies uz populārāko sarakstā iekļauto pakotņu uzturētājiem un administratoriem. Papildus tiek ziņots par infrastruktūras modernizāciju, kurā tiks ieviesta automatizēta jauno pakotņu versiju uzraudzība un analīze, lai agrīni atklātu ļaunprātīgas izmaiņas.

Atcerēsimies, ka saskaņā ar 2020. gadā veikto pētījumu tikai 9.27% pakotņu uzturētāju piekļuves aizsardzībai izmanto divu faktoru autentifikāciju, un 13.37% gadījumu, reģistrējot jaunus kontus, izstrādātāji mēģināja atkārtoti izmantot uzlauztās paroles, kas parādījās zināmas paroles noplūdes. Paroles drošības pārbaudes laikā 12% NPM kontu (13% pakotņu) tika piekļūti, jo tika izmantotas paredzamas un nenozīmīgas paroles, piemēram, “123456”. Starp problemātiskajiem bija 4 lietotāju konti no 20 populārākajām pakotnēm, 13 konti ar pakotnēm, kas lejupielādētas vairāk nekā 50 miljonus reižu mēnesī, 40 konti ar vairāk nekā 10 miljoniem lejupielāžu mēnesī un 282 konti ar vairāk nekā 1 miljonu lejupielāžu mēnesī. Ņemot vērā moduļu ielādi pa atkarību ķēdi, neuzticamu kontu kompromitēšana var ietekmēt līdz pat 52% no visiem NPM moduļiem.

Avots: opennet.ru

Pievieno komentāru