Aptikti kenkėjiški npm paketo priklausomybių pakeitimai su PureScript diegimo programa

Priklausomai nuo npm paketo su PureScript diegimo programa nustatyta kenkėjiškas kodas, kuris pasirodo, kai bandote įdiegti paketą grynasis raštas. Kenkėjiškas kodas įterpiamas per priklausomybes load-from-cwd-or-npm и tarifų žemėlapis. Pastebėtina, kad paketų su šiomis priklausomybėmis priežiūrą atlieka originalus npm paketo autorius su PureScript diegimo programa, kuris dar visai neseniai prižiūrėjo šį npm paketą, tačiau maždaug prieš mėnesį paketas buvo perduotas kitiems prižiūrėtojams.

Problemą atrado vienas iš naujųjų paketo prižiūrėtojų, kuriam priežiūros teisės buvo perleistos po daugybės nesutarimų ir nemalonių diskusijų su pirminiu purescript npm paketo autoriumi. Naujieji prižiūrėtojai yra atsakingi už PureScript kompiliatorių ir reikalavo, kad NPM paketą ir jo diegimo programą prižiūrėtų tie patys prižiūrėtojai, o ne išorinė šalis. Npm paketo autorius su PureScript diegimo programa ilgai nesutiko, bet paskui pasidavė ir perdavė prieigą prie saugyklos. Tačiau kai kurios priklausomybės liko jo kontroliuojamos.

Praėjusią savaitę buvo išleistas PureScript 0.13.2 kompiliatorius ir
nauji prižiūrėtojai parengė atitinkamą npm paketo atnaujinimą su diegimo programa, kurios priklausomybėse buvo nustatytas kenkėjiškas kodas. Npm paketo su „PureScript“ diegimo programa autorius, kuris buvo pašalintas iš prižiūrėtojo pareigų, teigė, kad jo paskyra buvo pažeista nežinomų užpuolikų. Tačiau dabartinėje formoje kenkėjiško kodo veiksmai apsiribojo paketo, kuris buvo pirmoji naujųjų prižiūrėtojų versija, diegimo sabotavimu. Kenkėjiški veiksmai prilygo kilpai su klaidos pranešimu, kai bandoma įdiegti paketą su komanda „npm i -g purescript“, neatliekant jokios akivaizdžios kenkėjiškos veiklos.

Buvo aptikti du išpuoliai. Praėjus kelioms valandoms po oficialaus naujos „purescript npm“ paketo versijos išleidimo, kažkas sukūrė naują „load-from-cwd-or-npm 3.0.2“ priklausomybės versiją, kurios pakeitimai lėmė tai, kad iškvietimas loadFromCwdOrNpm( ) vietoj įdiegimui reikalingų dvejetainių failų sąrašo grąžino srautą Pereiti, atspindi įvesties užklausas kaip išvesties vertes.

Po 4 dienų, kai kūrėjai išsiaiškino gedimų šaltinį ir ruošėsi išleisti naujinimą, kad iš priklausomybių būtų pašalintas load-from-cwd-or-npm, užpuolikai išleido kitą naujinimą, load-from-cwd-or-npm. 3.0.4, kuriame buvo pašalintas kenkėjiškas kodas. Tačiau beveik iš karto buvo išleistas kitos priklausomybės, greičio žemėlapio 1.0.3, naujinimas, kuris pridėjo pataisą, kuri užblokavo atgalinio skambučio įkėlimą. Tie. abiem atvejais naujose load-from-cwd-or-npm ir rate-map versijose pakeitimai buvo akivaizdaus sabotažo pobūdžio. Be to, kenkėjiškas kodas turėjo patikrinimą, kuris suaktyvino klaidingus veiksmus tik diegiant leidimą iš naujų prižiūrėtojų ir jokiu būdu nepasirodė diegiant senesnes versijas.

Kūrėjai išsprendė problemą išleisdami naujinimą, kuriame buvo pašalintos probleminės priklausomybės. Siekiant išvengti, kad pažeistas kodas nenusėstų vartotojų sistemose po bandymo įdiegti probleminę PureScript versiją, rekomenduojama ištrinti node_modules katalogų ir pack-lock.json failų turinį, o tada nustatyti purescript 0.13.2 versiją kaip apatinė riba.

Šaltinis: opennet.ru

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