RAT terjedése az Axios rosszindulatú verzióival az npm-ben

Utolsó frissítés: 5 április 2026
  • Egy támadó feltörte az Axios elsődleges karbantartójának npm fiókját, és kiadta az 1.14.1-es és 0.30.4-es verziókat egy fantomfüggőséggel, a plain-crypto-js-sel, amely egy platformfüggetlen RAT-ot telepített a telepítés során.
  • A kártevő felvette a kapcsolatot egy C2 szerverrel (sfrclak[.]com), és letöltött bizonyos hasznos fájlokat Windows, macOS és Linux rendszerekhez, rendszerfelderítést hajtott végre, időszakos jelzőket adott, és bizonyos esetekben tartósan megmaradt.
  • A Google és más kutatók által az észak-koreai UNC1069 szereplőnek tulajdonított támadás egy körülbelül három órás leleplezési időszakot kombinált egy kifinomult társadalmi manipulációs kampánnyal a karbantartó ellen, hogy ellopják a hitelesítő adataikat.
  • Azoknak a szervezeteknek, amelyek telepíteni tudták az érintett verziókat, kötelezettséget kell vállalniuk a beavatkozásra, a RAT-összetevők keresésére, a hitelesítő adatok cseréjére, az Axios biztonságos verzióinak rögzítésére, valamint az ellátási lánc, a CI/CD és a függőségkezelési ellenőrzések megerősítésére.

Axios támadása RAT-tal npm-ben

A JavaScript fejlesztői közösség most tapasztalt meg egy olyan ijesztő helyzetet, ami miatt újra kell gondolni, mennyire bízunk a függőségeinkben, amint azt a könyvtárak sebezhetőségi problémái is mutatják . Az Axios, az ökoszisztéma egyik legszélesebb körben használt HTTP könyvtára, manipuláció áldozata lett az npm-en, hogy egy távoli hozzáférésű trójai vírust (RAT) terjesszen látszólag legitim verziókon keresztül. Az incidens csak néhány óráig tartott, de világossá tette, hogy a szoftverellátási lánc sokkal vékonyabb szálon lóg, mint sokan gondolták.

A komoly probléma nem csak az, hogy a támadóknak sikerült rosszindulatú programot becsempészniük egy hetente több tíz- vagy százmilliószor letöltött csomagba. Az igazi probléma az, hogy ezt a fő karbantartó npm fiókjának eltérítésével tették, és olyan „hivatalos” verziókat tettek közzé, amelyek normálisnak tűntek, és egyetlen sorral sem nyúltak az Axios forráskódjához . Az összes rosszindulatú viselkedés egy kifejezetten a támadásra tervezett fantomfüggőségben rejlett.

Hogyan jött létre az Axios elkötelezettsége az npm iránt

Ahhoz, hogy megértsük az incidens nagyságrendjét, a belépési ponttal kell kezdenünk. A támadónak sikerült átvennie az irányítást az Axios fő karbantartójának, a „jasonsaayman”-nek az npm fiókja felett, és a hozzá tartozó e-mail címet egy, a saját irányítása alatt álló , Proton Mail-en tárolt címre változtatta. Ettől a pillanattól kezdve szabadon publikálhatták a csomag új verzióit, mintha ők lennének a karbantartók.

Ezekkel a hitelesítő adatokkal feltöltötte az Axios két rosszindulatú verzióját: az 1.14.1-et és a 0.30.4-et , amelyek a projekt mindkét fő ágát lefedték. A feltöltésekre mindössze 39 perc különbséggel került sor, és a StepSecurity elemzése szerint közvetlenül az npm-ből, egy klasszikus, hosszú élettartamú token használatával, teljesen megkerülve a szokásos, GitHub Actions-alapú CI/CD folyamatot.

Tizennyolc órával az utolsó támadás előtt a szereplő már közzétett egy „tiszta” verziót az npm rendszerleíró adatbázisban található rosszindulatú függőségről . Ez az előzetes lépés előzmények generálására és bizonyos automatikus ellenőrzések aktiválásának megakadályozására szolgált, amikor egy teljesen új csomag jelent meg a támadás idején.

Ami feltűnő, hogy a támadók nem módosították az Axios forráskódját, és nem végeztek látható változtatásokat a GitHub repositoryban . Valójában az 1.14.1-es és a 0.30.4-es verzióknak nem voltak megfelelő commit-jaik vagy címkéik a GitHubon; ezek csak az npm-en léteztek. A legfontosabb különbség a csomag függőségi fájljában volt, amelyet a beállításjegyzékben tettek közzé.

