RAT levisi npm:ssä käyttämällä Axiosin haitallisia versioita

Viimeisin päivitys: 5 huhtikuu 2026
Kirjoittaja: TecnoDigital
  • Hyökkääjä vaaransi Axiosin ensisijaisen ylläpitäjän npm-tilin ja julkaisi versiot 1.14.1 ja 0.30.4 phantom-riippuvuudella, plain-crypto-js:llä, joka otti käyttöön alustariippumattoman RAT-haavoittuvuuden asennuksen aikana.
  • Haittaohjelma otti yhteyttä C2-palvelimeen (sfrclak[.]com) ja latasi tiettyjä hyötykuormia Windowsille, macOS:lle ja Linuxille, suoritti järjestelmän tiedustelua, ylläpiti säännöllisiä majakoita ja joissakin tapauksissa loi pysyvyyden.
  • Googlen ja muiden tutkijoiden mukaan pohjoiskorealaisen toimijan UNC1069 syyksi luokiteltu hyökkäys yhdisti noin kolmen tunnin altistumisikkunan hienostuneeseen sosiaalisen manipuloinnin kampanjaan ylläpitäjää vastaan ​​heidän tunnistetietojensa varastamiseksi.
  • Organisaatioiden, jotka pystyivät asentamaan kyseiset versiot, on sitouduttava toimiin, etsittävä RAT-artefakteja, kierrätettävä tunnistetietoja, kiinnitettävä Axiosin suojattuja versioita ja vahvistettava toimitusketjuaan, CI/CD- ja riippuvuuksien hallintajärjestelmiään.

Axiosin hyökkääminen RAT:lla npm:ssä

JavaScript-kehitysyhteisö on juuri kokenut yhden niistä pelotteluista, jotka saavat ihmiset miettimään uudelleen, kuinka paljon luottavat riippuvuuksiinsa. Kirjastojen haavoittuvuusongelmat osoittavat tämän . Axios, yksi ekosysteemin käytetyimmistä HTTP-kirjastoista, manipuloitiin npm:ssä levittämään etäkäyttötroijalaista (RAT) näennäisesti laillisten versioiden kautta. Tapaus kesti vain muutaman tunnin, mutta se on tehnyt selväksi, että ohjelmistojen toimitusketju on paljon ohuemman langan varassa kuin monet luulivat.

Vakava ongelma ei ole vain se, että hyökkääjät onnistuivat salakuljettamaan haittaohjelmia pakettiin, jota ladattiin kymmeniä tai satoja miljoonia kertoja viikossa. Todellinen ongelma on se, että he tekivät sen kaappaamalla pääylläpitäjän npm-tilin ja julkaisemalla "virallisia" versioita, jotka näyttivät normaaleilta eivätkä koskeneet riviäkään Axiosin lähdekoodista . Kaikki haitallinen toiminta sijaitsi hyökkäystä varten erityisesti suunnitellussa haamuriippuvuudessa.

Miten Axiosin sitoutuminen npm:ään syntyi

Ymmärtääksemme tapauksen laajuuden meidän on aloitettava hyökkäyskohdasta. Hyökkääjä onnistui ottamaan haltuunsa Axiosin pääylläpitäjän ”jasonsaaymanin” npm-tilin ja vaihtoi siihen liittyvän sähköpostiosoitteen omaan hallintaansa kuuluvaan osoitteeseen , joka sijaitsee Proton Mailissa. Siitä hetkestä lähtien heillä oli vapaat kädet julkaista paketin uusia versioita ikään kuin he olisivat ylläpitäjä.

Näillä tunnuksilla hän latasi kaksi haitallista Axios-versiota: 1.14.1 ja 0.30.4 , jotka kattoivat projektin molemmat päähaarat. Lataukset tehtiin vain 39 minuutin välein, ja StepSecurityn analyysin mukaan ne tehtiin suoraan npm:stä käyttämällä klassista pitkäikäistä tunnusta, ohittaen täysin tavanomaisen GitHub Actionsiin perustuvan CI/CD-prosessin.

