RAT se distribuira korištenjem zlonamjernih verzija Axiosa u npm-u

Zadnje ažuriranje: 5 travnja 2026
  • Napadač je kompromitirao npm račun glavnog održavatelja Axiosa i objavio verzije 1.14.1 i 0.30.4 s fantomskom ovisnošću, plain-crypto-js, koja je tijekom instalacije implementirala RAT za više platformi.
  • Zlonamjerni softver kontaktirao je C2 poslužitelj (sfrclak[.]com) i preuzeo specifične korisne podatke za Windows, macOS i Linux, obavljajući izviđanje sustava, održavajući periodične beacone i u nekim slučajevima uspostavljajući perzistenciju.
  • Napad, koji Google i drugi istraživači pripisuju sjevernokorejskom akteru UNC1069, kombinirao je vremenski okvir izloženosti od oko tri sata sa sofisticiranom kampanjom socijalnog inženjeringa protiv održavatelja kako bi im se ukrali pristupni podaci.
  • Organizacije koje su uspjele instalirati pogođene verzije moraju se obvezati na poduzimanje mjera, pretraživanje RAT artefakata, rotiranje vjerodajnica, prikvačivanje sigurnih verzija Axiosa i jačanje svog lanca opskrbe, CI/CD i kontrola upravljanja ovisnostima.

Napad na Axios s RAT-om u npm-u

Zajednica JavaScript programera upravo je iskusila jedan od onih strahova koji vas tjeraju da preispitate koliko vjerujete svojim ovisnostima, što pokazuju problemi s ranjivostima biblioteka . Axios, jedna od najčešće korištenih HTTP biblioteka u ekosustavu, manipulirana je na npm-u kako bi distribuirala trojanca za udaljeni pristup (RAT) putem naizgled legitimnih verzija. Incident je trajao samo nekoliko sati, ali je jasno pokazao da lanac opskrbe softverom visi na puno tanjoj niti nego što su mnogi mislili.

Ozbiljan problem nije samo to što su napadači uspjeli prokrijumčariti zlonamjerni softver u paket koji se preuzima desetke ili stotine milijuna puta tjedno. Pravi problem je što su to učinili otimanjem npm računa glavnog održavatelja, objavljujući "službene" verzije koje su izgledale normalno i nisu dirale niti jedan redak izvornog koda Axiosa . Sve zlonamjerno ponašanje nalazilo se u fantomskoj ovisnosti posebno dizajniranoj za napad.

Kako je došlo do Axiosove predanosti NPM-u

Kako bismo razumjeli razmjere incidenta, moramo početi s ulaznom točkom. Napadač je uspio preuzeti kontrolu nad npm računom "jasonsaayman", glavnog održavatelja Axiosa, i promijenio povezanu adresu e-pošte u onu pod svojom kontrolom , hostanu na Proton Mailu. Od tog trenutka nadalje imali su slobodne ruke objavljivati ​​nove verzije paketa kao da su oni održavatelj.

Koristeći te vjerodajnice, prenio je dvije zlonamjerne verzije Axiosa: 1.14.1 i 0.30.4 , pokrivajući obje glavne grane projekta. Prenosi su napravljeni u razmaku od samo 39 minuta i, prema analizi StepSecurityja, napravljeni su izravno iz npm-a pomoću klasičnog dugovječnog tokena, potpuno zaobilazeći uobičajeni CI/CD cjevovod temeljen na GitHub Actions.

Osamnaest sati prije konačnog napada, akter je već objavio "čistu" verziju povezanu sa zlonamjernom ovisnošću u npm registru . Ovaj preliminarni korak poslužio je za generiranje povijesti i sprječavanje pokretanja nekih automatiziranih provjera kada se u trenutku napada pojavio potpuno novi paket.

Upečatljivo je da napadači nisu mijenjali izvorni kod Axiosa niti napravili ikakve vidljive promjene u GitHub repozitoriju . Zapravo, verzije 1.14.1 i 0.30.4 nisu imale odgovarajuće commite ili oznake na GitHubu; postojale su samo na npm-u. Ključna razlika bila je u datoteci ovisnosti paketa, koja je objavljena u registru.

