alone5511 npm Napad zmede zaradi odvisnosti

alone5511 npm Napad zmede zaradi odvisnosti

TL; DR

Med 1. in 6. majem 2026 je en sam založnik npm, alone5511, je predstavil osem paketov brez odvisnosti, ki so očitno usmerjeni Microsoft / Notranji imenski prostori paketov v slogu Azure.

Paketi so uporabljali imena, kot so cosmos-explorer, ms.analytics-web, icons.generated, latency-tracking-internal, carbonite-internalin carboniteappVeč različic je uporabljalo visoke vrednosti semerja, kot na primer 99.9.0 in 99.9.13, kar je pogosta taktika zmede zaradi odvisnosti, zasnovana za prehitevanje zasebnih internih paketov.

Založnik je med 1. in 6. majem 2026 že preklical objavo vseh osmih sorodnih paketov iz npm. Neposredni metapodatki registra so potrdili, da datoteke tarball zdaj vrnejo HTTP 404 iz npm CDN.

Vendar pa je grozd še vedno pomemben.

Koristni tovor v kanoničnih vzorcih, carbonite-internal:99.9.0 in carboniteapp:99.9.0, se izvaja ob namestitvi prek preinstall kavelj. Zbira podatke o prstnih odtisih gostitelja, pridobi javni IP-naslov naprave iz api.ipify.org, sestavi lažno »POROČILO O OBVEŠČEVALNIH PODATKIH NA RAVNI PROFESIONALCE«, gostitelja označi kot RCE VERIFIEDin pošlje poročilo Telegram botu prek Telegram Bot API-ja.

Xygenijev sistem za zgodnje opozarjanje na zlonamerno programsko opremo (MEW) Sistem je kanonične vzorce razvrstil kot verjetno zlonamerne z oceno nad 91/100.

To spremljamo kot Microsoftovo kampanjo zmede odvisnosti internih imen s prstnim odtisom gostitelja med namestitvijo in izkrcanjem signalov Telegram.

Grozd: Osem paketov, en založnik

Račun založnika alone5511 uporabil e-poštni naslov:

raistargaming703@gmail.com

Račun ni imel preverjenega e-poštnega naslova, ne SCM preverjanje in ocena ugleda npm 2.

Referenčna identiteta GitHub-a, alonebeast002/beastcrypt, se je pojavil tudi v kontekstu grozda.

Založnik je v šestih dneh izdal osem sorodnih paketov. Vsi paketi niso imeli nobenih odvisnosti in so sledili istemu splošnemu vzorcu: majhen paket, skript ob namestitvi, prstni odtis gostitelja in Telegram beaconing.

# paket Zlonamerna različica Ustvarjeno, UTC Neobjavljeno, UTC Tovor potrjen Namestite kavelj
1 raziskovalec vesolja 1.1.3 2026-05-01T18:26Z 2026-05-01T19:01Z Izpeljano, isti založnik/gruča prednamestitev, domnevno
2 signalsdk-splet 1.0.0, 10.0.0 2026-05-04T13:57Z 2026-05-04T18:51Z Naveden prednamestitev, domnevno
3 ms.analytics-splet 99.0.0, 99.9.13 2026-05-04T18:47Z 2026-05-05T10:07Z Naveden prednamestitev, domnevno
4 ikone.generirane 99.9.13 2026-05-05T10:02Z 2026-05-05T12:57Z Naveden prednamestitev, domnevno
5 sledenje latenci 99.9.0 2026-05-05T11:57Z 2026-05-05T12:57Z Naveden prednamestitev, domnevno
6 sledenje-zamudi-notranje Različice, odstranjene iz zapisa v registru 2026-05-06T06:02Z 2026-05-06T08:35Z Naveden prednamestitev, domnevno
7 aplikacija za karbonit 99.9.0 2026-05-06T05:49Z 2026-05-06T08:35Z Da, celoten potek kode skeniranja prednamestitev: node index.js
8 notranji karbonit 99.9.0 2026-05-06T06:14Z 2026-05-06T08:36Z Da, celoten potek kode skeniranja prednamestitev: node index.js