Kahdeksantoista tuntia ennen viimeistä hyökkäystä toimija oli jo julkaissut npm-rekisterissä haitalliseen riippuvuuteen liittyvän "puhtaan" version . Tämä alustava vaihe loi historian ja esti joidenkin automaattisten tarkistusten käynnistymisen, kun hyökkäyksen aikaan ilmestyi täysin uusi paketti.

Silmiinpistävää on, että hyökkääjät eivät muokanneet Axiosin lähdekoodia tai tehneet näkyviä muutoksia GitHub-arkistoon . Itse asiassa versioilla 1.14.1 ja 0.30.4 ei ollut vastaavia committeja tai tageja GitHubissa; ne olivat olemassa vain npm:ssä. Keskeinen ero oli paketin riippuvuustiedostossa, joka julkaistiin rekisterissä.

Normaalioloissa Axios määrittelee vain kolme riippuvuutta: follow-redirects, form-data ja proxy-from-env . Vaarantuneissa versioissa ilmestyi kuitenkin neljäs riippuvuus, jota ei aiemmin ollut projektissa: plain-crypto-js, versio 4.2.1. Tätä fantomkirjastoa ei käytetty missään Axiosin koodikannassa, mutta se sisälsi asennuksen jälkeisen komentosarjan, joka suoritettiin automaattisesti, kun paketti asennettiin npm:llä, pnpm:llä tai vastaavilla työkaluilla.

plain-crypto-js: RAT:n käyttämä phantom-riippuvuus

Hyökkäyksen avain oli tuossa lisäriippuvuudessa. plain-crypto-js:n julkaisi npm:ssä käyttäjä nimeltä "nrwise", jolla oli myös Proton Mail -sähköpostiosoite, ja sen ainoa tarkoitus oli suorittaa hämärretty asennuksen jälkeinen skripti Node.js:ssä (setup.js) . Skripti toimi dropperina eli haittaohjelman toisen vaiheen alkuperäisenä asennusohjelmana.

Kun Axios asennettiin yhteen sen saastuneista versioista, npm:n asennuksen jälkeinen elinkaari käynnisti automaattisesti plain-crypto-js-koodin ilman kehittäjältä vaadittuja erityistoimia . Dropper muodosti yhteyden sfrclakcom-verkkotunnuksessa aktiiviseen komento- ja ohjauspalvelimeen (C2), kuunteli porttia 8000 ja latasi kyseisen koneen käyttöjärjestelmälle ominaisen hyötykuorman. Tämä toiminta voidaan tunnistaa verkkoliikenneanalyysin avulla.

  Kuinka muuttaa vanha tietokone tehokkaaksi palomuuriksi OPNsensen avulla

StepSecurityn ja muiden analyysitiimien tutkijat kuvailevat erittäin varovaista toimintaa. Haitallisen hyötykuorman suorittamisen jälkeen dropperi poisti omat jälkensä: se poisti asennuksen jälkeisen komentosarjan, korvasi package.json-tiedoston "puhtaalla" versiolla ja jätti jälkeensä node_modules-tiedoston, joka ensi silmäyksellä näytti vaarattomalta . Tällä tavoin myöhempi manuaalinen tarkastus ei löytänyt haitallista koodia suoraan Axiosista.

Manipuloinnin tunnistamiseen ainoa luotettava vihje löytyi lukitustiedostoista (package-lock.json, pnpm-lock.yaml, yarn.lock) ja tiettyjen versioiden olemassaolosta: axios 1.14.1 tai 0.30.4 ja plain-crypto-js 4.2.1, sekä kahdesta kyseisen paketin versiosta, joiden välinumerot ovat joissakin analyyseissä linkitettyinä (4.2.0, 4.2.2). Socket puolestaan ​​havaitsi myöhemmin, että samaa haittaohjelmaa levitettiin myös paketeilla @shadanai/openclaw (eri versiot 2026.3.xx) ja @qqbrowser/openclaw-qbot (0.0.130), ja myös tietoturvatekniikat, kuten hunajapurkit, voivat auttaa tunnistamaan vastaavia kampanjoita.

