Kenkėjiški npm paketai

Kenkėjiški npm paketai: tiesioginis sąrašas, kurio niekas pakankamai atidžiai nestebi

Lt; DR

Kenkėjiški npm paketai nėra atsitiktinis reiškinys. Jie yra nuolatinė publikavimo operacija, o patvirtintų atvejų sąrašas atnaujinamas kiekvieną savaitę. Septyniuose iš eilės mūsų kenkėjiškų kodų santraukos leidimuose, kurie jau perkopė 87-ąjį lygį, „Xygeni“ patvirtino, kad 635 kenkėjiškų paketų, nuo 13 ramią savaitę iki 206 įtemptą savaitę. Esmė yra savaitės intervalas: tai yra kadencija, o ne incidentas.

  • Kadencija yra problema. Vieno paketo versijų skaičius per savaitę išaugo nuo nulio iki daugiau nei 55. Kitas klasteris per mažiau nei tris valandas paskelbė beveik 30 paketų pavadinimų. Savaitinis auditas yra netinkamas laiko vienetas.
  • Jie neatvyksta kaip CVE. Kenkėjiškas paketas nėra teisėto kodo klaida, todėl nėra jokio įspėjimo, nėra įvertinimo ir paprastai nėra jokio identifikatoriaus. Pažeidžiamumu paremta programa struktūriškai to nepastebi.
  • Pašalinimas nėra apsauga. Paketai paprastai veikia nuo kelių minučių iki kelių valandų. Jūsų diegimas arba įvyko tame lange, arba ne.
  • Aptikimas turi būti atliekamas paskelbimo metu, o vykdymo užtikrinimas – diegimo metu. Viskas, kas laukia parašo, CVE ar savaitinio nuskaitymo, atkeliauja po to, kai buvo sukurta tai ištraukusi versija.

Sąrašas egzistuoja. Tai ne tas pats, kas būti stebimam.

Kenkėjiški npm paketai nėra jokia paslaptis. Patvirtinti atvejai skelbiami, įvardijami ir dokumentuojami kiekvieną savaitę, įskaitant „Xygeni“ kenkėjiško kodo santrauka, jau peržengęs aštuoniasdešimt septintąjį leidimą.

Ši spraga nėra informacija. Tai dėmesys ir ritmas. Sąrašas, atnaujinamas kas savaitę, skaitomas kas mėnesį ir pagal kurį imamasi veiksmų kas ketvirtį, yra sąrašas, kuriame užfiksuota, kas jau nutiko kam nors.

Štai kaip atrodė septynios savaitės, remiantis mūsų pačių patvirtintais duomenimis, o ne tiekėjų apklausa.

VirškinimasPatvirtinti paketaiKas išsiskyrė
Santrauka 8713Pirmasis kompozitorių klasteris. @umschool/platform paskelbta adresu 999.0.0 pranokti vidinį paketą
Santrauka 8635Baileys kampanija keičia slapyvardžius. Keturi @stellarshift paketai, išleisti identiška versija
Santrauka 8553[patvirtinti išskirtinumą]
Santrauka 8434Baileys apsimetinėjimas keturiais vardais ir šešiomis dienomis. cloud-baileys perleistas keturis kartus
Santrauka 83114wormgpt-cli: devynios versijos per vieną dieną, pavadintos tikro tamsiosios LLM įrankio vardu
Santrauka 82206[patvirtinti išskirtinumą]
Santrauka 8118017 paketų, kuriuose apsimetama vidiniais „PayPal“ vardais 28.0.0. zevairouter ankstesnės 55 versijos

Svarbu ne bendri rezultatai, o greitis kiekvienoje savaitėje.

Greitis yra visa ataka

Trys tų savaičių išvados, kiekviena iš jų – skirtinga apžvalgos dalis.

  • Versijų perpildymas. Vienas npm paketas, zevairouterper vieną savaitę patvirtintų versijų skaičius viršijo 55, prie kurių prisijungė dar dešimt iš papildomo paketo. „PyPI“ platformoje bingo-ai maždaug per 30 minučių sukūrė beveik 80 versijų. Joks rankinis peržiūros procesas neveikia tokiu greičiu, kaip ir naktinis darbas.
  • Sinchronizuoti klasteriai. Per tas pačias kelias minutes buvo paskelbti septyniolika paketų, apsimetinėjančių vidiniais „PayPal“ paslaugų pavadinimais, visų versijoje – 28.0.0. Tai ne kiekis, o lenktynės: egzistuoja išpūstas versijos numeris, skirtas pranokti jūsų pačių komandų sukurtą vidinį paketą. Tas pats triukas pasikartojo po kelių savaičių su @umschool/platform paskelbta adresu 999.0.0.
  • Atkaklumas per pašalinimą. „Baileys“ apsimetinėjimo kampanija vyksta jau kelias savaites. Vardai keičiasi, versijos daugėja, pakartotinis publikavimas tęsiasi ir po aptikimo. Operatorius, kuris pašalinimus laiko verslo vykdymo išlaidomis, o ne priežastimi sustoti, yra operatorius, kurio kartą per ketvirtį atliekama apžvalga niekada nepasivys.

Ir trumpas veikimo laikas yra numatytas pagal numatytuosius nustatymus. Viename neseniai įvykusiame klasteryje paketai buvo aktyvūs nuo 17 minučių iki 13 valandų prieš juos pašalinant.

PaketasPaskelbta (UTC)Kairė stovinti
moidev2026-08-16 16:315val 58m
moidevx2026-08-17 03:2413val 23m
moidevz2026-08-26 03:3812val 56m
moideva2026-08-26 18:581val 33m
amicat2026-08-28 20:4817m
bmcat2026-08-28 21:1747m
eyevox2026-08-28 21:4421m
moidevh2026-08-31 03:2247m

Tai laikykite registro veikimo laikotarpiu, o ne našumo rodikliu. Jei kompiliavimas buvo vykdomas jo metu, pašalinimas nieko nepakeitė.

Kodėl jūsų pažeidžiamumo programa to nemato

Tai yra struktūrinis aspektas, kurio dauguma saugumo komandų nėra internalizavusios.

PažeidžiamumasKenkėjiškas paketas
KilmėKlaida kode, parašytame sąžiningaiArtefaktas, sukurtas ir paskelbtas siekiant sukelti žalą
identifikatoriusCVE, su patariamuoju pranešimu ir įvertinimuPaprastai nėra. Nėra CVE, nereikia konsultacijų
ChronologijaAtskleista, o tada per kelias dienas ar savaites pataisytaGyvenkite kelias minutes ar valandas, tada pašalinkite
Kaip jūs mokotėsPašarų, skaitytuvo, patarimųTik jei kažkas stebėjo registrą publikavimo metu
PataisytiAtnaujinkite į pataisytą versijąNėra pataisytos versijos. Ji niekada nebuvo teisėta.
Ką veikia jūsų programaĮrašai, rezultatai, tvarkaraščiaiNieko, nebent tai būtų specialiai tam sukurta

Pažeidžiamumas yra kodo klaida, kurią kažkas parašė sąžiningai. Kenkėjiškas paketas yra tyčia užpuoliko paskelbtas artefaktas, paprastai be identifikatoriaus, be įspėjimo ir su gyvavimo trukme, matuojama valandomis. Kiekvienas procesas, pagrįstas CVE integracija, pavojingumo įvertinimu ir pataisų langais, buvo sukurtas pirmajam dalykui ir pagal numatytuosius nustatymus taikomas antrajam dalykui.

Identifikatoriaus nebuvimas nėra CVE sistemos klaida. Tai kategorija, veikianti taip, kaip numatyta: niekas nepateikia įspėjimo dėl artefakto, kurio vienintelis tikslas buvo kenkėjiškas, ir kol kas nors galėtų tai padaryti, paketas jau būtų dingęs. Tai reiškia, kad klausimas „Ar tai turi CVE?„grąžina tą patį atsakymą tiek švariam paketui, tiek prieš valandą paskelbtam įgaliojimų vagystei.“

Ką naudingieji kroviniai iš tikrųjų veikia dabar

Naivus kenkėjiškų npm paketų vaizdas yra kriptovaliutų kasėjas. Dabartinė realybė – kredencialų vagystės, nukreiptos prieš kūrėjus ir vis dažniau prieš jų kompiuteriuose esančius dirbtinio intelekto kredencialus.

Geriausios Fantominis sinchronizavimas „Cluster“, aštuoni „npm“ paketai, paskelbti vienoje paskyroje, veikė tiksliai taip, kaip reklamuojama, tuo pačiu paslėpdamas savaime iškviečiantį „dropper“, kuris suveikė maždaug po 37 sekundžių po importavimo, dekodavo naudingąją apkrovą, pateiktą kaip netikras testavimo įrenginys, įdiegė kelių platformų išsaugojimo funkciją ir paleido piniginės bei paslapčių vagystę. Uždelsimas, užmaskavimas, išsaugojimas, išfiltravimas.

Didesniu mastu, CHAINDROP banga Šai-Huludo kirminas 2026 m. rugpjūčio pradžioje pasiekė daugiau nei 400 paketų ir 1,700 versijų, o iš viso kas mėnesį buvo atsisiunčiama 1.3 milijardo kartų. Jo duomenų rinkimo įrankis nuskaitė daugiau nei 300 kredencialų šablonų, įskaitant „OpenAI“, „Anthropic“ ir žymeklio klavišus. Kūrėjų kompiuteriai tapo vertingais iš anksto.cisely dėl ant jų esančių modelio įgaliojimų.

Pavadinimų konvencijos sekė pinigų eigą. Naujausi klasteriai imituoja kriptovaliutų ir DeFi SDK, mokėjimo modulius, „WhatsApp“ API bibliotekas, AWS programas ir, vienu atveju, paketą, atvirai pavadintą dark-LLM atakos įrankio vardu.

Kas iš tikrųjų sustabdo kenkėjiškus npm paketus

Keturi valdikliai, tokia tvarka, kokia jie atsiperka.

1. Aptikimas publikavimo, o ne atskleidimo metu. „Xygeni“ kenkėjiškų programų ankstyvasis įspėjimas analizuoja naujai publikuotus paketus npm, PyPI, Maven ir kituose registruose jų atsiradimo momentu, naudodamas elgsenos ir anomalijų analizę, o ne laukdamas parašo ar ataskaitos. Tai vienintelis laiko juostos taškas, kuris yra priekyje jūsų kūrimo.

2. Įgyvendinimas ten, kur vyksta diegimas. Aptikimas parodo, kad paketas yra kenkėjiškas. Politika, blokuojanti diegimą, neleidžia vykdyti diegimo scenarijaus. Tai dar svarbiau dabar, kai agentai diegia priklausomybes be žmogaus pasirinkimo.

3. Užrakinimo failai ir maišos prisegimas. Paskirtis npm ci CI, o ne npm install, taigi sukuriamas tikslus priklausomybių medis iš užrakinimo failo. Jis užbaigia pakeitimo maršrutą, kuriuo remiasi „typosquats“ ir išpūstos versijos.

4. Radiniai vienoje vietoje. Kenkėjiškų programų radiniai priklauso tai pačiai prioritetų eilei kaip ir jūsų SCA ir kodo radinius, o ne atskirame informacijos sraute, kurį kažkas peržiūri. Patvirtinta kenkėjiška priklausomybė turėtų būti geresnė už vidutinio sunkumo CVE, ir tik bendras rizikos modelis leidžia atlikti tokį palyginimą.

Stebėkite sąrašą arba automatizuokite jį

Niekas neskiria dėmesio tam, kad kiekvieną savaitę perskaitytų registro įrašus. Būtent tam ir skirta automatizuoti šį procesą.

„Xygeni“ analizuoja naujai publikuotus paketus npm ir kituose registruose publikavimo metu, pažymi patvirtintą kenkėjišką programinę įrangą dar prieš jai pasiekiant kūrimo etapą ir įtraukia radinį į tą pačią prioritetinę eilę, kaip ir viską, su kuo jau dirba jūsų komandos. Kenkėjiškų programų aptikimas yra įtrauktas į nemokamą kūrėjo planą, o tai netaikoma daugumai nemokamų šios kategorijos pakopų.

Pradėkite nemokamaiarba skaityti Šios savaitės kenkėjiško kodo santrauka Pirmas.

DUK

Kas yra kenkėjiški npm paketai?

„npm“ registre publikuoti paketai, kurie yra sąmoningai sukurti žalai sukelti: kredencialų ir piniginių vagystės, „backdoor“, „dropper“ ir priklausomybių painiavos artefaktai, kurie apsimetinėja vidiniais arba populiariais paketų pavadinimais.

Kaip dažnai pasitaiko kenkėjiški npm paketai?

Nuolat. Per septynis pastaruosius mūsų kenkėjiškų kodų santraukos leidimus „Xygeni“ patvirtino 635 kenkėjiškus paketus – nuo ​​maždaug tuzino ramią savaitę iki daugiau nei 200 aktyvių kampanijų metu. Didžiąją daugumą sudaro npm.

Kiek laiko išlieka prieinami kenkėjiški npm paketai?

Dažnai tai trunka nuo kelių minučių iki kelių valandų. Būtent šis langas yra svarbus, nes jame veikianti versija jau yra paveikta, nepriklausomai nuo to, kaip greitai paketas vėliau pašalinamas.

Ar kenkėjiški npm paketai gauna CVE atakų?

Paprastai ne. Tai užpuolikų paskelbti artefaktai, o ne teisėto kodo klaidos, o stebimos 2026 kampanijos aktyvaus išnaudojimo metu negavo jokių CVE priskyrimų.

Kaip patikrinti, ar paketas nėra kenkėjiškas prieš diegiant?

Naudokite įrankį, kuris analizuoja paketus juos publikuojant, o ne tikrina žinomų blogų programų sąrašą, patikrinkite leidėją ir versijų istoriją, įtarkite neįprastai didelius versijų numerius ir visiškai naujas paskyras ir diegimo metu vykdykite politiką, o ne pasikliaukite peržiūromis.

Kas yra priklausomybės sumaištis?

Viešo paketo su tuo pačiu pavadinimu kaip ir vidinio paketo publikavimas, paprastai išplėstine versija, kad problemų sprendimo programa pirmenybę teiktų užpuoliko kopijai. „PayPal“ vardo klasteris 28.0.0 versijoje yra vadovėlinis pavyzdys.

sca-tools-software-composition-analyses-tools
Prioritetizuoti, pašalinti ir apsaugoti savo programinės įrangos rizikas
Gaukite nemokamą paskyrą.
Nebūtina kreditinės kortelės.

Apsaugokite savo programinės įrangos kūrimą ir tiekimą

su „Xygeni“ produktų rinkiniu