Axios, u normalnim okolnostima, deklarira samo tri ovisnosti: follow-redirects, form-data i proxy-from-env . Međutim, u kompromitiranim verzijama pojavila se četvrta ovisnost, ona koja prije nije postojala u projektu: plain-crypto-js, verzija 4.2.1. Ova fantomska biblioteka nije korištena nigdje u Axios kodnoj bazi, ali je uključivala skriptu nakon instalacije koja se automatski pokretala prilikom instaliranja paketa s npm-om, pnpm-om ili sličnim alatima.

plain-crypto-js: fantomska ovisnost koju je implementirao RAT

Ključ napada ležao je u toj dodatnoj ovisnosti. plain-crypto-js objavio je na npm-u korisnik pod imenom "nrwise", također s Proton Mail adresom e-pošte, a njegova jedina svrha bila je izvršavanje obfusciranog skripta nakon instalacije u Node.js-u (setup.js) . Taj je skript djelovao kao dropper, odnosno kao početni instalacijski program za drugu fazu zlonamjernog softvera.

Prilikom instaliranja Axiosa u jednoj od njegovih zaraženih verzija, životni ciklus npm-a nakon instalacije automatski je pokrenuo plain-crypto-js kod bez ikakve posebne akcije potrebne od strane programera . Dropper se povezao s komandnim i kontrolnim (C2) poslužiteljem aktivnim u domeni sfrclakcom, osluškujući port 8000 i preuzimajući podatke specifične za operativni sustav pogođenog računala; ovo ponašanje može se identificirati analizom mrežnog prometa.

  Što je web dizajn: osnovni pojmovi

Istraživači u StepSecurityju i drugim analitičkim timovima opisuju vrlo pažljivo ponašanje. Nakon izvršavanja zlonamjernog sadržaja, dropper je uklonio vlastite tragove: izbrisao je postinstall skriptu, zamijenio datoteku package.json "čistom" verzijom i ostavio datoteku node_modules koja se na prvi pogled činila bezopasnom . Na taj način, naknadna ručna inspekcija nije pronašla zlonamjerni kod izravno unutar Axiosa.

Jedini pouzdani trag za identifikaciju manipulacije bio je u lockfiles datotekama (package-lock.json, pnpm-lock.yaml, yarn.lock) i prisutnosti specifičnih verzija: axios 1.14.1 ili 0.30.4 i plain-crypto-js 4.2.1, uz dvije verzije tog paketa s međubrojevima (4.2.0, 4.2.2) povezane u nekim analizama. Socket je, sa svoje strane, kasnije otkrio da se isti zlonamjerni softver distribuirao i putem paketa @shadanai/openclaw (razne verzije 2026.3.xx) i @qqbrowser/openclaw-qbot (0.0.130), a sigurnosne tehnike poput honeypotova također mogu pomoći u identificiranju sličnih kampanja.

Višeplatformski RAT: Windows, macOS i Linux u središtu pozornosti

Nakon izvršenja, skripta setup.js djelovala je kao orkestrator sposoban za detekciju operativnog sustava i praćenje puta napada specifičnog za platformu . Kampanja je očito bila unaprijed pripremljena: prema StepSecurityju, napadači su imali tri odvojena paketa podataka unaprijed kompajlirana, po jedan za svaki sustav.

Na macOS sustavima, proces nakon instalacije pokrenuo je AppleScript koji je preuzeo trojanski binarni fajl sa servera sfrclakcom:8000 . Ovaj binarni fajl je spremljen na putanju /Library/Caches/com.apple.act.mond, njegove dozvole su prilagođene kako bi bio izvršni i na kraju je pokrenut u pozadini pomoću /bin/zsh. Nakon što je RAT pokrenut, sam AppleScript je izbrisan kako bi se dodatno zakomplicirala forenzička analiza.