Monialustainen RAT: Windows, macOS ja Linux valokeilassa

Suoritettuaan setup.js-skripti toimi orkestroijana, joka kykeni tunnistamaan käyttöjärjestelmän ja seuraamaan alustakohtaista hyökkäyspolkua . Kampanja oli selvästi ennalta valmisteltu: StepSecurityn mukaan hyökkääjillä oli valmiiksi käännettynä kolme erillistä hyötykuormaa, yksi kutakin järjestelmää varten.

macOS-järjestelmissä asennuksen jälkeinen prosessi käynnisti AppleScript-komennon, joka latasi troijalaisen binääritiedoston sfrclakcom:8000-palvelimelta . Tämä binääritiedosto tallennettiin polkuun /Library/Caches/com.apple.act.mond, sen käyttöoikeuksia muutettiin suoritettavaksi ja lopuksi se käynnistettiin taustalla käyttämällä /bin/zsh-komentoa. Kun RAT oli käynnissä, itse AppleScript-komentotiedosto poistettiin, mikä vaikeutti rikosteknistä analyysia entisestään.

Windows-koneissa haittaohjelma paikansi järjestelmän PowerShell-binääritiedoston, kopioi sen tiedostoon %PROGRAMDATA%\wt.exe naamioidakseen sen Windows-päätteeksi ja loi väliaikaisen VBScript-tiedoston . Tämä VBScript-tiedosto otti sitten yhteyttä C2-palvelimeen ladatakseen toisen PowerShell RAT -skriptin, suoritti sen ja poisti ladatun tiedoston. Lisäksi Windows-variantti loi %PROGRAMDATA%\system.bat-tiedoston latausrutiinilla, jonka avulla haittaohjelma pystyi hakemaan itsensä jokaisen kirjautumisen yhteydessä ja lisäsi suoritusavaimen Windowsin rekisteriin pysyvyyden varmistamiseksi.

Linuxissa ja muissa Unixin kaltaisissa järjestelmissä macOS:n lisäksi dropper käytti Node.js:n execSync-komentoa käynnistääkseen komentotulkkikomennon, joka latasi Python-skriptin sfrclakcom-hakemistosta, tallensi sen nimellä /tmp/ld.py ja suoritti sen nohup-komennolla pitääkseen sen käynnissä taustalla . Toisin kuin Windowsissa, tässä variantissa ei ollut vankkaa pysyvyysmekanismia, mikä viittaa nopeampaan tiedonsiirtoon keskittyvään lähestymistapaan tai satunnaiseen pysyvyyden käyttöönottoon myöhempien komentojen kautta.

SafeDep ja Elastic Security Labs analysoivat toisen tason hyötykuormia ja totesivat, että macOS:n (C++ Mach-O-binääri) ja Linuxin (Python-skripti) RAT-kyselyillä oli sama komentojoukko, C2-protokolla, viestimuoto ja toimintatapa . Tämän tyyppinen analyysi perustuu tyypillisesti skannauspalveluihin, kuten VirusTotal , jotka helpottavat näytteiden ja IOC-arvojen korrelaatiota.

Kaikissa tapauksissa jokainen vaarantunut isäntä suoritti välittömän järjestelmätiedustelututkimuksen: käyttäjähakemistot, levyasemien juuret, aktiiviset prosessit ja muut metatiedot . Nämä tiedot lähetettiin komento- ja ohjauspalvelimelle, ja agentti ylläpiti noin 60 sekunnin majakkasilmukkaa odottaen uusia ohjeita, mukaan lukien lisäskriptien suorittaminen tai binääritiedostojen syöttäminen muistiin.

Altistumisikkuna, tavoitteet ja Pohjois-Korean vaikutus

Axiosin haitalliset versiot olivat saatavilla npm:ssä noin kolmen tunnin ajan huolellisesti valitun aikavälin sisällä. Vaarantuneet paketit julkaistiin juuri ennen sunnuntain keskiyötä (aika, joka maksimoi puolustajien reaktioajan), ja tapaus saatiin hallintaan maanantaiaamuun mennessä sen jälkeen, kun tietoturvayritykset ilmoittivat viranomaisille poikkeavasta toiminnasta.