Az Axios normál körülmények között csak három függőséget deklarál: follow-redirects, form-data és proxy-from-env . A feltört verziókban azonban megjelent egy negyedik függőség, amely korábban nem létezett a projektben: a plain-crypto-js, 4.2.1-es verzió. Ezt a fantomkönyvtárat az Axios kódbázisában sehol sem használták, de tartalmazott egy telepítés utáni szkriptet, amely automatikusan lefutott a csomag npm, pnpm vagy hasonló eszközökkel történő telepítésekor.

plain-crypto-js: a RAT által telepített fantomfüggőség

A támadás kulcsa ebben a további függőségben rejlett. A plain-crypto-js fájlt egy „nrwise” nevű felhasználó tette közzé az npm-en, szintén Proton Mail e-mail címmel, és egyetlen célja egy obfuszkált telepítés utáni szkript (setup.js) futtatása volt a Node.js-ben . Ez a szkript dropperként, azaz a kártevő második fázisának kezdeti telepítőjeként működött.

Az Axios egyik fertőzött verziójának telepítésekor az npm telepítés utáni életciklusa automatikusan elindította a plain-crypto-js kódot anélkül, hogy a fejlesztőnek bármilyen különleges beavatkozásra lett volna szüksége . A dropper egy, az sfrclakcom domainben aktív parancs- és vezérlőkiszolgálóhoz (C2) csatlakozott, a 8000-es porton figyelt, és letöltött egy, az érintett gép operációs rendszerére jellemző hasznos adatot; ez a viselkedés a hálózati forgalom elemzésével azonosítható.

  Hogyan konfiguráljuk a Fail2ban-t a Linux szerverünk védelméhez?

A StepSecurity kutatói és más elemzőcsoportok egy nagyon óvatos viselkedést írnak le. A rosszindulatú hasznos adat végrehajtása után a dropper eltávolította saját nyomait: törölte a telepítés utáni szkriptet, a package.json fájlt egy „tiszta” verzióra cserélte, és egy node_modules fájlt hagyott maga után, amely első pillantásra ártalmatlannak tűnt . Így egy későbbi manuális ellenőrzés nem találta meg a rosszindulatú kódot közvetlenül az Axios-on belül.

A manipuláció azonosításához az egyetlen megbízható nyom a zárolási fájlokban (package-lock.json, pnpm-lock.yaml, yarn.lock) és az egyes verziók – az axios 1.14.1 vagy 0.30.4 és a plain-crypto-js 4.2.1 – jelenléte volt, valamint a csomag két, köztes számokkal rendelkező verziója (4.2.0, 4.2.2), amelyeket egyes elemzések összekapcsoltak. A Socket a maga részéről később észlelte, hogy ugyanaz a rosszindulatú program a @shadanai/openclaw (különböző verziók, 2026.3.xx) és a @qqbrowser/openclaw-qbot (0.0.130) csomagokon keresztül is terjedt, és a hasonló kampányok azonosításában olyan biztonsági technikák is segíthetnek, mint a honeypotok .

Többplatformos RAT: Windows, macOS és Linux a középpontban

A végrehajtás után a setup.js szkript egyfajta orkeszterezőként működött, amely képes volt felismerni az operációs rendszert és egy platformspecifikus támadási útvonalat követni . A kampány egyértelműen előre elkészített volt: a StepSecurity szerint a támadók három különálló, előre lefordított hasznos súllyal rendelkeztek, rendszerenként eggyel.

macOS rendszereken a telepítés utáni folyamat elindított egy AppleScript fájlt, amely letöltött egy trójai vírussal fertőzött bináris fájlt az sfrclakcom:8000 szerverről . Ezt a bináris fájlt a /Library/Caches/com.apple.act.mond elérési útra mentették, a jogosultságait végrehajthatóvá tették, végül pedig a háttérben a /bin/zsh paranccsal indították el. Miután a RAT futott, magát az AppleScript fájlt törölték, ami tovább bonyolította a kriminalisztikai elemzést.

Windows gépeken a kártevő megtalálta a rendszer PowerShell bináris fájlját, átmásolta azt a %PROGRAMDATA%\wt.exe fájlba, hogy Windows terminálként álcázza, és létrehozott egy ideiglenes VBScript fájlt . Ez a VBScript fájl ezután kapcsolatba lépett a C2 szerverrel, hogy letöltsön egy további PowerShell RAT szkriptet, végrehajtotta azt, majd törölte a letöltött fájlt. Továbbá, a Windowsos variáns létrehozta a %PROGRAMDATA%\system.bat fájlt egy letöltési rutinnal, amely lehetővé tette a kártevő számára, hogy minden bejelentkezéskor letöltse magát, és egy végrehajtási kulcsot adott a Windows rendszerleíró adatbázishoz a fájl megőrzése érdekében.

