RAT distribueras med hjälp av skadliga versioner av Axios i npm

Senaste uppdateringen: 5 April 2026
Författare: TecnoDigital
  • En angripare komprometterade npm-kontot för den primära utvecklaren av Axios och släppte versionerna 1.14.1 och 0.30.4 med ett fantomberoende, plain-crypto-js, vilket driftsatte en plattformsoberoende RAT under installationen.
  • Skadlig programvara kontaktade en C2-server (sfrclak[.]com) och laddade ner specifika nyttolaster för Windows, macOS och Linux, utförde systemrekognoscering, upprätthöll regelbundna beacons och i vissa fall etablerade persistens.
  • Attacken, som av Google och andra forskare tillskrivits den nordkoreanska aktören UNC1069, kombinerade ett exponeringsfönster på cirka tre timmar med en sofistikerad social ingenjörskonstkampanj mot utvecklaren för att stjäla deras inloggningsuppgifter.
  • Organisationer som kunde installera de berörda versionerna måste åta sig att vidta åtgärder, söka efter RAT-artefakter, rotera autentiseringsuppgifter, fästa säkra versioner av Axios och stärka sina kontroller för leveranskedjan, CI/CD och beroendehantering.

Attackera Axios med RAT i npm

JavaScript-utvecklingscommunityn har precis upplevt en av de där skrämselfaktorerna som får en att tänka om hur mycket man litar på sina beroenden, som visas. fall av biblioteksmisslyckanden. Axios, ett av de mest använda HTTP-biblioteken i ekosystemet, manipulerades i npm för att distribuera en fjärråtkomsttrojan (RAT). genom till synes legitima versioner. Händelsen varade bara några timmar, men den har tydligt visat att mjukvaruleveranskedjan hänger i en mycket tunnare tråd än många trodde.

Det allvarliga problemet är inte bara att angriparna lyckades smyga in skadlig kod i ett paket som laddats ner tiotals eller hundratals miljoner gånger i veckan. Det verkliga problemet är att de gjorde det genom att kapa huvudansvarigs npm-konto, publicera "officiella" versioner som såg normala ut och inte rörde en enda rad av Axios källkod.Allt skadligt beteende låg i ett fantomberoende som var specifikt utformat för attacken.

Hur Axios engagemang för npm kom till

För att förstå händelsens omfattning är det nödvändigt att börja med ingångsvektorn. Angriparen lyckades ta kontroll över npm-kontot som tillhörde "jasonsaayman", den huvudansvariga personen bakom Axios, och ändrade den tillhörande e-postadressen till en adress under hans kontroll.hostad på Proton Mail. Från och med det ögonblicket hade han fritt spelrum att publicera nya versioner av paketet som om han själv vore utvecklaren.

Med de meriterna, Han laddade upp två skadliga versioner av Axios: 1.14.1 och 0.30.4omfattar båda projektets huvudgrenar. Utgåvorna gjordes med bara 39 minuters mellanrum och, enligt StepSecuritys analys, gjordes de direkt från npm med hjälp av en klassisk långlivad token, vilket helt kringgick den vanliga CI/CD-pipelinen baserad på GitHub Actions.

Arton timmar före det sista slaget, Skådespelaren hade redan publicerat en "ren" version relaterad till det skadliga beroendet av npm-registret.Detta preliminära steg tjänade till att generera en historik och förhindra att vissa automatiska kontroller utlöstes när ett helt nytt paket dök upp vid tidpunkten för attacken.

Det slående är att Angriparna modifierade inte Axios källkod eller införde några synliga ändringar i GitHub-arkivet.Faktum är att versionerna 1.14.1 och 0.30.4 inte hade några motsvarande commits eller taggar på GitHub; de existerade bara på npm. Den väsentliga skillnaden låg i paketets publicerade beroendefil.

Under normala förhållanden deklarerar Axios endast tre beroenden: follow-redirects, form-data och proxy-from-env.I de komprometterade versionerna dök dock ett fjärde beroende upp, ett som inte fanns i projektet fram till det ögonblicket: plain-crypto-js i version 4.2.1. Detta fantombibliotek användes inte någonstans i Axios-koden, men det inkluderade ett postinstall-skript som kördes automatiskt när paketet installerades med npm, pnpm eller liknande verktyg.

plain-crypto-js: fantomberoendet som används av RAT

Nyckeln till attacken låg i det ytterligare beroendet. plain-crypto-js publicerades på npm av en användare vid namn "nrwise", också med en Proton Mail-e-postadress, och dess enda syfte var att köra ett obfuskerat postinstallationsskript i Node.js (setup.js)Det skriptet fungerade som en dropper, det vill säga som den första installationsprogrammet för den andra fasen av skadlig programvara.