Tuona suhteellisen lyhyenä aikana Huntress havaitsi ainakin 135 järjestelmää yhdistävän hyökkääjän palvelimeen . Koska Axios tallentaa yli 80–100 miljoonaa latausta viikossa (eri lähteiden mukaan jopa yli 300 miljoonaa joissakin ajanjaksoissa), tämä luku edustaa todennäköisesti vain jäävuoren huippua ja rajoittuu järjestelmiin, jotka tulevat analytiikkayritysten tietoon ja jotka ovat julkaisseet datansa.

  OpenAI Codex CLI: Kaikki mitä sinun tulee tietää päätekoodiavustajasta

Google Threat Intelligence -tiiminsä kautta selitti hyökkäyksen olevan epäilty pohjoiskorealainen toimija, jonka nimi oli UNC1069 . Elastic Security Labs vahvisti tätä hypoteesia löytämällä vahvan samankaltaisuuden macOS:ssä toimivan RAT-hyökkäyksen ja WAVESHAPER-hyökkäyksen välillä. WAVESHAPER on Mandiantin löytämä ja samaan uhkaryhmään yhdistetty C++-takaovi.

Googlen analyytikot korostivat, että Pohjois-Koreaan kytköksissä olevat ryhmät ovat erikoistuneet toimitusketjuhyökkäyksiin ja kryptovaluuttavarkauksiin jo vuosia . Kaava on johdonmukainen: kehitysinfrastruktuuria, laajalti käytettyjä kirjastoja tai luotettuja ohjelmistoja vaarannetaan ja sitten siirrytään sivusuunnassa kohti kohteita, jotka hallinnoivat arvokkaita omaisuuseriä, yksityisiä avaimia tai tunnistetietoja.

Useissa raporteissa korostettiin myös, että hyökkäyksen moderointi ja suunnittelu viittasivat hyvin koordinoituun tiimiin : kolme rinnakkaista RAT-toteutusta (PowerShell, C++ ja Python), johdonmukainen C2-protokolla, lähes identtinen toiminta kaikissa varianteissa ja selkeä itsepuhdistusstrategia jälkien välttämiseksi. Elastic korosti, että tämä johdonmukaisuus viittaa yksittäiseen kehittäjään tai ryhmään, joka työskentelee jaetun suunnitteludokumentin pohjalta, kaukana improvisaatiosta.

Edistynyt sosiaalinen manipulointi Axios-ylläpitäjää vastaan

Puhtaasti teknisten näkökohtien lisäksi yksi tapauksen häiritsevimmistä kohdista on se, miten pääylläpitäjän npm-tili kaapattiin. Axiosin johtaja itse selitti myöhemmin, että hänellä oli kaksivaiheinen todennus käytössä lähes kaikissa palveluissaan , mutta silti hän päätyi myöntämään käyttöoikeuden tietämättään.

Tiimin jakaman jälkipuintianalyysin mukaan hyökkääjät toteuttivat erittäin monimutkaisen sosiaalisen manipuloinnin operaation, jota tukivat tekoälytyökalut, saadakseen heidän luottamuksensa . He esiintyivät yrityksen perustajana kopioimalla sen visuaalisen ilmeen, valokuvan ja jopa yritysbrändin. He loivat oikean Slack-tilan yrityksen logolla, kanavia, joiden julkaisut oli oletettavasti synkronoitu LinkedInin kanssa, ja jopa väärennettyjä profiileja työntekijöistä ja muista avoimen lähdekoodin ohjelmistojen ylläpitäjistä.

Tuossa ympäristössä he sopivat Microsoft Teamsin kautta kokouksen, johon näytti osallistuvan täysi joukko ammattilaisia . Kokouksen aikana he simuloivat teknistä ongelmaa ja ilmoittivat, että heidän järjestelmänsä osa oli vanhentunut. Huoltoteknikko, olettaen, että kyseessä oli itse videoneuvottelutyökaluun liittyvä oikeutettu vaatimus, latasi ja asensi ehdotetun tiedoston.

