Ar PureScript instalēšanas programmu npm pakotnes atkarībās konstatētas ļaunprātīgas izmaiņas

Atkarībā no npm pakotnes ar PureScript instalēšanas programmu identificēts ļaunprātīgs kods, kas parādās, mēģinot instalēt pakotni tīrskripts. Ļaunprātīgs kods tiek iegults, izmantojot atkarības load-from-cwd-or-npm и tarifu karte. Zīmīgi, ka pakotņu ar šīm atkarībām apkopi veic sākotnējais npm pakotnes autors ar PureScript instalētāju, kurš vēl nesen uzturēja šo npm pakotni, bet pirms aptuveni mēneša pakotne tika nodota citiem uzturētājiem.

Problēmu atklāja viens no jaunajiem paketes uzturētājiem, kuram pēc daudzām nesaskaņām un nepatīkamām diskusijām ar purescript npm pakotnes sākotnējo autoru tika nodotas uzturēšanas tiesības. Jaunie uzturētāji ir atbildīgi par PureScript kompilatoru un uzstāja, ka NPM pakotne un tās instalētājs jāuztur tiem pašiem uzturētājiem, nevis ārējai pusei. Npm pakotnes autors ar PureScript instalēšanas programmu ilgi nepiekrita, bet pēc tam piekāpās un pārdeva pieeju repozitorijai. Tomēr dažas atkarības palika viņa kontrolē.

Pagājušajā nedēļā tika izlaists PureScript 0.13.2 kompilators un
jaunie uzturētāji sagatavoja atbilstošu npm pakotnes atjauninājumu ar instalētāju, kura atkarībās tika identificēts kaitīgais kods. Npm pakotnes ar PureScript instalētāju autors, kurš tika noņemts no uzturētāja amata, sacīja, ka viņa kontu ir apdraudējuši nezināmi uzbrucēji. Tomēr pašreizējā formā ļaundabīgā koda darbības aprobežojās ar pakotnes instalēšanas sabotēšanu, kas bija pirmā jauno uzturētāju versija. Ļaunprātīgas darbības veidoja cilpu ar kļūdas ziņojumu, mēģinot instalēt pakotni ar komandu “npm i -g purescript”, neveicot nekādas acīmredzamas ļaunprātīgas darbības.

Konstatēti divi uzbrukumi. Dažas stundas pēc purescript npm pakotnes jaunās versijas oficiālās izlaišanas kāds izveidoja jaunu atkarības load-from-cwd-or-npm 3.0.2 versiju, kuras izmaiņas izraisīja izsaukumu loadFromCwdOrNpm() instalēšanai nepieciešamo bināro failu saraksta atgrieztā straume Iet cauri, atspoguļojot ievades vaicājumus kā izvades vērtības.

4 dienas vēlāk, pēc tam, kad izstrādātāji noskaidroja kļūmju avotu un gatavojās izlaist atjauninājumu, lai izslēgtu load-from-cwd-or-npm no atkarībām, uzbrucēji izlaida citu atjauninājumu, load-from-cwd-or-npm. 3.0.4, kurā tika noņemts ļaunprātīgais kods. Tomēr gandrīz nekavējoties tika izlaists citas atkarības, rate-map 1.0.3, atjauninājums, kas pievienoja labojumu, kas bloķēja atzvanīšanas zvanu ielādei. Tie. abos gadījumos izmaiņas load-from-cwd-or-npm un rate-map jaunajās versijās bija acīmredzamas sabotāžas raksturs. Turklāt ļaunprātīgajam kodam bija pārbaude, kas izraisīja kļūdainas darbības tikai tad, kad instalēja jaunu uzturētāju laidienu, un nekādā veidā neparādījās, instalējot vecākas versijas.

Izstrādātāji atrisināja problēmu, izlaižot atjauninājumu, kurā tika noņemtas problemātiskās atkarības. Lai novērstu uzlauzta koda nogulsnēšanos lietotāju sistēmās pēc PureScript problemātiskas versijas instalēšanas mēģinājuma, ieteicams dzēst node_modules direktoriju un pack-lock.json failu saturu un pēc tam iestatīt purescript versiju 0.13.2 kā apakšējā robeža.

Avots: opennet.ru

Pievieno komentāru