alone5511 npm Avhengighetsforvirringsangrep

alone5511 npm Avhengighetsforvirringsangrep

TL; DR

Mellom 1. og 6. mai 2026, én npm-utgiver, alone5511, sendte ut åtte pakker uten avhengighet som ser ut til å målrette seg mot Microsoft / Interne pakkenavnområder i Azure-stil.

Pakkene brukte navn som cosmos-explorer, ms.analytics-web, icons.generated, latency-tracking-internal, carbonite-internalog carboniteappFlere versjoner brukte høye semerverdier som f.eks. 99.9.0 og 99.9.13, som er en vanlig taktikk for avhengighetsforvirring som er utformet for å overgå private interne pakker.

Alle åtte søskenpakkene ble allerede avpublisert fra npm av utgiveren mellom 1. og 6. mai 2026. Direkte registermetadata bekreftet at tarballene nå returnerer HTTP 404 fra npm CDN.

Klyngen er imidlertid fortsatt viktig.

Nyttelasten i de kanoniske prøvene, carbonite-internal:99.9.0 og carboniteapp:99.9.0, kjører under installasjon gjennom en preinstall hook. Den samler inn vertsfingeravtrykksdata, henter maskinens offentlige IP-adresse fra api.ipify.org, lager en falsk «ETTERRETNINGSRAPPORT PÅ PROFESSIONELT NIVÅ», markerer verten som RCE VERIFIED, og sender rapporten til en Telegram-bot gjennom Telegram Bot API-et.

Xygenis tidlige advarsel om skadelig programvare (MEW) Systemet klassifiserte de kanoniske eksemplene som sannsynligvis skadelige med en poengsum over 91/100.

Vi sporer dette som en intern Microsoft-kampanje for forvirring av navneavhengigheter med fingeravtrykk av vertsfunksjoner under installasjon og eksfiltrering av Telegram-beacon.

Klyngen: Åtte pakker, én utgiver

Utgiverkontoen alone5511 brukte e-postadressen:

				
					raistargaming703@gmail.com
				
			

Kontoen hadde ingen bekreftet e-postadresse, nei SCM verifisering og en npm-omdømmescore på 2.

En referert GitHub-identitet, alonebeast002/beastcrypt, dukket også opp i klyngekonteksten.

Utgiveren ga ut åtte relaterte pakker i løpet av et seksdagersvindu. Alle pakkene hadde null avhengigheter og fulgte det samme generelle mønsteret: liten pakke, installasjonsskript, fingeravtrykk av vert og Telegram-beaconing.

#PakkeOndsinnet versjonOpprettet, UTCUpublisert, UTCNyttelast bekreftetInstaller krok
1kosmos-utforsker1.1.32026-05-01T18:26Z2026-05-01T19:01ZAntatt, samme utgiver/klyngeforhåndsinstallering, antatt
2signalsdk-nett1.0.0, 10.0.02026-05-04T13:57Z2026-05-04T18:51Zutledesforhåndsinstallering, antatt
3ms.analytics-web99.0.0, 99.9.132026-05-04T18:47Z2026-05-05T10:07Zutledesforhåndsinstallering, antatt
4ikoner.generert99.9.132026-05-05T10:02Z2026-05-05T12:57Zutledesforhåndsinstallering, antatt
5latenssporing99.9.02026-05-05T11:57Z2026-05-05T12:57Zutledesforhåndsinstallering, antatt
6latenssporing-internVersjoner fjernet fra registerposten2026-05-06T06:02Z2026-05-06T08:35Zutledesforhåndsinstallering, antatt
7carboniteapp99.9.02026-05-06T05:49Z2026-05-06T08:35ZJa, full skannerkodeflytforhåndsinstallasjon: node index.js
8karbonitt-intern99.9.02026-05-06T06:14Z2026-05-06T08:36ZJa, full skannerkodeflytforhåndsinstallasjon: node index.js

Totalt antall ondsinnede versjonstupler på tvers av klyngen: 9+.

Noen søskenpakkeposter fikk versjoner fjernet etter at de ble avpublisert, noe som begrenser nøyaktig rekonstruksjon kun fra offentlige registerdata.

Hvorfor navnene er viktige

Pakkenavnene er det sterkeste signalet.