Genom att installera Axios i en av dess korrupta versioner, npms postinstall-livscykel utlöste automatiskt plain-crypto-js-koden utan att utvecklaren behövde göra något särskilt.Droppern anslöt till en kommando- och kontrollserver (C2) som är aktiv i sfrclakcom-domänen, lyssnade på port 8000, och laddade ner en nyttolast specifik för operativsystemet på den drabbade maskinen; detta beteende kan identifieras genom analys av nätverkstrafik.

  Ruby-utveckling: språk, ekosystem och nuvarande användningsområden

Forskare från StepSecurity och andra analysteam beskriver ett mycket försiktigt beteende. Efter att ha kört den skadliga nyttolasten tog droppern bort sina egna spår: den raderade postinstall-skriptet, ersatte package.json med en "ren" version och lämnade en node_modules-fil som vid första anblicken verkade harmlös.Således hittade en efterföljande manuell inspektion inte den skadliga koden direkt i Axios.

För att identifiera manipulering, Den enda tillförlitliga ledtråden fanns i låsfilerna (package-lock.json, pnpm-lock.yaml, yarn.lock) och i närvaro av specifika versioner: axios 1.14.1 eller 0.30.4 och plain-crypto-js 4.2.1, utöver två versioner av det paketet med mellanliggande numrering (4.2.0, 4.2.2) som är relaterade i vissa analyser. Socket upptäckte senare att samma skadliga kod också distribuerades via paketen @shadanai/openclaw (olika versioner 2026.3.xx) och @qqbrowser/openclaw-qbot (0.0.130), och tekniker som honungsluckor inom säkerhet De kan också hjälpa till att identifiera liknande kampanjer.

Plattformsoberoende RAT: Windows, macOS och Linux i rampljuset

När den väl är avrättad, Skriptet setup.js fungerade som en orkestrator som kunde upptäcka operativsystemet och följa en plattformsspecifik attackväg.Kampanjen var uppenbarligen förberedd i förväg: enligt StepSecurity hade angriparna förkompilerat tre separata nyttolaster, en för varje system.

På macOS-system, Efterinstallationsprocessen startade ett AppleScript som laddade ner en trojaniserad binärfil från servern sfrclakcom:8000Denna binärfil lagrades i sökvägen /Library/Caches/com.apple.act.mond, dess behörigheter justerades för att göra den körbar, och slutligen startades den i bakgrunden med /bin/zsh. När RAT-programmet kördes raderades själva AppleScript-skriptet för att ytterligare komplicera den forensiska analysen.

På Windows-maskiner, Den skadliga programvaran lokaliserade systemets PowerShell-binärfil, kopierade den till %PROGRAMDATA%\wt.exe för att dölja den som Windows-terminalen och genererade ett tillfälligt VBScript-skript.Detta VBScript kontaktade C2-servern igen för att ladda ner ytterligare ett PowerShell RAT-skript, körde det och raderade sedan den nedladdade filen. Dessutom skapade Windows-varianten filen %PROGRAMDATA%\system.bat med en nedladdningsrutin som gjorde det möjligt att hämta skadlig programvara vid varje inloggning och lade till en körningsnyckel i Windows-registret för att säkerställa beständighet.

På Linux och andra Unix-liknande system än macOS, Droppern använde Node.js execSync för att starta ett shell-kommando som laddade ner ett Python-skript från sfrclakcom, sparade det som /tmp/ld.py och körde det med nohup för att hålla det igång i bakgrunden.Till skillnad från Windows visade denna variant inte en konsoliderad persistensmekanism, vilket indikerar en mer fokuserad strategi för snabb dataexfiltrering eller enstaka distribution av persistens via efterföljande kommandon.

SafeDep och Elastic Security Labs analyserade laster på andra nivån och drog slutsatsen att RAT:erna för macOS (C++ Mach-O binär) och Linux (Python-skript) delade samma kommandouppsättning, C2-protokoll, meddelandeformat och operativt beteende.Denna typ av analys förlitar sig ofta på skanningstjänster som Virustotal, vilket underlättar korrelationen av prover och IOC.

I samtliga fall, Varje komprometterad värd utförde omedelbar systemrekognoscering: användarkataloger, enhetsrötter, aktiva processer och annan metadata.Denna information skickades till kommando- och kontrollservern och agenten upprätthöll en beacon-slinga på cirka 60 sekunder och väntade på nya instruktioner, inklusive exekvering av ytterligare skript eller injicering av binärfiler i minnet.

Exponeringsfönster, mål och tillskrivning till Nordkorea

