Axios bajo fuego: así se gestó el ataque a la cadena de suministro en npm

Paskutiniai pakeitimai: 04/01/2026
Autorius: C SourceTrail
  • Kenkėjiškose „Axios“ versijose, skirtose „npm“, buvo pridėta paslėpta priklausomybė, kuri diegimo metu išsiuntė kelių platformų nuotolinės prieigos Trojos arklį.
  • Užpuolikai piktnaudžiavo pažeista prižiūrėtojo paskyra ir senaisiais npm žetonais, kad paskelbtų axios@1.14.1, axios@0.30.4 ir plain-crypto-js@4.2.1.
  • RAT galėjo išgauti paslaptis, pasiekti saugyklas ir debesies aplinkas, naudodamas tokius IOC kaip sfrclak.com, 142.11.206.73 ir konkrečius failų sistemos artefaktus.
  • Saugumo komandos ragina kūrėjus audituoti užrakto failus, keisti prisijungimo duomenis, sustiprinti tiekimo grandinės darbo eigą ir elgtis su paveiktais įrenginiais kaip su visiškai pažeistais.

„Axios“ tiekimo grandinės atakos iliustracija

Kelias įtemptas valandas viena iš plačiausiai pasaulyje naudojamų „JavaScript“ bibliotekų Axios, tapo netikėta kenkėjiškų programų platinimo priemone. Tikslinė tiekimo grandinės ataka prieš NPM ekosistemą įprastą priklausomybės atnaujinimą pavertė potencialiomis užpuolikams skirtomis galinėmis durimis šimtuose tūkstančių kūrėjų kompiuterių ir kompiliavimo sistemų.

Kelių apsaugos firmų ir „Google“ grėsmių žvalgybos grupės tyrėjai išsiaiškino, kaip piktavalis veikėjas paslėpė... nuotolinės prieigos Trojos arklys (RAT) į konkrečius „Axios“ leidimus npm, panašiai kaip npm tiekimo grandinės kirminas.

Kas yra „Axios“ ir kodėl kompromisas toks svarbus

Iš esmės „Axios“ yra „Promise“ pagrindu sukurtas HTTP klientas, skirtas „Node.js“ ir naršyklėmsJis veikia užkulisiuose daugybėje projektų, atlikdamas kasdienes užduotis, tokias kaip „gauti mano pranešimus iš serverio“ arba „pateikti šią formą API“, kūrėjams nerašant žemo lygio tinklo kodo ranka.

Kadangi „Axios“ veikia tiek naršyklėje, tiek „Node.js“ serveriuose, ji tapo... Pagrindinė priklausomybė šiuolaikiniuose „JavaScript“ rinkiniuoseGalbūt niekada jo neįdiegėte tiesiogiai, tačiau vis tiek netiesiogiai juo pasikliaujate, kai:

  • Naudokite žiniatinklio programas, sukurtas naudojant tokias sistemas kaip „React“, „Vue“ ar „Angular“, kurios apjungia API iškvietimus su „Axios“.
  • Paleiskite darbalaukio arba mobiliąsias programas, sukurtas naudojant tokias technologijas kaip „Electron“, „React Native“ ir panašias žiniatinklio pagrindu veikiančias vykdymo aplinkas.
  • Sąveikaukite su mažesnėmis SaaS priemonėmis, administratoriaus ataskaitų suvestinėmis arba savarankiškai talpinamomis paslaugomis, kurių kūrėjai HTTP užklausoms pasirinko „Axios“.

Šia prasme „Axios“ yra šiek tiek panašus į santechnika jūsų namuoseRetai apie tai pagalvojate, bet tai perneša duomenų „vandenį“ tarp jūsų programėlės ir išorinio pasaulio. Jį iš tikrųjų pastebite tik tada, kai įvyksta nutekėjimas – būtent tai ir sukūrė ši ataka, bet programinės įrangos ekosistemos mastu.

Kaip klostėsi „Axios“ npm ataka

Incidentas susijęs su dviem npm išleidimais: axios@1.14.1 bei axios@0.30.4Naudodamiesi pažeistais vieno iš pagrindinių projekto prižiūrėtojų prisijungimo duomenimis, užpuolikai sugebėjo paskelbti kenkėjiškos versijos tiesiai į npm paliekant viešąjį „GitHub“ šaltinio kodą nepakeistą, modelis, taip pat aprašytas Shai-Hulud analizė.