Linuxon és más Unix-szerű rendszereken (a macOS-en kívül) a dropper a Node.js execSync függvényét használta egy shell parancs elindításához, amely letöltött egy Python szkriptet az sfrclakcom webhelyről, elmentette azt /tmp/ld.py néven, és a nohup paranccsal hajtotta végre, hogy a háttérben futhasson . A Windowsszal ellentétben ez a variáns nem mutatott robusztus perzisztencia mechanizmust, ami egy gyorsabb, adatkiszivárgás-orientált megközelítésre vagy a perzisztencia alkalmi telepítésére utal egymást követő parancsokon keresztül.

A SafeDep és az Elastic Security Labs elemezték a másodszintű hasznos adatokat, és arra a következtetésre jutottak, hogy a macOS (C++ Mach-O bináris) és a Linux (Python szkript) RAT-jai ugyanazt a parancskészletet, C2 protokollt, üzenetformátumot és működési viselkedést használták . Ez a fajta elemzés jellemzően olyan szkennelési szolgáltatásokra támaszkodik, mint a VirusTotal , amelyek elősegítik a minták és az IOC-k korrelációját.

Minden esetben minden feltört gazdagép azonnali rendszerfelderítést hajtott végre: felhasználói könyvtárakat, meghajtógyökereket, aktív folyamatokat és egyéb metaadatokat . Ezeket az információkat elküldték a parancs- és vezérlőkiszolgálónak, és az ügynök körülbelül 60 másodperces jeladóhurkot tartott fenn, várva az új utasításokra, beleértve a további szkriptek végrehajtását vagy bináris fájlok memóriába történő befecskendezését.

Expozíciós időablak, célok és Észak-Koreának tulajdonítása

Az Axios rosszindulatú verziói körülbelül három órán át voltak elérhetők az npm-en, egy gondosan megválasztott időkereten belül. A feltört csomagokat vasárnap éjfél előtt tették közzé (ami maximalizálta a védők reakcióidejét), és az incidenst hétfő kora reggel sikerült megfékezni , miután a biztonsági cégek értesítették a hatóságokat a rendellenes viselkedésről.

Ez alatt a viszonylag rövid időszak alatt a Huntress legalább 135 rendszert észlelt, amelyek a támadó szerveréhez csatlakoztak . Tekintettel arra, hogy az Axios hetente több mint 80-100 millió letöltést regisztrál (különböző források szerint egyes időszakokban akár több mint 300 milliót is), ez a szám valószínűleg csak a jéghegy csúcsát jelenti, és azokra a rendszerekre korlátozódik, amelyek az adataikat nyilvánosságra hozó elemző cégek tudomására jutnak.

  Mi az a CSS: The Ultimate Beginner's Guide

A Google a fenyegetésfelderítő csapatán keresztül egy feltételezett észak-koreai szereplőnek tulajdonította a támadást, amelynek azonosítója UNC1069 . Az Elastic Security Labs megerősítette ezt a hipotézist azzal, hogy erős hasonlóságot talált a macOS-en futtatott RAT és a WAVESHAPER, egy Mandiant által felfedezett és ugyanahhoz a fenyegetéscsoporthoz kapcsolódó C++ hátsó ajtó között.

A Google elemzői hangsúlyozták, hogy az Észak-Koreához köthető csoportok évek óta specializálódtak az ellátási lánc támadásaira és a kriptovaluta-lopásokra . A minta következetes: fejlesztői infrastruktúrát, széles körben használt könyvtárakat vagy megbízható szoftvereket kompromittálnak, majd oldalirányban olyan célpontok felé haladnak, amelyek nagy értékű eszközöket, privát kulcsokat vagy hitelesítő adatokat kezelnek.

Több jelentés is kiemelte, hogy a támadás moderálása és megtervezése egy jól koordinált csapatmunkára utalt : ugyanazon RAT három párhuzamos implementációja (PowerShell, C++ és Python), egy konzisztens C2 protokoll, szinte azonos viselkedés minden változatban, és egy egyértelmű öntisztuló stratégia a nyomok hátrahagyásának elkerülése érdekében. Az Elastic hangsúlyozta, hogy ez a következetesség egyetlen fejlesztőre vagy egy megosztott tervezési dokumentumból dolgozó csoportra utal, távol az improvizációtól.