De skadliga versionerna av Axios var tillgängliga på npm i ungefär tre timmar, under en noggrant vald tidsram. De komprometterade paketen släpptes strax före midnatt på söndagen (vid en tidpunkt som maximerade försvararnas reaktionstid), och händelsen var under kontroll tidigt på måndagsmorgonen., efter att säkerhetsföretag varnat myndigheterna om det avvikande beteendet.

Under det relativt korta tidsintervallet, Huntress upptäckte minst 135 system som anslöt till angriparens server.Med tanke på att Axios registrerar mer än 80–100 miljoner nedladdningar varje vecka (enligt olika källor till och med mer än 300 miljoner under vissa perioder), representerar den siffran förmodligen bara toppen av isberget, begränsad till de system som hamnar på radarn hos de analysföretag som har offentliggjort sina data.

  DeepSeek-blockaden utökas när länder och byråer vidtar åtgärder

Google, genom sitt team för hotinformation, Han tillskrev attacken en misstänkt nordkoreansk skådespelare märkt UNC1069Elastic Security Labs förstärkte denna hypotes genom att hitta en stark likhet mellan RAT som levereras i macOS och WAVESHAPER, en C++-bakdörr som upptäcktes av Mandiant och även kopplad till samma hotgrupp.

Googles analytiker betonade att Nordkoreanskt anslutna grupper har i åratal specialiserat sig på attacker i leveranskedjor och kryptovalutastölder.Mönstret passar in: att kompromettera utvecklingsinfrastrukturer, allmänt använda bibliotek eller betrodd programvara för att röra sig i sidled mot mål där ekonomiska tillgångar, privata nycklar eller värdefulla inloggningsuppgifter hanteras.

Flera rapporter lyfte också fram att Återhållsamheten och utformningen av anfallet gav intrycket av ett välkoordinerat lag.Tre parallella implementeringar av samma RAT (PowerShell, C++ och Python), ett konsekvent C2-protokoll, nästan identiskt beteende över alla varianter och en tydlig självrensande strategi för att undvika att lämna spår. Elastic betonade att denna konsekvens pekar på en enda utvecklare eller en grupp som arbetar med ett gemensamt designdokument, långt ifrån improvisation.

Avancerad social ingenjörskonst mot Axios-ansvarig

Utöver den rent tekniska aspekten är en av de mest oroande punkterna i fallet hur huvudansvarigs npm-konto kapades. Chefen för Axios förklarade senare själv att han hade tvåfaktorsautentisering aktiverad på nästan alla sina tjänster. Och ändå beviljade han tillträde utan att inse det.

Enligt obduktionsanalysen som delats av teamet, Angriparna genomförde en mycket avancerad social ingenjörskonstoperation, stödd av AI-drivna verktyg, för att vinna deras förtroende.De imiterade grundaren av ett företag och kopierade dess visuella identitet, fotografi och till och med företagets varumärke. De skapade ett riktigt Slack-utrymme med företagets logotyp, kanaler med inlägg som påstås vara synkroniserade med LinkedIn, och till och med falska profiler av anställda och andra som utvecklar öppen källkodsprogramvara.

Inom den miljön, De schemalade ett möte via Microsoft Teams där en hel grupp yrkesverksamma dök upp för att delta.Under mötet simulerade de ett tekniskt problem och indikerade att han hade en föråldrad komponent i sitt system. Underhållsteknikern, som antog att det var ett legitimt krav relaterat till själva videokonferensverktyget, laddade ner och installerade den föreslagna filen.

Den filen var i verkligheten Fjärråtkomsttrojanen gjorde det möjligt för angripare att växla till angriparnas inloggningsuppgifter och slutligen ta kontroll över npm-kontot som används för att publicera Axios.Hela processen var så väl orkestrerad, med så många trovärdiga detaljer, att offret beskrev den som "perfekt koordinerad, professionell och fullständigt övertygande".

Denna mänskliga komponent i händelsen gör det tydligt att Inte ens tekniska åtgärder som 2FA räcker till när social manipulation på hög nivå kombineras med visuell imitation, djupförfalskningar eller detaljerad kloning av organisationer.Den svagaste länken är, återigen, mänsklig interaktion.

Påverkan på organisationer och utvecklare som använder Axios

Ur praktisk synvinkel är det största problemet att avgöra vem som faktiskt drabbades. Alla organisationer som installerade axios@1.14.1 eller axios@0.30.4 under det fönster då de var tillgängliga bör anta att maskinen eller pipelinen som utförde installationen kan vara komprometterad..

Rekommendationerna från företag som StepSecurity, Aikido, Huntress eller Elastic är övertygande. Vid misstanke måste ett commitment göras och inte bara "ta bort och installera om node_modules"Den kloka åtgärden är att återskapa de berörda maskinerna eller miljöerna från betrodda avbildningar och noggrant granska CI/CD-loggarna för att identifiera vilka jobb eller pipelines som kan ha kört de manipulerade versionerna.