Užuot vizualiai pakeitęs „Axios“ kodą, užpuolikas pridėjo naują, iš pažiūros nesusijusią priklausomybę: plain-crypto-js@4.2.1Šis paketas buvo specialiai sukurtas operacijai ir nebuvo importuotas į niekur „Axios“ šaltinio failus, raudona vėliavėlė visiems, tikrinantiems skirtumus, tačiau ją lengva nepastebėti automatizuotose darbo eigose, kurios tiesiog pasitiki registru.

Dvi užterštos „Axios“ versijos kartu turėjo didžiulį potencialą, siekiantį iki apie 100 milijonų atsisiuntimų per savaitę „npm“ svetainėjeApskaičiuota, kad „Axios“ yra beveik 80 % debesijos aplinkų ir CI/CD kanalų, todėl net ir trumpas veikimo laikotarpis kėlė rimtą sisteminę riziką.

Svarbiausia, kad paveiktos versijos niekada nebuvo pateiktos. oficialios „GitHub“ žymės „Axios“ projektui. Ši detalė aiškiai rodo, kad įprasti išleidimo procesai buvo apeiti: užpuolikas panaudojo pavogtą npm prieigos raktą, kad paketus perkeltų tiesiai į registrą, neperžengdamas viešosios šaltinio istorijos ribų.

Kenkėjiškos priklausomybės ir RAT mechanika

Kompromiso esmė slypi tame, kas įvyko diegimo metu. Bet koks vykdomas darbo eigas npm install ir įtraukė axios@1.14.1, axios@0.30.4 or plain-crypto-js@4.2.1 įjungus scenarijus, suveikė paslėpta poįdiegimo rutina.

Kenkėjiškos priklausomybės viduje yra poįdiegimo scenarijus (node ​​setup.js) vykdomas automatiškai. Tas scenarijus atsisiuntė užmaskuotą lašintuvą, kuris tada pateikė platformai pritaikytą RAT naudingąją apkrovą macOS, Windows arba LinuxRAT suteikė užpuolikui interaktyvią nuotolinę prieigą prie pažeisto kompiuterio.

Kai šis nuotolinės prieigos Trojos arklys tampa aktyvus, gali iššifruoti sistemos duomenis, rinkti slaptus duomenis ir vykdyti savavališkas komandas. debesies API raktai, CI diegimo žetonai, npm autentifikavimo žetonai, SSH raktai, saugyklos prieigos žetonai ir kiti jautrūs aplinkos kintamieji dažniausiai įterpiami į kūrimo agentus arba kūrėjų nešiojamuosius kompiuterius.

Nuo tada užpuolikai galėtų keisti savo veiklą: tikrinti šaltinio kodą, keisti būsimas versijas, pridėti daugiau galinių durų arba pereiti į gamybinę infrastruktūrą. Kūrėjams, dirbantiems su kriptovaliutomis susijusiais projektais – piniginėmis, biržomis, DeFi sąsajomis – tokio tipo prieiga galėtų būti tiesiogiai naudinga. kriptovaliutų vagystė arba platesnis finansinis sukčiavimas.

Slapta taktika: kodėl kompromisą buvo sunku pastebėti

Kenkėjiškų programų autoriai dėjo visas pastangas, kad jų pėdsakas būtų kuo mažesnis ir trumpalaikis. Pasak tyrėjų, lašintuvas... išvalė savo pėdsakus iškart po egzekucijos.

Tai reiškia, kad jei išnagrinėjote node_modules/plain-crypto-js/package.json po infekcija, pamatytumėte visiškai nekenksmingą manifestą: jokio poįdiegimo scenarijaus, jokio setup.js, nėra akivaizdžių neteisėto žaidimo požymių. Standartiniai įrankiai, tokie kaip npm audit arba paviršutiniškas rankinis katalogo patikrinimas neatskleistų, kas jau įvyko.

Praktiškai dėl tokio elgesio tyrėjai pasikliovė išoriniais duomenimis kompromiso rodikliai (IOC), tinklo telemetriją ir pagrindinio kompiuterio artefaktus, o ne paprastus statinius „npm“ paketo turinio nuskaitymus. Iki atakos paskelbimo kenkėjiškos versijos jau buvo pašalintos iš „npm“, o tai dar labiau apsunkino tikslaus vykdymo srauto atkūrimą.

Pagrindiniai „Axios“ incidento kompromitacijos rodikliai

Nors kenkėjiška programa bandė nuslėpti savo pėdsakus, saugumo komandos pasidalijo konkrečiais IOC, kurie gali padėti nustatyti, ar aplinka buvo paveikta. Tarp svarbiausių yra šie:

Dėl tinklo pusėje, ieškokite bendravimo su:

  • domenas: sfrclakcom
  • IP adresas: 142.11.206.73

