En pågående leveranskedjekampanj visar hur skadliga npm-paket kan kringgå installationsskydd genom att aktiveras under normal användning av applikationer. Paketet indexed-btree döljer sin skadeprogramsladdare i en funktion som anropas ofta i stället för att använda upptäckbara installationsskript.

Paketet utger sig för att vara ett populärt bibliotek

Säkerhetsforskare på Checkmarx upptäckte det skadliga paketet indexed-btree under en utredning av hot mot npm:s leveranskedja.

Paketet försöker efterlikna sorted-btree, ett legitimt bibliotek med omkring två miljoner nedladdningar i veckan. Angripare använder ofta denna taktik för att lura utvecklare som skriver ett paketnamn fel eller misstar en kopia för det riktiga projektet.

Indexed-btree framställer sig också som ett legitimt programvarubibliotek. Skaparna byggde ett övertygande kodarkiv, skapade en detaljerad historik över kodändringar och underhöll omsorgsfullt det tillhörande utvecklarkontot.

Därför kanske utvecklare som granskar projektet inte omedelbart upptäcker något misstänkt.

Checkmarx kopplade även ytterligare nio npm-paket till samma kampanj. npm har sedan dess tagit bort dessa paket från sitt register.

npm blockerar ej godkända installationsskript

GitHub tillkännagav ytterligare skydd för npm i juni 2026 efter att upprepade attacker hade stört ekosystemet för öppen källkod.

En viktig åtgärd begränsar livscykelskript för beroenden. Paket kan använda skripten preinstall, install och postinstall för att köra kod medan npm installerar dem.

Hotaktörer har ofta missbrukat dessa skript för att infektera utvecklares system. Därför blockerar npm v12 dem om användaren inte uttryckligen godkänner dem.

Ytterligare skydd hindrar npm från att automatiskt ladda ned beroenden från Git-kodarkiv eller fjärradresser utan tillstånd.

Dessa kontroller kan stoppa skadlig kod som aktiveras under paketinstallationen. De kan dock inte skydda mot alla exekveringsvägar.

Skadeprogrammet väntar till körning

Indexed-btree undviker livscykelskript helt. Därför ser installationen ren ut och utlöser inte npm:s godkännandeprocess.

I stället döljer paketet sin laddare i metoden BTree.prototype.set(). Applikationer använder denna centrala funktion för att lägga till eller uppdatera värden i en B-trädsdatastruktur.

Den skadliga koden aktiveras endast när en applikation anropar metoden med ett specifikt nyckelvärde. Följaktligen kan paketet förbli inaktivt under installationen och de inledande säkerhetskontrollerna.

När utlösaren dyker upp startar funktionen en obfuskerad fil som heter sharedLoad.min.js. Filen innehåller skadeprogrammets första steg.

Att bädda in laddaren i en legitim och ofta använd metod försvårar också analysen. Statiska skannrar kan tolka funktionen som ett vanligt biblioteksbeteende.

Utlösare vid körning undgår säkerhetsskannrar

Många verktyg för säkerhet i programvaruleveranskedjor fokuserar på installationsaktivitet, kända mönster för skadlig kod och misstänkta dataflöden.

Skadliga npm-paket kan dock undvika dessa kontroller genom att placera skadlig logik i giltiga applikationsfunktioner. Koden kanske endast aktiveras under särskilda förhållanden vid körning.

Metoden begränsar de synliga indikatorerna under installationen. Den gör även automatiserad analys mindre tillförlitlig eftersom skannern kanske aldrig återskapar den nödvändiga utlösaren.

Dessutom använder laddaren obfuskering för att dölja sitt beteende. Säkerhetsverktygen måste därför identifiera både det dolda aktiveringsvillkoret och den kodade skadliga logiken.

Kampanjen visar varför en ren installation inte garanterar att ett paket är säkert.

Skadeprogrammet samlar in systeminformation

Efter aktiveringen samlar skadeprogrammet in uppgifter om den infekterade datorn.

Den insamlade informationen omfattar systemarkitektur, värdnamn, processor, tillgängligt minne och drifttid. Uppgifterna kan hjälpa angriparna att utvärdera den komprometterade miljön.

Operatörerna kan exempelvis använda informationen för att identifiera värdefulla utvecklingssystem eller undvika olämpliga mål.

Skadeprogrammet skickar sedan den insamlade informationen via hårdkodade Slack- och Telegram-kanaler. Dessa legitima tjänster kan ge hotaktörer en praktisk kommunikationsinfrastruktur.