Skupno število zlonamernih različic v gruči: 9+.

Nekateri zapisi sorodnih paketov so imeli po preklicu objave odstranjene različice, kar omejuje natančno rekonstrukcijo samo iz podatkov javnega registra.

Zakaj so imena pomembna

Imena paketov so najmočnejši signal.

Izgledajo kot notranji paketi za SDK, telemetrijo, generiranje ikon, raziskovalec ali sledenje zakasnitvi:

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

To ni naključno poimenovanje. Zdi se, da je kalibrirano za zmeda glede odvisnosti.

Več kasnejših paketov je uporabljalo visoke številke različic:

99.0.0 99.9.0 99.9.13 10.0.0

To je pomembno, ker napadi z zmedo odvisnosti pogosto temeljijo na javnih paketih, ki imajo višje različice kot interni paketi zasebnega registra. Če je sistem za gradnjo napačno konfiguriran, lahko upravitelj paketov izbere javno različico npm namesto predvidene interne.

Zdi se, da založnik sčasoma tudi stopnjuje.

Zgodnji paketi so uporabljali različice običajnega videza, kot na primer 1.1.3 in 1.0.0Kasneje so se paketi premaknili v 99.x.x in 99.9.xTa premik je skladen z akterjem, ki prilagaja kampanjo za notranje vedenje pri reševanju paketov.

Kaj se zgodi med namestitvijo

Kanonični vzorci, carbonite-internal:99.9.0 in carboniteapp:99.9.0, razglasi preinstall kljuka:

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

To pomeni, da se koristni bremen zažene, preden npm konča z nameščanjem odvisnosti.

To je najzgodnejša možna točka za namestitev. Razvijalcu ni treba uvoziti paketa. Gradnja ne zahteva izvajanja kode aplikacije. Sama namestitev je dovolj.

Koristni tovor je majhen, približno 2.4 KB, in nima nobenega funkcionalnega namena razen signalizacije.

Obnašanje koristnega tovora

Naš index.js Datoteka izvede štiri glavna dejanja.

Najprej pokliče api.ipify.org za pridobitev javnega IP-naslova gostitelja:

https://api.ipify.org

Drugič, zbira osnovne podatke o prstnih odtisih gostitelja z uporabo API-jev operacijskega sistema Node.js:

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

Tretjič, zbrane podatke oblikuje v večvrstično poročilo z dobesednim pasico:

PRO-LEVEL INTELLIGENCE REPORT

Poročilo se konča z:

Status: 🟢 RCE VERIFIED

Četrtič, poročilo pošlje Telegramu prek sendTelegram(report) funkcija z uporabo končne točke Telegram Bot API:

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

Natančen žeton bota Telegram je shranjen v neobjavljenih datotekah tarball in bi ga bilo mogoče obnoviti iz notranjega pomnilnika npm.

Zakaj je pomemben pasica »RCE VERIFIED«

Dobesedno RCE VERIFIED Marker je operativno poveden.

Koristni bremen ne namesti zadnjih vrat. Ne vztraja. Ne krade neposredno poverilnic za oblak. Namesto tega potrdi, da se je med namestitvijo paketa izvedla koda.

To je dovolj za kampanjo dokazovanja izvajanja, ki temelji na zmedi odvisnosti.

Če napadalec prejme sporočilo Telegram iz ciljnega okolja, ve, da je bil javni paket npm razrešen in izveden znotraj pravega gostitelja, izvajalca CI, delovne postaje razvijalca ali okolja za gradnjo.

Z drugimi besedami, zlonamerna programska oprema ne zbira le metapodatkov gostitelja, temveč preverja tudi, ali je ločljivost ciljnega paketa izkoriščena.

Klasifikacija Xygeni MEW

Xygeni MEW je kanonične vzorce razvrstil kot verjetno zlonamerno, z oceno nad 91/100.

Zaznave so vključevale:

Resnost Odkrivanje Pomen
Kritično izbruh_občutljivih_podatkov req.write(data) prenese poročilo o prstnem odtisu gostitelja v odhodno sporočilo POST v storitvi Telegram.
visoka zlonamerne_namestitvene_skripte prednamestitev: node index.js sproži svetilnik ob namestitvi
nizka sumljiva_zahteva Odkrivanje javnega IP-ja prek api.ipify.org
nizka sumljiva_zahteva Izhodna končna točka API-ja bota Telegrama
nizka trivialni_paket Paket nima nobenega smiselnega namena razen signaliziranja
Informacije naštevanje_občutljivih_podatkov Podrobnosti gostitelja, kot so čas delovanja, podatki o uporabniku in ime gostitelja, so naštete

oba carbonite-internal:99.9.0 in carboniteapp:99.9.0 imel je enake koristne obremenitve, vključno z istim ID-jem toka kode in bajtno enakovrednimi namestitvenimi skripti.

Indeks projektov založnikov MEW je vseh osem paketov označil kot del istega grozda založnikov/koristnih podatkov.

Zakaj je vzorec samodejnega preklica objave pomemben

Založnik je vseh osem sorodnih paketov preklical objavo v nekaj minutah do urah po objavi.

To vedenje je pomembno.

Legitimni vzdrževalci včasih prekličejo objavo paketov, vendar je čas tukaj videti kot čiščenje s strani napadalca. Paketi so se pojavili, izvedli svoj namestitveni tovor, če ga je tarča razrešila, in nato izginili iz javnega registra.

To branilcem ustvarja dve težavi.

Prvič, javni metapodatki npm postanejo po preklicu objave nepopolni. Nekateri zapisi različic so lahko odstranjeni ali pa jih je težje rekonstruirati.

Drugič, zagovorniki, ki se zanašajo na trenutno stanje registra, lahko spregledajo pakete, ki so bili prisotni med oknom izpostavljenosti, vendar jih ni več mogoče namestiti.

Zaradi tega bi moral npm interno hraniti neobjavljene tarballe za forenzične preiskave. Bot za Telegram Žeton v tarballih lahko pomaga pri naštevanju prejemnega kanala in rekonstrukciji morebitnih žrtev.

Kazalniki kompromitacije in odkrivanja

Založnik in račun

Polje Vrednost
uporabniško ime npm alone5511
e-poštni naslov založnika NPM raistargaming703@gmail.com
ugled NPM-ja 2
E-pošta preverjena Ne
SCM preverjeno Ne
Referenčna identiteta GitHub alonebeast002/beastcrypt

Prizadeta imena paketov

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

Sumljivi vzorci različic

10.0.0 99.0.0 99.9.0 99.9.13

Te višje različice so še posebej pomembne pri preiskavah zmede odvisnosti, saj lahko prekašajo različice zasebnih paketov.

Omrežne končne točke

tip Vrednost
Sonda za javni IP https://api.ipify.org
Izločevalni umivalnik https://api.telegram.org/bot<token>/sendMessage
Metoda eksfiltracije OBJAVA API-ja bota Telegrama

Označevalci koristnega tovora

Poiščite namestitvene skripte za te nize:

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

Označi tudi ta vzorec manifesta:

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

Še posebej v kombinaciji z:

  • Nič odvisnosti
  • Majhna velikost paketa
  • Ime paketa, ki je videti kot notranji
  • Visokotemperaturna različica
  • API-ji za prstne odtise gostitelja
  • Promet API-ja bota Telegram

API-ji za prstne odtise gostitelja

Kanonični koristni tovor uporablja:

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

Nanaša se tudi na:

https://api.ipify.org

za zajem javnega IP-ja gostitelja.

Opombe o zaznavanju

To kampanjo in njene podobne različice lahko zajame več pravil.

Najprej spremljajte skripte za namestitev npm, ki se povezujejo s Telegramom:

api.telegram.org

Skript za namestitev paketa skoraj nikoli ne bi smel objavljati v Telegram. To obravnavajte kot sovražno, razen če obstaja zelo jasna in pregledana izjema.

Drugič, zastava preinstall skripte v majhnih paketih brez odvisnosti z imeni, ki so videti kot interni.

Kombinacija majhnega paketa, različice z visokim strežnikom in imena v slogu notranjega imenskega prostora je močan signal za zmedo zaradi odvisnosti.

Tretjič, bodite pozorni na imena paketov, ki so videti kot zasebni inženirski moduli, objavljeni s strani javnih npm računov z nizko reputacijo.

Primeri iz te skupine vključujejo:

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

Četrtič, poiščite reference zaklenjenih datotek za osem imen paketov v sistemih CI in na delovnih postajah razvijalcev.

Iskanje:

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

Vsako ujemanje bi moralo sprožiti pregled odvisnosti in zmede.

Predlagani ukrepi v registru

Ta gruča je bila v času poročila že neobjavljena. Vendar pa preklic objave ne odpravi tveganja.

Priporočena dejanja na strani npm:

  • Preverite, ali so bile neobjavljene objave čiščenje, ki ga je sprožil napadalec, in ne legitimno dejanje vzdrževalca.
  • Začasno ukinite ali prepovedite račun založnika alone5511.
  • Dodajte založnika, e-poštni naslov, imena paketov in označevalnike koristnega tovora na sezname zlorab in blokad v dobavni verigi.
  • Neobjavljene tarballe shranite v internem pomnilniku za forenzične preiskave.
  • Iz ohranjenih tarballov izvlecite žeton bota Telegram.
  • Kjer je mogoče, sodelujte s Telegramom, da identificirate sprejemni kanal in rekonstruirate telemetrijo potencialne žrtve.

Kontrolni seznam za odziv na kompromis

Če se je kateri od prizadetih paketov pojavil v vaših zaklepnih datotekah, dnevnikih gradnje, predpomnilniku paketov ali zgodovini namestitve CI med oknom izpostavljenosti, ga obravnavajte kot dogodek izvajanja zaradi zmede odvisnosti.

Priporočen odgovor:

  • Določite, kje je bil paket nameščen: lokalna delovna postaja, izvajalec CI, agent za gradnjo ali slika vsebnika.
  • Ohranite datoteke zaklepanja, predpomnilnik npm, dnevnike gradnje, zgodovino lupine in izhod upravitelja paketov.
  • Preverite dnevnike odhodnega omrežja za api.telegram.org in api.ipify.org med namestitvenim oknom.
  • Preverite, ali je namestitev potekala v okolju z občutljivimi spremenljivkami, poverilnicami ali dostopom do notranjega omrežja.
  • Žetone, izpostavljene namestitvenemu okolju, zavrti, če je bil gostitelj privilegiran izvajalec CI ali delovna postaja razvijalca.
  • Konfiguracija razreševanja revizijskih paketov za zmedo med javnim/zasebnim registrom.
  • Uveljavite omejene zasebne pakete in pripenjanje registra.
  • Blokiraj neodobrene javne pakete, ki se ujemajo z notranjimi vzorci poimenovanja.
  • Dodaj guardrails za namestitvene skripte, še posebej preinstall, installin postinstall.

Kaj bi si morali branilci odnesti s seboj

Ta kampanja ni tehnično zapletena. Ravno zato je pomembna.

Nosilnost je majhna, neposredna in enostavna za izvajanje. Napadalec ne potrebuje vztrajnosti ali napredne zlonamerne programske opreme. Potrebuje le eno napačno konfigurirano pot za razreševanje paketov.

Resnično tveganje je zmeda zaradi odvisnosti.

Paket z znanim notranjim imenom, visoko številko različice in preinstall kavelj lahko obrne normalno npm install v svetilnik iz vašega okolja.

za DevSecOps ekipe, lekcija je jasna: notranja imena paketov so občutljiva sredstva. Z njimi ravnajte kot s površino za napad.

Poročano npm za uveljavljanje na ravni računa, uvrstitev na seznam blokov in shranjevanje neobjavljene tarball datoteke.

orodja-za-analizo-sestave-programske-programske-orodja-sca
Določite prednostne naloge, odpravite in zavarujte tveganja programske opreme
Pridobite svoj brezplačni račun.
Ni potrebna kreditna kartica.

Zagotovite si razvoj in dostavo programske opreme

z Xygeni Product Suite