Fejlett társadalmi manipuláció az Axios karbantartója ellen

A pusztán technikai vonatkozásokon túl az eset egyik legaggasztóbb pontja a fő karbantartó npm-fiókjának eltérítése. Maga az Axios menedzsere később elmagyarázta, hogy szinte az összes szolgáltatásán engedélyezve volt a kétfaktoros hitelesítés , mégis észrevétlenül megadta a hozzáférést.

A csapat által megosztott utólagos elemzés szerint a támadók egy rendkívül kidolgozott, mesterséges intelligencia által vezérelt eszközökkel támogatott pszichológiai manipulációs műveletet hajtottak végre, hogy elnyerjék a bizalmukat . Egy cég alapítójának adták ki magukat, lemásolva annak vizuális identitását, fényképét, sőt még a vállalati arculatot is. Létrehoztak egy valódi Slack teret a cég logójával, csatornákat, amelyeken állítólag a LinkedIn-nel szinkronizált bejegyzések szerepeltek, sőt, még alkalmazottak és más nyílt forráskódú szoftverek karbantartóinak hamis profiljait is létrehozták.

Ebben a környezetben a Microsoft Teamsen keresztül egyeztettek egy megbeszélést, amelyen látszólag egy teljes szakembercsoport vett részt . A megbeszélés során szimuláltak egy technikai problémát, és jelezték, hogy a rendszerük egyik összetevője elavult. A karbantartó technikus, feltételezve, hogy ez egy jogos, magával a videokonferencia-eszközzel kapcsolatos követelmény, letöltötte és telepítette a javasolt fájlt.

Ez a fájl valójában az a távoli hozzáférésű trójai volt, amely lehetővé tette a támadók számára, hogy az áldozat hitelesítő adataihoz forduljanak, és végül átvegyék az irányítást az Axios közzétételéhez használt npm fiók felett . Az egész folyamat annyira jól megszervezett volt, annyi hihető részlettel, hogy az áldozat „tökéletesen koordináltnak, professzionálisnak és teljesen meggyőzőnek” nevezte.

Az incidens emberi tényezője egyértelművé teszi, hogy még az olyan technikai intézkedések, mint a 2FA, sem elegendőek, ha a magas szintű társadalmi manipulációt vizuális megszemélyesítéssel, deepfake-ekkel vagy szervezetek részletes klónozásával kombinálják . A leggyengébb láncszem ismét az emberi interakció.

Az Axios-t használó szervezetekre és fejlesztőkre gyakorolt ​​hatás

Gyakorlati szempontból a fő probléma annak meghatározása, hogy kit érintett valójában a hiba. Minden olyan szervezetnek, amely a [email protected] vagy a [email protected] szolgáltatást a rendelkezésre állási időszak alatt telepítette, feltételeznie kell, hogy a telepítést végző gép vagy folyamat veszélybe kerülhetett.

Az olyan cégek ajánlásai, mint a StepSecurity, az Aikido, a Huntress és az Elastic, egyértelműek. Gyanú esetén proaktív megközelítésre van szükség, nem egyszerűen a „node_modules törlése és újratelepítése ”. A körültekintő intézkedés az, hogy az érintett gépeket vagy környezeteket megbízható lemezképekből újjáépítsük, és gondosan áttekintsük a CI/CD naplókat annak azonosítása érdekében, hogy mely feladatok vagy folyamatok futtathatták a feltört verziókat.

Továbbá kritikus fontosságú az összes olyan hitelesítő adat és titkos adat cseréje, amelyhez a RAT esetleg hozzáférhetett ezekről a csomópontokról : npm tokenek, felhőszolgáltatói kulcsok, folyamattitkok, adatbázis-hitelesítő adatok, SSH-kulcsok stb. Ha ezeket a hitelesítő adatokat egy ilyen támadás után forgalomban hagyjuk, az nyitva hagyja az ajtót a csendes oldalirányú mozgásra.

  Hogyan lehet feloldani a BIOS jelszót a laptopon

Technikai szinten a csapatoknak át kell tekinteniük a zárolási fájljaikat (package-lock.json, pnpm-lock.yaml, yarn.lock) az Axios és a plain-crypto-js feltört verzióira való hivatkozások után kutatva . Ha ezeket az elemeket megtalálják, a következő lépés az érintett rendszerek vizsgálata a lehetséges RAT-termékek után: /Library/Caches/com.apple.act.mond macOS rendszeren, %PROGRAMDATA%\wt.exe és %PROGRAMDATA%\system.bat Windows rendszeren, vagy /tmp/ld.py Linux rendszeren.