Na Windows računalima, zlonamjerni softver je locirao PowerShell binarnu datoteku sustava, kopirao je u %PROGRAMDATA%\wt.exe kako bi je prikrio kao Windows terminal i generirao privremeni VBScript . Ovaj VBScript je zatim kontaktirao C2 poslužitelj kako bi preuzeo dodatnu PowerShell RAT skriptu, izvršio je i zatim izbrisao preuzetu datoteku. Nadalje, Windows varijanta je stvorila datoteku %PROGRAMDATA%\system.bat s rutinom preuzimanja koja je omogućila zlonamjernom softveru da se dohvati pri svakoj prijavi i dodala je ključ izvršenja u Windows registar kako bi se osigurala trajnost.

Na Linuxu i drugim Unix-sličnim sustavima osim macOS-a, dropper je koristio Node.js-ov execSync za pokretanje shell naredbe koja je preuzela Python skriptu sa sfrclakcom, spremila je kao /tmp/ld.py i izvršila je s nohup naredbom kako bi se održala u pozadini . Za razliku od Windowsa, ova varijanta nije pokazivala robustan mehanizam perzistencije, što sugerira brži pristup orijentiran na izvlačenje podataka ili povremeno raspoređivanje perzistencije putem sljedećih naredbi.

SafeDep i Elastic Security Labs analizirali su podatke druge razine i zaključili da RAT-ovi za macOS (C++ Mach-O binarni program) i Linux (Python skripta) dijele isti skup naredbi, C2 protokol, format poruke i operativno ponašanje . Ova vrsta analize obično se oslanja na usluge skeniranja poput VirusTotala , koje olakšavaju korelaciju uzoraka i IOC-ova.

U svim slučajevima, svaki kompromitirani host izvršio je trenutno izviđanje sustava: korisničke direktorije, korijenske direktorije diskova, aktivne procese i ostale metapodatke . Ove informacije poslane su na poslužitelj za upravljanje i kontrolu, a agent je održavao petlju beacon-a od oko 60 sekundi, čekajući nove upute, uključujući izvršavanje dodatnih skripti ili ubrizgavanje binarnih datoteka u memoriju.

Prozor izloženosti, ciljevi i pripisivanje Sjevernoj Koreji

Zlonamjerne verzije Axiosa bile su dostupne na npm-u otprilike tri sata, tijekom pažljivo odabranog vremenskog okvira. Kompromitirani paketi objavljeni su neposredno prije ponoći u nedjelju (vrijeme koje je maksimiziralo vrijeme reakcije branitelja), a incident je obuzdano do ranog ponedjeljka ujutro , nakon što su sigurnosne tvrtke upozorile vlasti na anomalno ponašanje.

Tijekom tog relativno kratkog razdoblja, Huntress je otkrio najmanje 135 sustava koji se spajaju na napadačev server . S obzirom na to da Axios bilježi više od 80-100 milijuna preuzimanja tjedno (prema različitim izvorima, čak i više od 300 milijuna u nekim razdobljima), taj broj vjerojatno predstavlja samo vrh ledenog brijega, ograničen na sustave koji dođu do pozornosti analitičkih tvrtki koje su svoje podatke učinile javnima.

  Otkrijte Qt Creator IDE: Najmoćnije okruženje za izradu višeplatformskih aplikacija

Google je, putem svog tima za obavještajne podatke o prijetnjama, pripisao napad sumnjivom sjevernokorejskom akteru s oznakom UNC1069 . Elastic Security Labs potvrdio je ovu hipotezu pronalaskom velike sličnosti između RAT-a isporučenog na macOS-u i WAVESHAPER-a, C++ backdoora koji je otkrio Mandiant i koji je također povezan s istom skupinom prijetnji.

Googleovi analitičari naglasili su da se skupine povezane sa Sjevernom Korejom godinama specijaliziraju za napade na lanac opskrbe i krađu kriptovaluta . Uzorak je dosljedan: ugrožavanje razvojne infrastrukture, široko korištenih biblioteka ili pouzdanog softvera kako bi se zatim bočno premjestilo prema ciljevima koji upravljaju visokovrijednom imovinom, privatnim ključevima ili vjerodajnicama.