Abu indikatorius blokavo pagrindiniai saugumo tiekėjai, tačiau jie išlieka naudingais žymekliais istoriniuose žurnaluose ir SIEM paieškose.

Dėl Failų sistematyrėjai atkreipė dėmesį į su RAT susijusius artefaktus:

  • macOS: /Library/Caches/com.apple.act.mond
  • Linux: /tmp/ld.py
  • „Windows“: failai, esantys %PROGRAMDATA%\wt ir laikinus scenarijus, pvz. %TEMP%\6202033.vbs or .ps1 kuris vykdymo metu gali egzistuoti tik trumpai

Kalbant apie npm paketus, pažeistos versijos ir jų žinomos kontrolinės sumos yra:

  • axios@1.14.1, SHA-256: 2553649f2322049666871cea80a5d0d6adc700ca
  • axios@0.30.4, SHA-256: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71
  • plain-crypto-js@4.2.1, SHA-256: 07d889e2dadce6f3910dcbc253317d28ca61c766

Apsaugos įmonės, tokios kaip „Huntress“, pastebėjo bent jau 135 sistemos susisiekia su užpuoliko komandų ir valdymo serveriu per gana trumpą ekspozicijos laikotarpį, o „Google“ tyrėjai perspėjo, kad dėl to galiausiai galėjo būti pavogta „šimtai tūkstančių“ paslapčių.

Kas stovėjo už išpuolio? Priskyrimas ir ryšys su Šiaurės Korėja

„Google“ grėsmių žvalgybos grupė viešai susiejo „Axios“ kompromitaciją su... įtariamas Šiaurės Korėjos grėsmės veikėjas sekta kaip UNC1069. Johnas Hultquistas, vyriausiasis „Google“ grėsmių skyriaus analitikas, pažymėjo, kad Šiaurės Korėjos operatoriai turi ilgą patirtį tiekimo grandinės atakos, kuriomis siekiama pavogti kriptovaliutą ir kitas turtas.

„Google“ ir kitų saugumo tiekėjų teigimu, „Axios“ incidentas, regis, yra platesnės Šiaurės Korėjos grupuočių, įskaitant tokias organizacijas kaip „Lazarus“, kampanijos, orientuotos į... turto prievartavimas, finansinės vagystės ir duomenų nutekėjimas orientuojantis į tokius sektorius kaip kriptovaliuta, finansinės technologijos ir debesų infrastruktūra.

Nors visas poveikis vis dar neaiškus, itin populiaraus paketo, prieigos prie kūrėjų aplinkų ir pavogtų duomenų pobūdžio derinys leidžia analitikams tikėtis tolesnės atakos tolesnių tiekimo grandinės pažeidimų, išpirkos reikalaujančių programų ir tiesioginių kriptovaliutų vagysčių pavidalu.

Kaip buvo piktnaudžiaujama prižiūrėtojo paskyra ir npm darbo eiga

Vienas labiausiai atvirojo kodo bendruomenei nerimą keliančių aspektų yra tai, kaip užpuolikams pavyko paskelbti kenkėjiškas „Axios“ versijas neliesdami viešos kodo bazės. Svarbiausia buvo pažeista npm palaikymo paskyra, manoma, priklauso pagrindiniam „Axios“ palaikytojui, žinomam kaip jasonsaayman.

Pranešama, kad užpuolikai pakeitė su ta npm paskyra susietą el. pašto adresą į savo kontroliuojamą adresą. Atlikę šį veiksmą, jie galėjo užblokuoti teisėtą prižiūrėtoją ir skelbti naujas paketų versijas taip, lyg jos būtų tikri atnaujinimai, tuo pačiu metu oficialioje „GitHub“ saugykloje išlikant švariai.

Ši operacija taip pat atskleidė struktūrinę npm problemą: paramą senesni autentifikavimo žetonai, ir poreikis tiekimo grandinės valdymo įrankiai ir griežtesnę žetonų politiką.

Šiuo atveju saugumo tyrėjai atkreipė dėmesį, kad npm vis dar numatytasis naudotojas yra senasis prieigos raktas leidybai, ir jokia kontrolė automatiškai neatšaukė šio prieigos rakto, kai tik buvo sukonfigūruoti modernesni leidybos metodai. Toks sambūvis sukūrė pažeidžiamas šonines duris, kuriomis UNC1069 galėjo pasinaudoti.

Poveikio langas ir ankstyvas aptikimas