Tuo tiedosto oli itse asiassa etäkäyttötroijalainen, jonka avulla hyökkääjät pystyivät siirtymään uhrin tunnistetietoihin ja lopulta ottamaan haltuunsa Axiosin julkaisemiseen käytetyn npm-tilin . Koko prosessi oli niin hyvin organisoitu ja niin monine uskottavine yksityiskohtineen, että uhri kuvaili sitä "täydellisesti koordinoiduksi, ammattimaiseksi ja täysin vakuuttavaksi".

Tämä tapauksen inhimillinen elementti tekee selväksi, että edes tekniset toimenpiteet, kuten 2FA, ovat riittämättömiä, kun korkean tason sosiaalinen manipulointi yhdistetään visuaaliseen henkilöllisyyden anastamiseen, deepfakeihin tai organisaatioiden yksityiskohtaiseen kloonaukseen . Heikoin lenkki on jälleen kerran ihmisen tekemä vuorovaikutus.

Vaikutus Axiosia käyttäviin organisaatioihin ja kehittäjiin

Käytännön näkökulmasta tärkein ongelma on sen määrittäminen, kehen tämä todellisuudessa vaikutti. Organisaatioiden, jotka asensivat [email protected]- tai [email protected] -ohjelman niiden saatavuusaikana, tulisi olettaa, että asennuksen suorittanut kone tai prosessi on saattanut vaarantua.

Sellaisten yritysten kuin StepSecurity, Aikido, Huntress ja Elastic suositukset ovat yksiselitteisiä. Epäilysten ilmetessä tarvitaan ennakoivaa lähestymistapaa, ei pelkästään "node_modules-tiedostojen poistamista ja uudelleenasentamista ". Järkevä toimintatapa on rakentaa kyseiset koneet tai ympäristöt uudelleen luotettavista levykuvista ja tarkistaa huolellisesti CI/CD-lokit sen tunnistamiseksi, mitkä työt tai prosessit ovat saattaneet suorittaa vaarantuneita versioita.

Lisäksi on kriittistä kierrättää kaikkia tunnistetietoja ja salaisuuksia, joihin RAT on saattanut päästä käsiksi näiltä solmuilta : npm-tokenit, pilvipalveluntarjoajan avaimet, putkisalaisuudet, tietokannan tunnistetiedot, SSH-avaimet jne. Näiden tunnistetietojen jättäminen kiertoon tällaisen hyökkäyksen jälkeen avaa oven hiljaiselle sivuttaissiirrolle.

  Genkit-middlewaren hallinta agenttiohjelmille

Teknisellä tasolla tiimien tulisi tarkistaa lukitustiedostonsa (package-lock.json, pnpm-lock.yaml, yarn.lock) viittausten varalta Axiosin ja plain-crypto-js:n vaarantuneisiin versioihin . Jos näitä elementtejä löytyy, seuraava vaihe on tarkastaa kyseiset järjestelmät mahdollisten RAT-artefaktien varalta: /Library/Caches/com.apple.act.mond macOS:ssä, %PROGRAMDATA%\wt.exe ja %PROGRAMDATA%\system.bat Windowsissa tai /tmp/ld.py Linuxissa.

Samanaikaisesti on suositeltavaa asettaa eksplisiittisesti Axiosin turvalliset versiot, kuten 1.14.0 ja 0.30.3, ja käyttää ohituksia tai ratkaisuja estääkseen transitiivisten riippuvuuksien ratkeamisen ei-toivotuiksi versioiksi . Lähtevän liikenteen estäminen sfrclakcom-verkkotunnukseen on myös järkevä eristämistoimenpide, ainakin siksi aikaa, kun hyökkäyksen koko laajuutta analysoidaan.

Tietoturvaoppitunteja ohjelmistotoimitusketjulle

