Një cenueshmëri që lejoi lëshimin e një përditësimi për çdo paketë në depon e NPM

GitHub ka zbuluar dy incidente në infrastrukturën e saj të depove të paketave NPM. Më 2 nëntor, studiues të sigurisë së palëve të treta (Kajetan Grzybowski dhe Maciej Piechota), si pjesë e programit Bug Bounty, raportuan praninë e një cenueshmërie në depon e NPM që ju lejon të publikoni një version të ri të çdo pakete duke përdorur llogarinë tuaj. e cila nuk është e autorizuar për të kryer përditësime të tilla.

Dobësia u shkaktua nga kontrolle të pasakta të lejeve në kodin e mikroshërbimeve që përpunojnë kërkesat për NPM. Shërbimi i autorizimit kreu kontrolle të lejeve të paketës bazuar në të dhënat e kaluara në kërkesë, por një shërbim tjetër që ngarkoi përditësimin në depo përcaktoi që paketa të publikohej bazuar në përmbajtjen e meta të dhënave të paketës së ngarkuar. Kështu, një sulmues mund të kërkojë publikimin e një përditësimi për paketën e tij, në të cilën ai ka akses, por të specifikojë në vetë paketën informacione për një paketë tjetër, e cila përfundimisht do të përditësohej.

Problemi u rregullua 6 orë pasi u raportua dobësia, por cenueshmëria ishte e pranishme në NPM më gjatë se sa mbulojnë regjistrat e telemetrisë. GitHub pretendon se nuk ka pasur gjurmë sulmesh duke përdorur këtë dobësi që nga shtatori 2020, por nuk ka asnjë garanci që problemi të mos jetë shfrytëzuar më parë.

Ngjarja e dytë ka ndodhur më 26 tetor. Gjatë punës teknike me bazën e të dhënave të shërbimit replicate.npmjs.com, u zbulua prania e të dhënave konfidenciale në bazën e të dhënave të aksesueshme për kërkesat e jashtme, duke zbuluar informacione për emrat e paketave të brendshme që përmendeshin në regjistrin e ndryshimeve. Informacioni rreth emrave të tillë mund të përdoret për të kryer sulme varësie ndaj projekteve të brendshme (në shkurt, një sulm i ngjashëm lejoi që kodi të ekzekutohej në serverët e PayPal, Microsoft, Apple, Netflix, Uber dhe 30 kompanive të tjera).

Për më tepër, për shkak të numrit në rritje të rasteve të rrëmbimit të depove të projekteve të mëdha dhe promovimit të kodeve me qëllim të keq përmes llogarive komprometuese të zhvilluesve, GitHub ka vendosur të prezantojë vërtetimin e detyrueshëm me dy faktorë. Ndryshimi do të hyjë në fuqi në tremujorin e parë të 2022 dhe do të zbatohet për mirëmbajtësit dhe administratorët e paketave të përfshira në listën më të njohur. Gjithashtu, raportohet për modernizimin e infrastrukturës, në të cilën do të futet monitorimi dhe analiza e automatizuar e versioneve të reja të paketave për zbulimin e hershëm të ndryshimeve me qëllim të keq.

Le të kujtojmë se, sipas një studimi të kryer në vitin 2020, vetëm 9.27% ​​e mirëmbajtësve të paketave përdorin vërtetimin me dy faktorë për të mbrojtur aksesin, dhe në 13.37% të rasteve, gjatë regjistrimit të llogarive të reja, zhvilluesit u përpoqën të ripërdornin fjalëkalime të komprometuara që shfaqeshin në rrjedhje të njohura të fjalëkalimeve. Gjatë një rishikimi të sigurisë së fjalëkalimit, 12% e llogarive NPM (13% e paketave) u aksesuan për shkak të përdorimit të fjalëkalimeve të parashikueshme dhe të parëndësishme si "123456". Ndër ato problematike ishin 4 llogari përdoruesish nga Top 20 paketat më të njohura, 13 llogari me paketa të shkarkuara më shumë se 50 milionë herë në muaj, 40 me më shumë se 10 milionë shkarkime në muaj dhe 282 me më shumë se 1 milionë shkarkime në muaj. Duke marrë parasysh ngarkimin e moduleve përgjatë një zinxhiri varësish, kompromisi i llogarive të pabesuara mund të ndikojë deri në 52% të të gjitha moduleve në NPM.

Burimi: opennet.ru

Shto një koment