„Axios“ kompromitacija nebuvo ilgas ir lėtas procesas. Tyrimai rodo, kad kenkėjiškos versijos buvo... pasiekiamas per npm maždaug tris valandas nuo vėlyvo sekmadienio vakaro iki pirmadienio arba antradienio ankstyvų valandų, priklausomai nuo laiko juostos.

„StepSecurity“ ir kitos įmonės pažymėjo, kad užpuolikas pasėjo ekosistemą švarią kenkėjiškos priklausomybės versiją maždaug prieš 18 valandų prijungiant ginkluotą variantą prie „Axios“. Atrodo, kad šis žingsnis buvo skirtas sukurti palankią paketo istoriją ir išvengti automatinių anomalijų detektorių suveikimo, kai staiga atsirado priklausomybė.

Kai užkrėstos „Axios“ versijos buvo paleistos, Trojos arklys atliko išsamią žvalgybą kiekvienoje sistemoje, kurioje veikė: katalogų nuskaitymas, veikiančių procesų sąrašo sudarymas, diskų išvardijimas ir tada siunčiant tą informaciją atgal į užpuoliko serverį. Visa tai vyko užkulisiuose, kūrėjams tai atrodė kaip įprastas priklausomybės diegimas.

Dėl suderinto priežiūros, „npm“ ir kelių saugos tiekėjų atsako kenkėjiškos versijos buvo pašalintos per kelias valandas. Vis dėlto, kaip pabrėžė keli tyrėjai ir pati „Google“ komanda, Trumpas ekspozicijos langas nėra tas pats, kas maža rizika kai taikinys yra biblioteka, kurią kas savaitę atsisiunčiama dešimtys milijonų kartų.

Poveikis kūrėjams, kriptovaliutų projektams ir galutiniams vartotojams

Praktiniu požiūriu, tiesioginės „Axios“ incidento aukos yra kūrėjams ir kūrimo aplinkoms kurie įdiegė kenkėjiškas versijas. Kiekvienas, kuris vykdė diegimo ar kompiliavimo procesą, kuris ištraukė „axios@1.14.1“, „axios@0.30.4“ arba „plain-crypto-js@4.2.1“ su įjungtais scenarijais, turi manyti, kad sistema galėjo būti visiškai pažeista.

Kriptovaliutų erdvės projektams – piniginėms, centralizuotoms ir decentralizuotoms biržoms, DeFi ataskaitų suvestinėms, prekybos robotams ir Web3 sąsajoms – statymai yra ypač dideli. Daugelis šių sistemų pasikliauti „Axios“, kad galėtų bendrauti su blokų grandinės šliuzais, API ir vidinėmis paslaugomis, ir jie dažnai tvarko slaptus slaptus duomenis, tokius kaip privatūs raktai, API kredencialai ir naudotojų duomenys.

Jei tokiame projekte esanti kūrėjo darbo vieta arba CI agentas buvo užkrėstas, užpuolikai galėjo gauti ne tik vietoje saugomus slaptus duomenis, bet ir prieiga prie saugyklų ir diegimo srautųTaip jie gali įdiegti kenkėjišką kodą į būsimas versijas, netiesiogiai pakenkti galutiniams vartotojams arba nukreipti lėšas.

Tuo tarpu geresnėje padėtyje yra vartotojai, kurie tiesiog paleidžia užbaigtas programas savo naršyklėje: RAT buvo pristatytas per diegimo ir surinkimo žingsniai, o ne naršyklės vykdymo metu. Taigi apsilankymas svetainėje, kuri naudoja „Axios“ kliento pusės skambučiams, pats savaime nesukelia atakos. Rizika susitelkia į tuos, kurie įdiegė paveiktus npm paketus.

Neatidėliotini veiksmai, kurių kūrėjai turėtų imtis

Saugumo komandos ir prižiūrėtojai aiškiai pasakė: jei yra bent menkiausia tikimybė, kad jūsų sistemose bus įdiegtos pažeistos „Axios“ arba „plain-crypto-js“ versijos, su šiais kompiuteriais elkitės taip, kaip su... visiškai nepasitikima, kol nebus ištirtaTai reiškia daugiau nei tik versijos numerio padidinimą.