Axios-tapaus ei ole yksittäinen tapahtuma, vaan jälleen yksi lenkki toimitusketjuhyökkäysten ketjussa, johon kuuluu muun muassa SolarWinds, Kaseya, 3CX, Polyfill.io ja Log4j:ssä hyödynnettyjä haavoittuvuuksia. Ydinajatus on aina sama: vaarantaa laajalti käytetty ja luotettava komponentti ulottuvuuden maksimoimiseksi sen sijaan, että yritettäisiin hyökätä kone kerrallaan.

Yksi asiantuntijoiden useimmin toistamista oppitunneista on, että luottamus ei voi perustua pelkästään kirjaston suosioon tai ylläpitäjän maineeseen . Jos julkaisukanava (npm-tili, CI/CD-putki, koonti-infrastruktuuri) vaarantuu, kaikki sen kautta julkaistu perii tämän riskin. Manuaalinen koodin tarkistus on myös riittämätöntä, jos haittaohjelma piiloutuu transitiivisiin riippuvuuksiin ja poistaa itsensä suorituksen jälkeen.

On myös korostettu, että riippuvuuspäivitysten "oletusnopeus" tulee kalliiksi hyökkäyspinnan suhteen . Uusimman version automaattinen käyttöönotto on uskomattoman kätevää, mutta se avaa oven haitallisen päivityksen leviämiselle muutamassa minuutissa. Jotkut organisaatiot harkitsevat jo käytäntöjä, kuten vaatimusta, että uusi versio on ollut ekosysteemissä tietyn ajan ennen käyttöönottoa, tai vaatimusta, että kriittisten pakettien muutokset on tarkastettava manuaalisesti.

Kehitysinfrastruktuurin osalta CI/CD-ympäristöjä on käsiteltävä erittäin arkaluonteisina resursseina . Mikä tahansa riippuvuuksien asennuksen aikana suoritettava RAT-operaatio lähes varmasti hakee liukuhihnan salaisuuksia ja pääsyä muihin ympäristöihin. Näiden solmujen segmentointi, niiden tarkempi valvonta ja niiden salaisuuksien säännöllinen kierrättäminen ei ole enää "ihanteellinen" suositus, vaan välttämättömyys.

Lopuksi, tällaisten hyökkäysten havaitseminen edellyttää tiedon yhdistämistä useista lähteistä: asennetuista versioista, lukitustiedostoista, käyttöjärjestelmän murtautumisindikaattoreista ja verkon telemetriasta . Työkalut, jotka luovat ja hallitsevat ohjelmistojen materiaaliluetteloita (SBOM), auttavat nopeasti jäljittämään, mitkä projektit käyttävät mitäkin paketteja, mikä on elintärkeää, kun tällaisia ​​massiivisia hälytyksiä laukeaa.

Tämä koko Axios-jakso havainnollistaa sitä, missä määrin riippuvuusekosysteemi, olipa se kuinka kypsä ja vakiintunut tahansa, on edelleen vahvasti riippuvainen luottamuksesta ja jatkuvasta valppaudesta. Yhden ihmisen ylläpitämä näennäisesti harmiton kirjasto, joka joutuu hyvin toteutetun sosiaalisen manipuloinnin hyökkäyksen uhriksi, voi muutamassa tunnissa muuttua globaaliksi vektoriksi, jolla otetaan käyttöön alustojen välisiä RAT-hyökkäyksiä yrityksiä, freelancereita ja kaikenkokoisia organisaatioita vastaan . Julkaisutilien, prosessien ja kriittisten riippuvuuksien valvonnan vahvistaminen ei ole enää valinnainen paras käytäntö, vaan edellytys jatkuvalle kehitykselle ympäristössä, jossa hyökkääjät ovat yhä kärsivällisempiä, kekseliäämpiä ja varustettuja paremmilla työkaluilla.

komentosarjojen koventamisjärjestelmät
Aiheeseen liittyvä artikkeli:
Skriptaus ja järjestelmän vahvistaminen: täydellinen opas palvelimien vahvistamiseen