Nekoliko izvješća također je istaknulo da moderiranje i dizajn napada sugeriraju dobro koordiniran tim : tri paralelne implementacije istog RAT-a (PowerShell, C++ i Python), konzistentan C2 protokol, gotovo identično ponašanje u svim varijantama i jasna strategija samočišćenja kako bi se izbjegli tragovi. Elastic je naglasio da ova konzistentnost ukazuje na jednog programera ili grupu koja radi na zajedničkom dizajnerskom dokumentu, daleko od improvizacije.

Napredni društveni inženjering protiv održavatelja Axiosa

Osim čisto tehničkih aspekata, jedna od najuznemirujućih točaka slučaja je kako je glavni održavatelj otet npm račun. Sam menadžer Axiosa kasnije je objasnio da je imao omogućenu dvofaktorsku autentifikaciju na gotovo svim svojim uslugama , a ipak je na kraju odobrio pristup, a da toga nije bio svjestan.

Prema analizi koju je podijelio tim, napadači su izveli vrlo složenu operaciju socijalnog inženjeringa, uz podršku alata pokretanih umjetnom inteligencijom, kako bi stekli njihovo povjerenje . Lažno su se predstavljali kao osnivač tvrtke, kopirajući njezin vizualni identitet, fotografiju, pa čak i korporativni brend. Stvorili su pravi Slack prostor s logotipom tvrtke, kanale s objavama navodno sinkroniziranim s LinkedInom, pa čak i lažne profile zaposlenika i drugih održavatelja softvera otvorenog koda.

U tom okruženju, zakazali su sastanak putem Microsoft Teamsa na kojem je, čini se, sudjelovala cijela grupa stručnjaka . Tijekom sastanka simulirali su tehnički problem i naznačili da je komponenta njihovog sustava zastarjela. Tehničar za održavanje, pretpostavljajući da se radi o legitimnom zahtjevu vezanom uz sam alat za videokonferencije, preuzeo je i instalirao predloženu datoteku.

Ta je datoteka zapravo bila trojanac za udaljeni pristup koji je napadačima omogućio pristup vjerodajnicama žrtve i na kraju preuzimanje kontrole nad npm računom korištenim za objavljivanje Axiosa . Cijeli proces bio je toliko dobro orkestriran, s toliko uvjerljivih detalja, da ga je žrtva opisala kao "savršeno koordiniran, profesionalan i potpuno uvjerljiv".

Ovaj ljudski element incidenta jasno pokazuje da čak ni tehničke mjere poput 2FA nisu dovoljne kada se visokorazinski društveni inženjering kombinira s vizualnim imitiranjem, deepfakeovima ili detaljnim kloniranjem organizacija . Najslabija karika je, još jednom, ljudska interakcija.

Utjecaj na organizacije i razvojne programere koji koriste Axios

S praktičnog stajališta, glavni problem je utvrditi tko je zapravo bio pogođen. Svaka organizacija koja je instalirala [email protected] ili [email protected] tijekom razdoblja u kojem su bili dostupni trebala bi pretpostaviti da stroj ili cjevovod koji je izvršio instalaciju može biti kompromitiran.

Preporuke tvrtki poput StepSecurity, Aikido, Huntress i Elastic su nedvosmislene. U slučaju sumnje, potreban je proaktivan pristup, a ne samo "brisanje i ponovna instalacija node_modules ". Razborit postupak je ponovna izgradnja pogođenih računala ili okruženja iz pouzdanih slika i pažljiv pregled CI/CD zapisnika kako bi se utvrdilo koji su poslovi ili cjevovodi možda izvršili kompromitirane verzije.

Nadalje, ključno je rotirati sve vjerodajnice i tajne kojima je RAT mogao pristupiti s tih čvorova : npm tokene, ključeve pružatelja usluga u oblaku, tajne cjevovoda, vjerodajnice baze podataka, SSH ključeve itd. Ostavljanje tih vjerodajnica u optjecaju nakon takvog napada ostavlja vrata otvorenima za tiho lateralno kretanje.

  Kibernetička sigurnost građana za mlade: rizici, zaštita i prilike