Eftersom många organisationer tillåter trafik till dessa plattformar kan dataöverföringarna smälta in i normal nätverksaktivitet.

Ethereum-kontrakt tillhandahåller kommandon

Skadeprogrammet kontrollerar även ett smart kontrakt på Ethereum efter lednings- och kontrollinformation.

Mer specifikt söker det regelbundet av ett kontrakt på testnätverket Sepolia. Angriparna kan uppdatera kontraktet för att tillhandahålla instruktioner eller platser för ytterligare nyttolaster.

Denna decentraliserade metod minskar beroendet av en traditionell lednings- och kontrollserver. Säkerhetsteam kan inte enkelt stänga ned kanalen genom att slå ut en enda domän.

Skadeprogrammet använder ett X25519-nyckelutbyte för att generera en krypteringsnyckel. Därefter använder det nyckeln med AES-kryptering för att låsa upp en nyttolast för det andra steget som lagras i kontraktet.

Denna design hjälper till att dölja både nyttolasten och dess instruktioner för forskare som övervakar blockkedjan.

Skadeprogrammet kan radera sina egna spår

Kampanjen innehåller en rensningsfunktion som hjälper operatörerna att dölja sin aktivitet.

När angriparna beslutar att avsluta en infektion kan skadeprogrammet radera sina filer från det drabbade systemet. Det kan även ta bort den skadliga utlösaren från paketkoden.

Denna funktion kan försvåra senare kriminaltekniska utredningar. En utvecklare kan behålla det komprometterade paketet utan att se den ursprungliga skadliga koden.

Dessutom kan rensningsprocessen minska mängden bevis som finns tillgängliga för incidenthanterare. Organisationer kan få svårt att avgöra vilka system som körde skadeprogrammet eller vilken information det samlade in.

Forskare hittar nio relaterade paket

Checkmarx kopplade nio andra paket till samma operation. Tillsammans samlade de på sig miljontals nedladdningar:

  • ordered-kv-index – 448 184 nedladdningar
  • btree-leaderboard – 493 685 nedladdningar
  • priority-slot-queue – 402 860 nedladdningar
  • btree-range-store – 468 092 nedladdningar
  • btree-core – 1 951 274 nedladdningar
  • btree-time-index – 425 312 nedladdningar
  • btree-lru-cache – 372 185 nedladdningar
  • neighbor-key-map – 366 019 nedladdningar
  • sliding-score-window – 448 024 nedladdningar

npm har tagit bort samtliga nio paket. Deras nedladdningssiffror visar dock att leveranskedjekampanjer kan nå många utvecklingsmiljöer innan någon upptäcker dem.

Antalet nedladdningar motsvarar inte nödvändigtvis antalet infekterade system. Automatiserade byggen, speglar och upprepade installationer kan öka paketstatistiken avsevärt.

Kryptoplånbok innehåller 109 ETH

Checkmarx identifierade även en kryptoplånbok som förknippades med kampanjens operatörer.

Plånboken innehöll enligt uppgift 109 ETH. Forskarna kunde dock inte fastställa att tillgångarna kom från kryptostölder eller aktiviteter med anknytning till skadeprogrammet.

Därför bekräftar saldot i sig inte hur mycket pengar angriparna tjänade på kampanjen.

Upptäckten tyder ändå på att ekonomiskt motiverade hotaktörer med betydande resurser kan ligga bakom operationen.

Utvecklare behöver övervakning under körning

Kampanjen visar att utvecklare inte enbart kan förlita sig på skanning vid installation.

Säkerhetsteam bör även övervaka hur tredjepartspaket beter sig medan applikationer körs. Misstänkta nätverksanslutningar, kartläggning av systemet och oväntad åtkomst till meddelandeplattformar kräver utredning.

Organisationer bör granska sina beroendeförteckningar och söka efter indexed-btree eller något av de nio relaterade paketen.

Alla som har installerat dessa skadliga npm-paket bör byta autentiseringsuppgifter, token och andra hemligheter som lagrats i den drabbade miljön.

Utvecklare bör även återställa komprometterade system från en betrodd säkerhetskopia där det är möjligt. Att enbart radera paketet kanske inte tar bort ytterligare nyttolaster eller återställer ändringar som gjordes efter infektionen.

I slutändan kan skadliga npm-paket utnyttja normalt beteende vid körning för att kringgå kontroller som utformats kring installationen. Säkerheten i leveranskedjan måste därför undersöka vad beroenden gör efter att utvecklare börjar använda dem.


0 svar till ”Skadliga npm-paket kringgår installationsskydd vid körning”