De ser ut som interne SDK-, telemetri-, ikongenererings-, utforsker- eller latenssporingspakker:

				
					cosmos-explorer
signalsdk-web
ms.analytics-web
icons.generated
latency-tracking
latency-tracking-internal
carbonite-internal
carboniteapp
				
			

Dette er ikke tilfeldig navngiving. Det ser ut til å være kalibrert for avhengighetsforvirring.

Flere senere pakker brukte høye versjonsnumre:

				
					99.0.0
99.9.0
99.9.13
10.0.0
				
			

Det er viktig fordi avhengighetsforvirringsangrep ofte er avhengige av at offentlige pakker har høyere versjoner enn interne private registerpakker. Hvis et byggesystem er feilkonfigurert, kan pakkebehandleren velge den offentlige npm-versjonen fremfor den tiltenkte interne.

Utgiveren ser også ut til å eskalere over tid.

Tidlige pakker brukte normalutseende versjoner, som for eksempel 1.1.3 og 1.0.0Senere pakker flyttet inn i 99.x.x og 99.9.x. Dette skiftet er i samsvar med en aktør som finjusterer kampanjen for intern pakkeløsningsatferd.

Hva skjer ved installasjonstidspunktet

De kanoniske eksemplene, carbonite-internal:99.9.0 og carboniteapp:99.9.0, erklære en preinstall krok:

 
				
					{
  "scripts": {
    "preinstall": "node index.js"
  }
}
				
			

Det betyr at nyttelasten kjører før npm er ferdig med å installere avhengigheter.

Dette er det tidligst mulige fotfestet på installasjonstidspunktet. Utvikleren trenger ikke å importere pakken. Byggingen trenger ikke å kjøre programkode. Selve installasjonen er nok.

Nyttelasten er liten, rundt 2.4 KB, og har ingen funksjonell hensikt utover beaconing.

Nyttelastens oppførsel

Ocuco index.js filen utfører fire hovedhandlinger.

Først kaller den api.ipify.org for å hente vertens offentlige IP-adresse:

				
					https://api.ipify.org
				
			

For det andre samler den inn grunnleggende fingeravtrykksdata for vert ved hjelp av Node.js OS API-er:

				
					os.userInfo()
os.hostname()
os.platform()
os.networkInterfaces()
os.uptime()
				
			

For det tredje formaterer den de innsamlede dataene til en rapport med flere linjer med et bokstavelig banner:

				
					PRO-LEVEL INTELLIGENCE REPORT
				
			

Rapporten avsluttes med:

				
					Status: 🟢 RCE VERIFIED
				
			

For det fjerde sender den rapporten til Telegram gjennom en sendTelegram(report) funksjon, ved hjelp av Telegram Bot API-endepunktet:

				
					https://api.telegram.org/bot<token>/sendMessage
				
			

Det nøyaktige Telegram-bottokenet er bevart i de upubliserte tarballene og bør kunne gjenopprettes fra npms interne lagring.

Hvorfor «RCE VERIFIED»-banneret er viktig

Det bokstavelige RCE VERIFIED markøren er operasjonelt talende.

Nyttelasten distribuerer ikke en bakdør. Den lagres ikke permanent. Den stjeler ikke skylegitimasjon direkte. I stedet bekrefter den at kodekjøring skjedde under pakkeinstallasjonen.

Det er nok for en bevis-på-utførelseskampanje som involverer avhengighetsforvirring.

Hvis angriperen mottar en Telegram-melding fra et målmiljø, vet de at den offentlige npm-pakken ble løst og kjørt i en ekte vert, CI-løper, utviklerarbeidsstasjon eller byggemiljø.

Med andre ord samler ikke skadevaren bare inn vertsmetadata. Den validerer om målets pakkeløsning kan utnyttes.

Xygeni MEW-klassifisering

Xygeni MEW klassifiserte de kanoniske prøvene som sannsynligvis ondsinnet, med en poengsum over 91/100.

Deteksjonene inkluderte:

AlvorlighetsgradGjenkjenningBetydning
Kritiskeksfiltrering_av_sensitive_datareq.write(data) overfører rapporten om vertsfingeravtrykk til et utgående Telegram POST
Høyt ondsinnede_installasjonsskriptforhåndsinstallasjon: node index.js utløser beaconet ved installasjonstidspunktet
Lavmistenkelig_forespørselOppdagelse av offentlige IP-adresser via api.ipify.org
Lavmistenkelig_forespørselTelegram Bot API utgående endepunkt
Lavtrivial_pakkePakken har ikke noe meningsfullt formål utover beaconing
Mer infoopplisting_av_sensitive_dataVertsdetaljer som oppetid, brukerinformasjon og vertsnavn er oppført

Begge carbonite-internal:99.9.0 og carboniteapp:99.9.0 hadde identiske nyttelaster, inkludert samme kodeflyt-ID og byte-ekvivalente installasjonsskript.

MEW-publiser-prosjektindeksen markerte alle åtte pakkene som en del av den samme publiserings-/nyttelastklyngen.

Hvorfor selvpubliseringsmønsteret er viktig

Alle de åtte søskenpakkene ble avpublisert av forlaget i løpet av minutter til timer etter utgivelsen.

Den oppførselen er viktig.

Legitime vedlikeholdere avpubliserer noen ganger pakker, men tidspunktet her ser ut som en opprydding utført av angriperen. Pakkene dukket opp, utførte nyttelasten sin på installasjonstidspunktet hvis den ble løst av et mål, og forsvant deretter fra offentlig registertilgang.

Det skaper to problemer for forsvarerne.

For det første blir offentlige npm-metadata ufullstendige etter avpublisering. Enkelte versjonsposter kan bli fjernet eller vanskeligere å rekonstruere.

For det andre kan forsvarere som er avhengige av gjeldende registertilstand, overse pakker som var til stede i eksponeringsvinduet, men som ikke lenger kan installeres.

Av den grunn bør npm bevare de upubliserte tarballene internt for rettsmedisinske formål. Telegram-boten Tokener i tarballene kan bidra til å liste opp mottakerkanalen og rekonstruere mulige ofre.

Indikatorer for kompromittering og deteksjon

Utgiver og konto

FeltVerdi
npm-brukernavnalone5511
npm-utgiverens e-postadresseraistargaming703@gmail.com
npm-omdømme2
e-post bekreftetNei
SCM verifisertNei
Referert GitHub-identitetalonebeast002/beastcrypt

Berørte pakkenavn

				
					cosmos-explorer
signalsdk-web
ms.analytics-web
icons.generated
latency-tracking
latency-tracking-internal
carbonite-internal
carboniteapp
				
			

Mistenkelige versjonsmønstre

				
					10.0.0
99.0.0
99.9.0
99.9.13
				
			

Disse avanserte versjonene er spesielt relevante i undersøkelser av avhengighetsforvirring fordi de kan rangere høyere enn private pakkeversjoner.

Nettverksendepunkter

typenVerdi
Offentlig IP-sondehttps://api.ipify.org
Eksfiltreringsvaskhttps://api.telegram.org/bot<token>/sendMessage
EksfiltreringsmetodeTelegram Bot API-innlegg

Nyttelastmarkører

Søk etter installasjonsskript for disse strengene:

				
					PRO-LEVEL INTELLIGENCE REPORT