Na tehničkoj razini, timovi bi trebali pregledati svoje datoteke zaključavanja (package-lock.json, pnpm-lock.yaml, yarn.lock) za reference na kompromitirane verzije Axiosa i plain-crypto-js . Ako se pronađu ovi elementi, sljedeći korak je pregled pogođenih sustava za potencijalne RAT artefakte: /Library/Caches/com.apple.act.mond na macOS-u, %PROGRAMDATA%\wt.exe i %PROGRAMDATA%\system.bat na Windowsima ili /tmp/ld.py na Linuxu.

Paralelno s tim, preporučuje se eksplicitno postavljanje sigurnih verzija Axiosa, kao što su 1.14.0 i 0.30.3, te korištenje nadjačavanja ili rješavanja kako bi se spriječilo rješavanje tranzitivnih ovisnosti u neželjene verzije . Blokiranje odlaznog prometa prema domeni sfrclakcom također je razumna mjera suzbijanja, barem dok se analizira puni opseg napada.

Sigurnosne lekcije za lanac opskrbe softverom

Incident s Axiosom nije izolirani događaj, već još jedna karika u lancu napada na opskrbni lanac koji uključuje slučajeve poput SolarWindsa, Kaseye, 3CX-a, Polyfill.io i ranjivosti iskorištene u Log4j-u. Osnovna ideja je uvijek ista: kompromitirati široko korištenu, pouzdanu komponentu kako bi se maksimizirao doseg , umjesto pokušaja napada stroj po stroj.

Jedna od najčešće ponavljanih lekcija stručnjaka jest da se povjerenje ne može oslanjati isključivo na popularnost biblioteke ili ugled održavatelja . Ako je kanal izdanja (npm račun, CI/CD cjevovod, infrastruktura izgradnje) kompromitiran, sve što je objavljeno kroz njega nasljeđuje taj rizik. Ručni pregled koda također nije dovoljan ako se zlonamjerni softver skriva u tranzitivnim ovisnostima i briše se nakon izvršenja.

Također je istaknuto da "zadana brzina" za ažuriranja ovisnosti ima svoju cijenu u smislu površine napada . Uvijek automatsko usvajanje najnovije verzije nevjerojatno je praktično, ali otvara vrata širenju zlonamjernog ažuriranja u roku od nekoliko minuta. Neke organizacije već razmatraju politike poput zahtjeva da nova verzija bude u ekosustavu određeno vrijeme prije usvajanja ili zahtjeva da se promjene kritičnih paketa podvrgnu dodatnom ručnom pregledu.

Što se tiče razvojne infrastrukture, CI/CD okruženja moraju se tretirati kao vrlo osjetljiva imovina . Svaki RAT izvršen tijekom instalacije ovisnosti gotovo sigurno će tražiti tajne cjevovoda i pristup drugim okruženjima. Segmentacija ovih čvorova, njihovo pažljivije praćenje i periodična rotacija njihovih tajni više nije "idealna" preporuka već nužnost.

Konačno, otkrivanje ovih vrsta napada zahtijeva kombiniranje informacija iz više izvora: instaliranih verzija, zaključanih datoteka, indikatora kompromitiranja operativnog sustava i mrežne telemetrije . Alati koji generiraju i upravljaju softverskim popisima materijala (SBOM) pomažu u brzom praćenju koji projekti koriste koje pakete, što je ključno kada se aktiviraju masovna upozorenja poput ovog.

Cijela ova epizoda s Axiosom ilustrira u kojoj mjeri ekosustav ovisnosti, koliko god zreo i konsolidiran izgledao, još uvijek uvelike ovisi o povjerenju i stalnoj budnosti. Naizgled bezopasna biblioteka, koju održava jedna osoba koja postane žrtvom dobro izvedenog napada društvenim inženjeringom, može u roku od nekoliko sati postati globalni vektor za primjenu višeplatformskih RAT-ova protiv tvrtki, freelancera i organizacija svih veličina . Jačanje kontrola oko objavljivanja računa, cjevovoda i kritičnih ovisnosti više nije opcionalna najbolja praksa, već preduvjet za kontinuirani razvoj u okruženju u kojem su napadači sve strpljiviji, snalažljiviji i opremljeni boljim alatima.

sustavi za ojačavanje skripti
Povezani članak:
Skriptiranje i jačanje sustava: cjeloviti vodič za jačanje poslužitelja