- Ründaja rikkus Axios peamise hooldaja npm-konto ja avaldas versioonid 1.14.1 ja 0.30.4 fantoomsõltuvusega plain-crypto-js, mis installimise ajal juurutas platvormideülese RAT-i.
- Pahavara võttis ühendust C2 serveriga (sfrclak[.]com) ja laadis alla spetsiifilisi kasulikke faile Windowsi, macOS-i ja Linuxi jaoks, teostades süsteemi luuret, hallates perioodilisi märguandeid ja mõnel juhul luues püsivuse.
- Google'i ja teiste teadlaste poolt Põhja-Korea tegija UNC1069-le omistatud rünnak ühendas umbes kolmetunnise kokkupuuteperioodi keeruka sotsiaalse manipuleerimise kampaaniaga hooldaja vastu, et varastada nende volitusi.
- Organisatsioonid, mis suutsid kahjustatud versioone installida, peavad võtma meetmeid, otsima RAT-artefakte, vahetama volitusi, kinnitama Axiose turvalisi versioone ning tugevdama oma tarneahela, CI/CD ja sõltuvuste haldamise kontrolle.
JavaScripti arenduskogukond on just kogenud ühte neist hirmutavatest olukordadest, mis paneb ümber hindama oma sõltuvuste usaldusväärsust, nagu näitavad teekide haavatavusprobleemid . Axios, üks ökosüsteemi enimkasutatavaid HTTP-teeke, manipuleeriti npm-is, et levitada kaugjuurdepääsuga troojat (RAT) pealtnäha legitiimsete versioonide kaudu. Intsident kestis vaid paar tundi, kuid on selgelt näidanud, et tarkvara tarneahel on palju õhema niidi otsas, kui paljud arvasid.
Tõsine probleem pole ainult see, et ründajatel õnnestus pahavara salaja paketti sisse hiilida, mida alla laaditi kümneid või sadu miljoneid kordi nädalas. Tegelik probleem on see, et nad tegid seda peamise hooldaja npm-konto kaaperdamise teel, avaldades "ametlikke" versioone, mis tundusid normaalsed ega puudutanud ühtegi rida Axios lähtekoodist . Kogu pahatahtlik käitumine asus spetsiaalselt rünnaku jaoks loodud fantoomsõltuvuses.
Kuidas Axiose pühendumus npm-ile tekkis
Intsidendi ulatuse mõistmiseks peame alustama sisenemispunktist. Ründajal õnnestus haarata enda kontrolli alla Axios peamise hooldaja „jasonsaaymani” npm-konto ja muuta seotud e-posti aadress enda kontrolli all olevaks aadressiks , mis asub Proton Mailis. Sellest hetkest alates oli neil vabad käed avaldada paketi uusi versioone justkui oleksid nad hooldaja.
Nende mandaatide abil laadis ta üles kaks Axios'e pahatahtlikku versiooni: 1.14.1 ja 0.30.4 , mis hõlmasid projekti mõlemat peamist haru. Üleslaadimised tehti vaid 39-minutilise vahega ja StepSecurity analüüsi kohaselt tehti need otse npm-ist, kasutades klassikalist pikaealist tokenit, möödudes täielikult tavapärasest GitHub Actionsil põhinevast CI/CD-torustikust.
Kaheksateist tundi enne viimast rünnakut oli tegija juba avaldanud npm-i registris pahatahtliku sõltuvusega seotud „puhta“ versiooni . See esialgne samm genereeris ajaloo ja takistas mõnede automatiseeritud kontrollide käivitumist, kui rünnaku ajal ilmus täiesti uus pakett.
Silmatorkav on see, et ründajad ei muutnud Axiose lähtekoodi ega teinud GitHubi repositooriumis nähtavaid muudatusi . Tegelikult polnud versioonidel 1.14.1 ja 0.30.4 GitHubis vastavaid commit'e ega silte; need eksisteerisid ainult npm-is. Peamine erinevus seisnes paketi sõltuvusfailis, mis avaldati registris.
Tavapärastes tingimustes deklareerib Axios ainult kolm sõltuvust: follow-redirects, form-data ja proxy-from-env . Kompromiteeritud versioonides ilmus aga neljas sõltuvus, mida projektis varem polnud: plain-crypto-js, versioon 4.2.1. Seda fantoomteeki ei kasutatud Axiose koodibaasis kusagil, kuid see sisaldas installijärgset skripti, mis käivitus automaatselt paketi installimisel npm, pnpm või sarnaste tööriistadega.
plain-crypto-js: RAT-i poolt juurutatud fantoomsõltuvus
Rünnaku võti peitus selles lisasõltuvuses. plain-crypto-js avaldas npm-is kasutaja nimega „nrwise”, kellel oli samuti Proton Maili e-posti aadress, ja selle ainus eesmärk oli käivitada Node.js-is hägustatud installijärgne skript (setup.js) . See skript toimis dropperina ehk pahavara teise faasi esialgse installijana.
Axiose ühes nakatunud versioonis installimisel käivitas npm-i installijärgne elutsükkel automaatselt plain-crypto-js koodi ilma arendajalt igasuguste erisammudeta . Dropper ühendus sfrclakcom-domeenis aktiivse juhtimis- ja juhtimisserveriga (C2), kuulas porti 8000 ja laadis alla kahjustatud masina operatsioonisüsteemile omase kasuliku koormuse; seda käitumist saab tuvastada võrguliikluse analüüsi abil.
StepSecurity ja teiste analüüsimeeskondade teadlased kirjeldavad väga ettevaatlikku käitumist. Pärast pahatahtliku koormuse käivitamist eemaldas dropper oma jäljed: see kustutas installijärgse skripti, asendas faili package.json "puhta" versiooniga ja jättis alles faili node_modules, mis esmapilgul tundus kahjutu . Nii ei leitud hilisemal käsitsi kontrollimisel pahatahtlikku koodi otse Axiosest.
Manipulatsiooni tuvastamiseks oli ainsaks usaldusväärseks vihjeks lukustusfailid (package-lock.json, pnpm-lock.yaml, yarn.lock) ja konkreetsete versioonide olemasolu: axios 1.14.1 või 0.30.4 ja plain-crypto-js 4.2.1, lisaks selle paketi kahele versioonile vahepealsete numbritega (4.2.0, 4.2.2), mis on mõnes analüüsis lingitud. Socket omakorda tuvastas hiljem, et sama pahavara levitati ka pakettide @shadanai/openclaw (erinevad versioonid 2026.3.xx) ja @qqbrowser/openclaw-qbot (0.0.130) kaudu ning sarnaseid kampaaniaid võivad aidata tuvastada ka turvatehnikad, näiteks meepotirünnakud.
Platvormideülene RAT: Windows, macOS ja Linux tähelepanu keskpunktis
Pärast käivitamist toimis setup.js skript orkestraatorina, mis oli võimeline tuvastama operatsioonisüsteemi ja järgima platvormipõhist rünnakuteed . Kampaania oli selgelt eelnevalt ette valmistatud: StepSecurity andmetel oli ründajatel eelnevalt kompileeritud kolm eraldi kasulikku koormust, üks iga süsteemi jaoks.
macOS-süsteemides käivitas installijärgne protsess AppleScripti, mis laadis sfrclakcom:8000 serverist alla troojalase binaarfaili . See binaarfail salvestati teele /Library/Caches/com.apple.act.mond, selle õigusi muudeti käivitatavaks ja lõpuks käivitati see taustal käsuga /bin/zsh. Kui RAT oli käivitunud, kustutati AppleScript ise, et kohtuekspertiisi analüüsi veelgi keerulisemaks muuta.
Windowsi masinates leidis pahavara süsteemi PowerShelli binaarfaili, kopeeris selle faili %PROGRAMDATA%\wt.exe, et varjata seda Windowsi terminalina, ja genereeris ajutise VBScripti . See VBScript võttis seejärel ühendust C2 serveriga, et alla laadida täiendav PowerShelli RAT-skript, käivitas selle ja kustutas seejärel allalaaditud faili. Lisaks lõi Windowsi variant faili %PROGRAMDATA%\system.bat allalaadimisrutiiniga, mis võimaldas pahavaral igal sisselogimisel end laadida ja lisas Windowsi registrisse täitmisvõtme, et tagada faili püsivus.
Linuxis ja teistes Unixi-laadsetes süsteemides peale macOS-i kasutas dropper Node.js-i execSynci, et käivitada käsk, mis laadis sfrclakcom-ist alla Pythoni skripti, salvestas selle nimega /tmp/ld.py ja käivitas selle nohup-iga, et see taustal töötaks . Erinevalt Windowsist ei olnud sellel variandil robustset püsivusmehhanismi, mis viitab kiiremale andmete väljafiltreerimisele orienteeritud lähenemisviisile või püsivuse aeg-ajalt rakendamisele järgnevate käskude kaudu.
SafeDep ja Elastic Security Labs analüüsisid teise taseme kasulikke koormusi ning jõudsid järeldusele, et macOS-i (C++ Mach-O binaarfail) ja Linuxi (Pythoni skript) RAT-idel oli sama käskude komplekt, C2 protokoll, sõnumivorming ja töökäitumine . Seda tüüpi analüüs tugineb tavaliselt skannimisteenustele nagu VirusTotal , mis hõlbustavad proovide ja IOC-de korrelatsiooni.
Kõigil juhtudel teostas iga ohustatud host kohe süsteemi luure: kasutajakataloogid, draivi juured, aktiivsed protsessid ja muud metaandmed . See teave saadeti juhtimisserverile ning agent pidas umbes 60 sekundit majakatsüklit, oodates uusi juhiseid, sealhulgas täiendavate skriptide käivitamist või binaarfailide sisestamist mällu.
Kokkupuuteaken, eesmärgid ja omistamine Põhja-Koreale
Axiose pahatahtlikud versioonid olid npm-is saadaval umbes kolm tundi hoolikalt valitud ajaraamis. Ohustatud paketid avaldati vahetult enne pühapäeva südaööd (aeg, mis maksimeeris kaitsjate reaktsiooniaega) ja intsident ohjeldati esmaspäeva varahommikuks pärast seda, kui turvafirmad teavitasid ametivõime anomaalsest käitumisest.
Selle suhteliselt lühikese aja jooksul tuvastas Huntress ründaja serveriga ühenduse loomise vähemalt 135 süsteemi . Arvestades, et Axios registreerib nädalas üle 80–100 miljoni allalaadimise (erinevate allikate kohaselt mõnel perioodil isegi üle 300 miljoni), on see arv tõenäoliselt vaid jäämäe tipp, piirdudes süsteemidega, mis satuvad analüütikafirmade tähelepanu alla ja on oma andmed avalikustanud.
Google omistas oma ohuluure meeskonna kaudu rünnaku oletatavale Põhja-Korea tegijale, kelle nimi on UNC1069 . Elastic Security Labs kinnitas seda hüpoteesi, leides tugeva sarnasuse macOS-is käivitatud RAT-i ja WAVESHAPER-i vahel, mis on Mandiant'i avastatud ja samuti sama ohugrupiga seotud C++ tagauks.
Google'i analüütikud rõhutasid, et Põhja-Koreaga seotud rühmitused on aastaid spetsialiseerunud tarneahela rünnakutele ja krüptovaluuta vargustele . Muster on järjepidev: arendusinfrastruktuuri, laialdaselt kasutatavate teekide või usaldusväärse tarkvara ohtu seadmine ja seejärel edasiliikumine sihtmärkide poole, mis haldavad väärtuslikke varasid, privaatvõtmeid või volitusi.
Mitmed aruanded tõid samuti esile, et rünnaku modereerimine ja ülesehitus viitasid hästi koordineeritud meeskonnale : sama RAT-i kolm paralleelset implementatsiooni (PowerShell, C++ ja Python), järjepidev C2-protokoll, peaaegu identne käitumine kõigis variantides ja selge isepuhastuv strateegia jälgede jätmise vältimiseks. Elastic rõhutas, et see järjepidevus viitab ühele arendajale või rühmale, kes töötab ühise disainidokumendi alusel, mis on kaugel improvisatsioonist.
Lisaks puhttehnilistele aspektidele on juhtumi üks häirivamaid aspekte see, kuidas peamise hooldaja npm-konto kaaperdati. Axiosi haldur ise selgitas hiljem, et tal oli peaaegu kõigis oma teenustes lubatud kahefaktoriline autentimine , kuid ometi andis ta juurdepääsu seda ise teadvustamata.
Meeskonna jagatud lahkamisanalüüsi kohaselt viisid ründajad läbi keeruka sotsiaalse manipuleerimise operatsiooni, mida toetasid tehisintellektil põhinevad tööriistad, et nende usaldust võita . Nad teesklesid ettevõtte asutajat, kopeerides selle visuaalset identiteeti, fotot ja isegi ettevõtte brändingut. Nad lõid ettevõtte logoga tõelise Slacki ruumi, kanalid, mille postitused väidetavalt sünkrooniti LinkedIniga, ning isegi töötajate ja teiste avatud lähtekoodiga tarkvara haldajate võltsprofiilid.
Selles keskkonnas leppisid nad kokku Microsoft Teamsi kaudu kohtumise, kus näis osalevat terve grupp spetsialiste . Koosoleku käigus simuleerisid nad tehnilist probleemi ja teatasid, et nende süsteemi üks komponent on aegunud. Hooldustehnik, eeldades, et tegemist on videokonverentsi tööriista enda õigustatud nõudega, laadis alla ja installis soovitatud faili.
See fail oli tegelikult kaugjuurdepääsuga trooja, mis võimaldas ründajatel pöörduda ohvri sisselogimisandmete poole ja lõpuks võtta kontrolli Axiose avaldamiseks kasutatava npm-konto üle . Kogu protsess oli nii hästi orkestreeritud ja nii paljude usutavate detailidega, et ohver kirjeldas seda kui "täiuslikult koordineeritud, professionaalset ja täiesti veenvat".
See intsidendi inimlik element teeb selgeks, et isegi tehnilised meetmed, nagu 2FA, on ebapiisavad, kui kõrgetasemelist sotsiaalset manipuleerimist kombineeritakse visuaalse isiku tuvastamise, süvavõltsingu või organisatsioonide detailse kloonimisega . Kõige nõrgem lüli on taas kord inimsuhtlus.
Mõju Axiost kasutavatele organisatsioonidele ja arendajatele
Praktilisest vaatenurgast seisneb peamine probleem selles, keda see tegelikult mõjutas. Iga organisatsioon, mis installis [email protected] või [email protected] ajal, mil need olid saadaval, peaks eeldama, et installi teostanud masin või torujuhe võib olla ohustatud.
Selliste firmade nagu StepSecurity, Aikido, Huntress ja Elastic soovitused on ühemõttelised. Kahtluse korral on vajalik ennetav lähenemine, mitte lihtsalt "node_modules'i kustutamine ja uuesti installimine ". Mõistlik tegutsemisviis on kahjustatud masinad või keskkonnad usaldusväärsete kujutiste abil uuesti üles ehitada ja CI/CD logid hoolikalt üle vaadata, et tuvastada, millised tööd või torujuhtmed võisid ohustatud versioone käivitada.
Lisaks on kriitilise tähtsusega vahetada kõiki volitusi ja saladusi, millele RAT võis nendest sõlmedest juurde pääseda : npm-tokenid, pilveteenuse pakkuja võtmed, torujuhtme saladused, andmebaasi volitused, SSH-võtmed jne. Nende volituste ringlusse jätmine pärast sellist rünnakut jätab ukse avatuks vaikseks külgliikumiseks.
Tehnilisel tasandil peaksid meeskonnad oma lukustusfailid (package-lock.json, pnpm-lock.yaml, yarn.lock) üle vaatama, et leida viiteid Axios ja plain-crypto-js ohustatud versioonidele . Kui need elemendid leitakse, on järgmiseks sammuks kontrollida mõjutatud süsteeme võimalike RAT-artefaktide suhtes: /Library/Caches/com.apple.act.mond macOS-is, %PROGRAMDATA%\wt.exe ja %PROGRAMDATA%\system.bat Windowsis või /tmp/ld.py Linuxis.
Paralleelselt on soovitatav selgesõnaliselt määrata Axios turvalised versioonid, näiteks 1.14.0 ja 0.30.3, ning kasutada tühistamisi või lahendusi, et vältida transitiivsete sõltuvuste lahendamist soovimatuteks versioonideks . Väljamineva liikluse blokeerimine sfrclakcom domeeni on samuti mõistlik ohjeldamismeede, vähemalt seni, kuni rünnaku täielikku ulatust analüüsitakse.
Tarkvara tarneahela turvatunnid
Axiose intsident ei ole isoleeritud sündmus, vaid järjekordne lüli tarneahela rünnakute ahelas, mis hõlmab selliseid juhtumeid nagu SolarWinds, Kaseya, 3CX, Polyfill.io ja Log4j-s ära kasutatud haavatavused. Põhiidee on alati sama: rikkuda laialdaselt kasutatavat ja usaldusväärset komponenti, et maksimeerida ulatust , mitte proovida rünnata masinhaaval.
Üks ekspertide enim korratud õppetunde on see, et usaldus ei saa tugineda ainult teeki populaarsusele või hooldaja mainele . Kui väljalaskekanal (npm-konto, CI/CD-torujuhe, ehitusinfrastruktuur) on ohustatud, pärib see risk kõik, mis selle kaudu avaldatakse. Koodi käsitsi läbivaatamine on samuti ebapiisav, kui pahavara peidab end transitiivsetes sõltuvustes ja kustutab end pärast käivitamist.
Samuti on esile tõstetud, et sõltuvusvärskenduste „vaikimisi kiirus” tuleb rünnakupinna arvelt maksma . Uusima versiooni automaatne kasutuselevõtt on uskumatult mugav, kuid see avab ukse pahatahtliku värskenduse levikuks minutitega. Mõned organisatsioonid kaaluvad juba poliitikaid, näiteks nõuda, et uus versioon oleks enne kasutuselevõttu ökosüsteemis olnud teatud aja või et kriitiliste pakettide muudatused läbiksid täiendava käsitsi ülevaatuse.
Arendusinfrastruktuuri osas tuleb CI/CD-keskkondi käsitleda ülitundlike varadena . Iga sõltuvuste installimise ajal käivitatud RAT otsib peaaegu kindlasti kanalisatsiooni saladusi ja juurdepääsu teistele keskkondadele. Nende sõlmede segmenteerimine, hoolikam jälgimine ja nende saladuste perioodiline vahetamine pole enam "ideaalne" soovitus, vaid vajadus.
Lõpuks nõuab seda tüüpi rünnakute tuvastamine teabe kombineerimist mitmest allikast: installitud versioonid, lukustusfailid, operatsioonisüsteemi kompromiteerimise indikaatorid ja võrgu telemeetria . Tööriistad, mis genereerivad ja haldavad tarkvara materjalide loetelu (SBOM), aitavad kiiresti jälgida, millised projektid milliseid pakette kasutavad, mis on ülioluline selliste ulatuslike hoiatuste korral.
Kogu see Axiosega seotud episood illustreerib, mil määral sõltuvuste ökosüsteem, olgu see kui küps ja konsolideerunud tahes, tugineb endiselt suuresti usaldusele ja pidevale valvsusele. Näiliselt süütust teegist, mida haldab üks inimene, kes langeb hästi teostatud sotsiaalse manipuleerimise rünnaku ohvriks, võib mõne tunniga saada globaalne vektor platvormideüleste RAT-ide juurutamiseks igas suuruses ettevõtete, vabakutseliste ja organisatsioonide vastu . Kontrolli tugevdamine avaldamiskontode, müügikanalite ja kriitiliste sõltuvuste ümber ei ole enam valikuline parim tava, vaid eeltingimus jätkuvaks arenguks keskkonnas, kus ründajad on üha kannatlikumad, leidlikumad ja varustatud paremate tööriistadega.