Dessutom, Det är avgörande att rotera alla autentiseringsuppgifter och hemligheter som RAT kan ha åtkomst till från dessa noder.npm-tokens, molnleverantörsnycklar, pipeline-hemligheter, databasuppgifter, SSH-nycklar etc. Att lämna dessa uppgifter i omlopp efter en sådan attack öppnar dörren för tyst lateral förflyttning.

  Gemini Code Assist: AI-assistent för programmerare är nu tillgänglig gratis

På teknisk nivå, Team bör granska sina låsfiler (package-lock.json, pnpm-lock.yaml, yarn.lock) för referenser till komprometterade versioner av Axios och plain-crypto-js.Om dessa objekt visas är nästa steg att kontrollera om det finns eventuella RAT-artefakter på de berörda systemen: /Library/Caches/com.apple.act.mond på macOS, %PROGRAMDATA%\wt.exe och %PROGRAMDATA%\system.bat på Windows, eller /tmp/ld.py på Linux.

Parallellt, Det rekommenderas att explicit ange säkra versioner av Axios, såsom 1.14.0 och 0.30.3, och använda åsidosättningar eller upplösningsmekanismer för att förhindra att transitiva beroenden löses upp till oavsiktliga versioner.Att blockera utgående trafik till sfrclakcom-domänen är också en förnuftig inneslutningsåtgärd, åtminstone medan attackens fulla omfattning analyseras.

Säkerhetslärdomar för programvaruleveranskedjan

Axios-incidenten är inte en isolerad händelse, utan ytterligare en länk i en kedja av attacker i leveranskedjan som inkluderar fall som SolarWinds, Kaseya, 3CX, Polyfill.io eller sårbarheter som utnyttjats i Log4j. Kärnidén är alltid densamma: att kompromissa med en allmänt använd och pålitlig utrustning för att maximera räckvidden., istället för att försöka attackera maskin för maskin.

En av de lärdomar som experter oftast upprepar är att Förtroende kan inte enbart vila på en bokhandels popularitet eller en bokhandlares rykteOm distributionskanalen (npm-kontot, CI/CD-pipelinen, bygginfrastrukturen) komprometteras, ärver allt som distribueras genom den den risken. Manuell kodgranskning är inte heller tillräcklig om skadlig programvara gömmer sig i transitiva beroenden och raderar sig själv efter körning.

Det har också framhävts att "Standardhastigheten" i beroendeuppdateringar kostar i form av attackytaAtt automatiskt implementera den senaste versionen är otroligt bekvämt, men det öppnar dörren för att skadliga uppdateringar ska spridas på några minuter. Vissa organisationer överväger redan policyer som att kräva att en ny version ska ha funnits i ekosystemet under en viss period innan den implementeras, eller att ändringar i kritiska paket ska genomgå ytterligare manuell granskning.

När det gäller utvecklingsinfrastruktur, CI/CD-miljöer bör behandlas som mycket känsliga tillgångarAlla RAT-system som körs under installation av beroenden kommer nästan säkert att söka efter pipeline-hemligheter och åtkomst till andra miljöer. Att segmentera dessa noder, övervaka dem noggrannare och rotera deras hemligheter regelbundet är inte längre bara en "ideal" rekommendation, utan en nödvändighet.

Slutligen, Att upptäcka den här typen av attacker kräver att information från flera källor kombineras: installerade versioner, låsfiler, indikatorer på intrång i operativsystemet och nätverkstelemetri.Verktyg som genererar och hanterar SBOM (Software Bill of Materials) hjälper till att snabbt spåra vilka projekt som använder vilka paket, något som är viktigt när massiva varningar som denna inträffar.

Hela den här episoden med Axios illustrerar i vilken utsträckning ekosystemet av beroenden, hur moget och konsoliderat det än må verka, fortfarande är starkt beroende av förtroende och ständig vaksamhet. Ett till synes oskyldigt bibliotek, som underhålls av en enda person som är offer för en smart social ingenjörskonstmanöver, kan på bara några timmar bli en global vektor för att distribuera plattformsoberoende RAT:er i företag, frilansare och organisationer av alla storlekar.Att stärka kontrollerna kring publiceringskonton, pipelines och kritiska beroenden är inte längre en valfri god praxis, utan ett villkor för fortsatt utveckling i en miljö där angripare är alltmer tålmodiga, resursstarka och har bättre verktyg.

skripthärdningssystem
Relaterad artikel:
Skripting och systemhärdning: en komplett guide till att stärka servrar