Ezzel párhuzamosan ajánlott explicit módon beállítani az Axios biztonságos verzióit, például az 1.14.0-t és a 0.30.3-at, és felülbírálásokat vagy feloldásokat használni a tranzitív függőségek nem kívánt verziókra való feloldásának megakadályozására . Az sfrclakcom domainre irányuló kimenő forgalom blokkolása szintén ésszerű elszigetelési intézkedés, legalábbis addig, amíg a támadás teljes hatókörét elemzik.

Biztonsági tanulságok a szoftverellátási lánc számára

Az Axios incidens nem egy elszigetelt esemény, hanem egy újabb láncszem az ellátási lánc támadásainak láncolatában, amely olyan eseteket foglal magában, mint a SolarWinds, a Kaseya, a 3CX, a Polyfill.io és a Log4j-ben kihasznált sebezhetőségek. Az alapötlet mindig ugyanaz: egy széles körben használt, megbízható komponens kompromittálása az elérés maximalizálása érdekében , ahelyett, hogy gépről gépre próbálnánk támadni.

A szakértők egyik leggyakrabban ismételt tanulsága, hogy a bizalom nem támaszkodhat kizárólag egy könyvtár népszerűségére vagy egy karbantartó hírnevére . Ha a kiadási csatorna (az npm fiók, a CI/CD folyamat, a build infrastruktúra) veszélybe kerül, minden, ami azon keresztül kiadják, örökli ezt a kockázatot. A manuális kódellenőrzés akkor sem elegendő, ha a rosszindulatú program tranzitív függőségekben rejtőzik, és végrehajtás után törli magát.

Azt is kiemelték, hogy a függőségi frissítések „alapértelmezett sebessége” árat jelent a támadási felület tekintetében . A legújabb verzió automatikus alkalmazása hihetetlenül kényelmes, de megnyitja az utat a rosszindulatú frissítések perceken belüli terjedése előtt. Egyes szervezetek már fontolgatnak olyan szabályzatokat, mint például az, hogy egy új verziónak egy bizonyos ideig az ökoszisztémában kell lennie az elfogadás előtt, vagy hogy a kritikus csomagok módosításait további manuális ellenőrzésnek kell alávetni.

A fejlesztési infrastruktúrát illetően a CI/CD környezeteket fokozottan érzékeny eszközként kell kezelni . A függőségek telepítése során végrehajtott RAT szinte biztosan a folyamat titkos adatait és más környezetekhez való hozzáférést fogja keresni. Ezen csomópontok szegmentálása, szorosabb monitorozása és titkos adataik időszakos cseréje már nem „ideális” ajánlás, hanem szükségszerűség.

Végül az ilyen típusú támadások észleléséhez több forrásból származó információk kombinálására van szükség: telepített verziók, zárolási fájlok, operációs rendszer kompromittálódási jelzői és hálózati telemetria . A szoftver anyagjegyzékeket (SBOM) generáló és kezelő eszközök segítenek gyorsan nyomon követni, hogy mely projektek mely csomagokat használják, ami létfontosságú, amikor ilyen tömeges riasztások aktiválódnak.

Ez az Axios-szal kapcsolatos teljes epizód jól szemlélteti, hogy a függőségi ökoszisztéma, bármennyire is érettnek és konszolidáltnak tűnik, továbbra is nagymértékben támaszkodik a bizalomra és az állandó éberségre. Egy látszólag ártalmatlan könyvtár, amelyet egyetlen személy tart fenn, aki egy jól kivitelezett társadalmi manipulációs támadás áldozatává válik, órák alatt globális vektorrá válhat a platformfüggetlen RAT-ok telepítéséhez minden méretű vállalat, szabadúszó és szervezet ellen . A közzétételi fiókok, a folyamatfolyamatok és a kritikus függőségek feletti ellenőrzés megerősítése már nem opcionális bevált gyakorlat, hanem a folyamatos fejlesztés előfeltétele egy olyan környezetben, ahol a támadók egyre türelmesebbek, találékonyabbak és jobb eszközökkel rendelkeznek.

szkriptelési keményítő rendszerek
Kapcsolódó cikk:
Szkriptelés és rendszermegerősítés: teljes útmutató a szerverek megerősítéséhez