Status: 🟢 RCE VERIFIED
sendTelegram(
				
			

Flagg også dette manifestmønsteret:

				
					{
  "scripts": {
    "preinstall": "node index.js"
  }
}
				
			

Spesielt når det kombineres med:

  • Null avhengigheter
  • Liten pakkestørrelse
  • Internt utseende pakkenavn
  • Høy semesterversjon
  • API-er for vertsfingeravtrykk
  • Telegram Bot API-trafikk

API-er for vertsfingeravtrykk

Den kanoniske nyttelasten bruker:

				
					os.userInfo()
os.hostname()
os.platform()
os.networkInterfaces()
os.uptime()
				
			

Den henvender seg også til:

				
					https://api.ipify.org
				
			

for å fange vertens offentlige IP-adresse.

Deteksjonsmerknader

Flere regler kan fange opp denne kampanjen og nære varianter.

Først, overvåk npm-installasjonsskript som kontakter Telegram:

				
					api.telegram.org
				
			

Et pakkeinstallasjonsskript skal nesten aldri POSTES til Telegram. Behandle dette som fiendtlig med mindre det finnes et veldig tydelig og gjennomgått unntak.

For det andre, flagg preinstall skript i bittesmå pakker uten avhengighet med internt utseende navn.

Kombinasjonen av en liten pakke, en versjon med høy semer og et internt navneområdestil er et sterkt signal om avhengighetsforvirring.

For det tredje, vær oppmerksom på pakkenavn som ser ut som private ingeniørmoduler publisert av offentlige npm-kontoer med lavt omdømme.

Eksempler fra denne klyngen inkluderer:

				
					ms.analytics-web
latency-tracking-internal
carbonite-internal
icons.generated
				
			

For det fjerde, let etter låsefilreferanser til de åtte pakkenavnene på tvers av CI-systemer og utviklerarbeidsstasjoner.

Søke:

				
					package-lock.json
yarn.lock
pnpm-lock.yaml
npm-shrinkwrap.json
				
			

Ethvert samsvar bør utløse en gjennomgang av avhengighetsforvirring.

Foreslåtte registerhandlinger

Denne klyngen var allerede ikke publisert på rapporteringstidspunktet. Oppheving av publisering fjerner imidlertid ikke risikoen.

Anbefalte handlinger på npm-siden:

  • Bekreft om avpubliseringene var en angriperinitiert opprydding snarere enn en legitim handling fra vedlikeholderen.
  • Suspender eller utesteng utgiverkontoen alone5511.
  • Legg til utgiver, e-postadresse, pakkenavn og nyttelastmarkører i misbruks- og blokkeringslister for forsyningskjeden.
  • Behold upubliserte tarballer i intern lagring for rettsmedisinske formål.
  • Pakk ut Telegram-bottokenet fra de bevarte tarballene.
  • Samarbeid med Telegram, der det er mulig, for å identifisere mottakerkanalen og rekonstruere potensielle offertelemetridata.

Sjekkliste for kompromissrespons

Hvis noen av de berørte pakkene dukket opp i låsefilene, byggeloggene, pakkebufferen eller CI-installasjonshistorikken i løpet av eksponeringsvinduet, behandle det som en utførelseshendelse som forårsaker avhengighetsforvirring.

Anbefalt svar:

  • Identifiser hvor pakken ble installert: lokal arbeidsstasjon, CI-løper, byggeagent eller containeravbildning.
  • Bevar låsefiler, npm-hurtigbuffer, byggelogger, skallhistorikk og utdata fra pakkebehandleren.
  • Sjekk utgående nettverkslogger for api.telegram.org og api.ipify.org i løpet av installasjonsvinduet.
  • Sjekk om installasjonen kjørte i et miljø med sensitive variabler, påloggingsinformasjon eller intern nettverkstilgang.
  • Roter tokener som er eksponert for installasjonsmiljøet hvis verten var en privilegert CI-løper eller utviklerarbeidsstasjon.
  • Konfigurasjon av revisjonspakkeløsning for forvirring mellom offentlig/privat register.
  • Håndhev omfangsrike private pakker og registerlåsing.
  • Blokker ikke-godkjente offentlige pakker som samsvarer med interne navnemønstre.
  • Legg til guardrails for installasjonsskript, spesielt preinstall, installog postinstall.

Hva forsvarere bør ta med seg

Denne kampanjen er ikke teknisk kompleks. Det er nettopp derfor den er viktig.

Nyttelasten er liten, direkte og enkel å kjøre. Angriperen trenger ikke persistens eller avansert skadelig programvare. De trenger bare én feilkonfigurert pakkeløsningssti.

Den virkelige risikoen er avhengighetsforvirring.

En pakke med et kjent internt utseende navn, et høyt versjonsnummer og en preinstall kroken kan bli normal npm install inn i et fyrtårn fra innsiden av omgivelsene dine.

Til DevSecOps For team er lærdommen klar: interne pakkenavn er sensitive ressurser. Behandle dem som angrepsflater.

Rapportert til npm for håndheving på kontonivå, blokkering og bevaring av upubliserte tarballer.

sca-tools-programvare-verktøy for komposisjonsanalyse
Prioriter, utbedre og sikre programvarerisikoene dine
Få din gratis konto.
Ingen kredittkort kreves.

Sikre programvareutviklingen og -leveringen din

med Xygeni-produktpakken