Tyrėjų ir tiekėjų rekomenduojami konkretūs veiksmai:

  • Patikrinkite savo priklausomybes ir užrakinimo failus: Ieškoti axios@1.14.1, axios@0.30.4 bei plain-crypto-js@4.2.1 in package-lock.json, pnpm-lock.yaml, yarn.lock ir CI žurnalai; žr. kaip juos saugiai sutvarkyti.
  • Atnaujinkite į patikrintas ir saugias versijas: Pereikite prie švarių „Axios“ leidimų (pvz., iš karto po jų išleistų pataisytų žymų, kurias rekomenduoja prižiūrėtojai) ir užtikrinkite, kad jūsų užrakinimo failai būtų generuojami iš naujo.
  • Agresyviai keiskite įgaliojimus: Tarkime, kad bet kokie paveiktuose kompiuteriuose ar kanaluose esantys slapti raktai – debesies API raktai, npm žetonai, SSH raktai, diegimo raktai, .env kintamieji – galėjo būti pavogti, ir juos pakeiskite.
  • Atkurti pažeistas sistemas: Jei įmanoma, iš naujo įdiekite kūrimo agentus, CI vykdytojus ir kūrėjų darbo vietas iš patikimų atvaizdų, o ne bandykite juos išvalyti vietoje.
  • C2 bloko infrastruktūra: papildyti sfrclak.com bei 142.11.206.73 ugniasienėms, DNS blokavimo sąrašams ir EDR taisyklėms.
  • Artefaktų paieška: Patikrinkite failų sistemos kelius ir laikinuosius failus, susietus su RAT macOS, Windows ir Linux pagrindiniuose kompiuteriuose.

Kelios apsaugos bendrovės patarė organizacijoms, kurios įdiegė užkrėstas versijas, pagal nutylėjimą manyti, kad yra pažeistasKitaip tariant, vadovaukitės prielaida, kad užpuolikai turėjo prieigą, ir sistemingai atlikite incidentų reagavimo veiksmus, o ne tikėkitės, kad kenkėjiška programa nieko nepadarė.

Platesnės pamokos apie programinės įrangos tiekimo grandinės saugumą

Be tiesioginio atrankos proceso, „Axios“ incidentas vėl įžiebė diskusijas apie tai, kaip platesnė ekosistema tvarko pasitikėjimą, tapatybę ir platinimą atvirojo kodo projektuose. Tai iliustruoja, kaip... vienos bibliotekos prižiūrėtojo paskyra gali tapti daugybės organizacijų saugumo ramsčiu.

Atlikus skrodimus ir tiekėjų analizes, išryškėjo kelios temos:

  • Legacy žetonai yra atsakomybė: Seni npm žetonai gali tyliai išlikti kartu su naujesniais OIDC pagrįstais darbo srautais. Projektams reikalingos aiškios politikos, kad juos būtų galima atšaukti, kai tik bus įdiegti saugesni metodai.
  • Automatiniai atnaujinimai veikia abipusiai: Automatiniai priklausomybių apribojimai pagreitina kūrimą, bet taip pat reiškia, kad kenkėjiška versija gali išplisti po ekosistemas, kol kas nors to nepastebi.
  • Priklausomybių skenavimas yra būtinas, bet nepakankamas: Statiniai patikrinimai ir npm audit yra naudingi, tačiau jiems sunku trumpalaikis elgesys kaip savaime išsitrinantys po įdiegimo scenarijai.
  • Palaikytojo saugumas yra kritinė infrastruktūra: Stiprus daugiafaktorinis autentifikavimas (MFA), aparatinės įrangos saugos raktai, kruopštus prieigos žetonų tvarkymas ir reguliari peržiūra, kas gali publikuoti, dabar yra tokie pat svarbūs, kaip ir gero kodo rašymas.

Įkūrėjams, technologijų direktoriams ir inžinerijos vadovams „Axios“ kompromisas yra priminimas, kad tiekimo grandinės rizika yra strateginis klausimas, ne tik techninis. Tai turi įtakos tam, kaip greitai galite pristatyti, kaip projektuojate CI/CD srautus ir kaip suderinate atvirojo kodo patogumą su poreikiu patikrinti, ką naudojate gamybinėje aplinkoje.

Apibendrinant, „Axios“ kompromitacija npm sistemoje rodo, kaip trumpalaikė, bet gerai suplanuota ataka gali paversti patikimą „JavaScript“ ekosistemos elementą slaptu nuotolinės prieigos kenkėjiškų programų kanalu. Užpuolikams taikantis tiek į kūrėjus ir platinimo kanalus, tiek į galutinius vartotojus, programinės įrangos tiekimo grandinių saugumas dabar priklauso nuo griežtesnės publikavimo darbo eigų kontrolės, agresyvaus anomalijų stebėjimo ir noro į priklausomybes žiūrėti su tokiu pat skepticizmu, koks anksčiau buvo taikomas tik išoriniam tinklo srautui.

npm saugumo auditorija
Susijęs straipsnis:
Išsamus NPM saugumo audito ir tiekimo grandinės atakų vadovas
Susijusios naujienos: