NPM-forsyningskjedeangrep

NPM-forsyningskjedeangrep: De største hendelsene og hvordan du kan stoppe dem

Raskt svar: NPM-forsyningskjedeangrep fungerer ved å kompromittere en pålitelig vedlikeholderkonto eller en CI/CD token, publisere en ondsinnet versjon av en pakke som utviklere allerede stoler på, og la pakkens installasjonsskript eller ormlogikk gjøre resten. Mellom august 2025 og midten av 2026 produserte dette mønsteret den største bølgen av npm-pakkeforsyningskjedeangrep i registerets historie, inkludert chalk/debug-kapringen, Shai-Hulud-ormenog skadelig programvare fra nasjonens stat skjult i en pakke som lastes ned 100 millioner ganger i uken. Løsningen skanner ikke kode etter at den har landet. Den fanger opp skadelige pakker før de installeres og overvåker pipeline for den nøyaktige oppførselen disse angrepene deler.

Hver installasjon er en tillitshandling, og angripere vet det

En utvikler kjører npm installasjonBak den ene kommandoen ligger et avhengighetstre med hundrevis, noen ganger tusenvis, av pakker, de fleste av dem skrevet og vedlikeholdt av folk utvikleren aldri vil møte. Ingen gjennomgår dette treet linje for linje. Ingen har tid til det.

Den tilliten er målet. Det er billigere for en angriper å phishe én npm-vedlikeholder med 2.6 milliarder ukentlige nedlastinger enn å finne en nulldagsangrep i en Fortune 500-brannmur. Npm-forsyningskjedeangrep utnytter nettopp denne asymmetrien, og bølgen fra 2025–2026 viser hvor langt denne angrepet har skalert: fra isolert typosquatting til selvforplantende ormer som publiserer sine egne ondsinnede pakker raskere enn noe menneske kan reagere.

Hva som teller som et npm-forsyningskjedeangrep

Et npm-forsyningskjedeangrep er enhver hendelse der en angriper setter inn skadelig kode i npm-distribusjonen. pipeline snarere enn inn i et måls egen kodebase, slik at skadevaren ankommer forkledd som en rutinemessig avhengighetsoppdatering. Inngangspunktet er vanligvis ett av tre ting: en vedlikeholders stjålne legitimasjon, en stjålet publisering eller CI/CD token eller en kompromittert versjon pipeline som blir lurt til å publisere på angriperens vegne. Fordi npm-pakker henter inn transitive avhengigheter automatisk, kan en enkelt kompromittert pakke nå applikasjoner som aldri har deklarert den som en direkte avhengighet i det hele tatt.

Tidslinje: de største npm-forsyningskjedeangrepene i 2025–2026

Tidslinje for NPM-forsyningskjedeangrep
Tidslinje for de største npm-forsyningskjedeangrepene, 2025–2026 Åtte npm-angrep i forsyningskjeden fra august 2025 til juni 2026. Oransje markerer selvspredende ormekampanjer; grått markerer kompromittering av legitimasjon eller tokener. August 26, 2025 Nx / s1ngularitetskompromiss Publiseringstoken stjålet September 8, 2025 kritt/feilsøkingskapring Phishing-vedlikeholderkonto September 14, 2025 Shai-Hulud-ormen Første selvforplantende orm November 24, 2025 Shai-Hulud 2.0 Mer unnvikende ormvariant mar 2026 Axios nasjonalstatlig skadevare Statlig skadevare, 100 millioner dl/uke april 2026 SAP npm-kompromiss Enterprise-skala ormemønster Kan 11, 2026 TanStack CI/CD kompromiss CI-tokentyveri, 84 versjoner Juni 1, 2026 Red Hat navneområdekompromiss Gyldig SLSA, fortsatt skadelig Selvforplantende orm Kompromittering av legitimasjon eller token
Åtte npm-angrep i forsyningskjeden, august 2025 til juni 2026. Oransje markerer selvspredende ormekampanjer.

Mønsteret bak hvert npm-pakkeforsyningskjedeangrep

Fjern detaljene, og nesten alle hendelser ovenfor følger de samme fire trinnene:

  • Kompromiss med en identitet, ikke et system. En phishing-vedlikeholder, et lekket npm-token, en stjålet GitHub PAT eller et OIDC-token hentet fra CI/CD runner-minne. Angriperen bryter ikke registeret. De låner noens nøkkel til det.
  • Publiser under et navn utviklere allerede stoler på. Ingen typosquatting nødvendig når det virkelige pakkenavnet fungerer. Dette er det som gjør disse angrepene så effektive mot automatiserte oppdateringer pipelines: oppdateringen ser helt legitim ut.
  • Løp før noen anmelder det. Ondsinnede installasjonsskript, obfuskerte nyttelaster eller sovende kode som bare aktiveres under spesifikke forhold, kjører i det øyeblikket npm installasjon kjører, ofte på en utviklers bærbare datamaskin, lenge før en planlagt sikkerhetsskanning noen gang ville sett den.
  • Vedvare og, i økende grad, forplante seg. Shai-Hulud og dens etterkommere bruker legitimasjonen de stjeler til å publisere den neste forgiftede pakken automatisk, og dermed gjøre et enkelt kompromiss om til en kjedereaksjon på tvers av avhengighetsgrafen.

Hvorfor de vanlige forsvarene bommer på det

Mesteparten av AppSec-verktøy ble bygget for å analysere hva som allerede finnes i depotet: kjente CVE-er, statiske kodemønstre, lisensproblemer. Det er nødvendig, men det kommer strukturelt for sent for denne angrepsklassen. Når en skanner ser en avhengighet, kan installasjonsskriptet allerede ha blitt kjørt på en utviklers maskin. Tradisjonelt antivirusprogram og EDR overvåker operativsystemet, ikke pakkeregistre, så de har ikke noe konsept om en "ny npm-utgivelse" som en risikoenhet. Og som TanStack- og Red Hat-hendelsene viser, kan selv byggintegritetsattester som SLSA provenance hjelper ikke når angriperen legitimt har fanget identiteten som signerer dem: signaturen er gyldig, pakken er fortsatt skadelig.

Gapet som disse npm-forsyningskjedeangrepene utnytter, ligger spesifikt ved publisering og installasjon, før en signatur for skadevaren finnes, og før pakken har kjørt noe sted en tradisjonell skanner ville sett etter.

Slik stopper du det neste npm-forsyningskjedeangrepet

Noe av dette er prosessdisiplin som alle ingeniørteam kan ta i bruk i dag:

  • Pin-avhengigheter og commit låsefiler, så en automatisk oppdatering kan ikke stille hente inn en nettopp publisert skadelig versjon.
  • Deaktiver eller sandboks etterinstallasjonsskript som standard trenger de fleste pakker ikke å kjøre vilkårlig kode under installasjon.
  • Håndhev maskinvarestøttet MFA for npm-publiseringskontoer, og lukket den nøyaktige phishing-banen som kompromitterte chalk, debug og Qix sin konto.
  • Omfang og rotasjon CI/CD tokens aggressivt, og behandle OIDC-tokener i runner-minnet som en legitimasjon verdt å beskytte, ikke en implementeringsdetalj.
  • Se etter opplåsings-injeksjons-låsingsmønsteret in CI/CDen regel for grenbeskyttelse deaktivert, en commit presset, regelen aktivert på nytt, alt i et stramt vindu. Det er en tilbakevendende signatur av pipelinekompromiss i forsyningskjeden på alle nivåer.

Der prosessdisiplinen tar slutt

Prosesdisiplin reduserer eksponering. Den fanger ikke opp en ondsinnet pakke i det øyeblikket den publiseres, og den fanger ikke opp en orm som allerede sprer seg gjennom grafen raskere enn et menneske kan prioritere. Det er det laget Xygenis Supply Chain Security er bygget for.

Xygenis MEW (tidlig advarsel om skadelig programvare) analyserer kontinuerlig nye pakker publisert til npm, PyPI og Maven, fanger opp skadelig programvare før en signatur finnes i stedet for etter, og mater bekreftede trusler tilbake til Xygenis egen deteksjonsmotor. Den Avhengighetsbrannmur skanner npm, PyPI, Maven, NuGet og RubyGems i sanntid og blokkerer ondsinnede installasjoner før de når en utviklers maskin eller en build. CI/CD anomali påvisning klokker pipelines for nøyaktig atferdsmønsteret bak hendelser som TanStack-kompromisset, inkludert opplåsings-injeksjons-låsingssekvensen, med et fullstendig revisjonsspor. Og fordi Xygenis AI-drevet triage og utbedring gjelder også funn fra tredjepartsskannere, teamene trenger ikke å rive ut eksisterende verktøy for å tette dette gapet.

Vanlige spørsmål: npm-angrep i forsyningskjeden

Hva er et npm-forsyningskjedeangrep?

Det er et angrep der ondsinnet kode når et målprogram gjennom en klarert npm-avhengighet i stedet for gjennom målets egen kode, vanligvis fordi en angriper kompromitterte en vedlikeholders konto, et publiseringstoken eller en ... CI/CD pipelineidentitet.

Hva var det største NPM-angrepet i forsyningskjeden?

Etter eksplosjonsradius er chalk/debug-kapringen i september 2025 blant de største: 18 pakker med til sammen 2.6 milliarder ukentlige nedlastinger ble kompromittert gjennom en enkelt phishing-vedlikeholderkonto. Av teknisk nyhet var Shai-Hulud det viktigste vendepunktet, som den første selvforplantende ormen i npms historie.

Hvordan starter vanligvis et NPM-pakkeforsyningskjedeangrep?

Nesten alltid med en stjålet identitet: en phishing-vedlikeholder, en lekket publiseringstoken eller en stjålet CI/CD legitimasjon som et OIDC-token hentet fra en løpers minne, snarere enn et teknisk innbrudd i selve npm.

Kan antivirus eller EDR stoppe et NPM-forsyningskjedeangrep?

Ikke pålitelig. EDR overvåker operativsystemet og forstår ikke pakkeregistre, og antivirus er signaturbasert, noe som mislykkes mot skadelig programvare som publiseres før det finnes noen signatur. Å stoppe denne angrepsklassen krever overvåking på publiserings- og installasjonsstedet, ikke bare på endepunktet.

Betyr SLSA provenance eller byggeattestering forhindre dette?

Det beviser pipeline selve ikke ble tuklet med under byggingen. Det beviser ikke at identiteten som utløste byggingen ikke ble kompromittert, slik TanStack- og Red Hat-hendelsene begge demonstrerte med gyldige attester knyttet til skadelige pakker.

Hvordan kan et team oppdage en ondsinnet npm-pakke før den installeres?

Ved å kjøre kontinuerlig, forhåndssignert analyse av skadelig programvare på nylig publiserte pakker, som er det et tidlig varslingssystem for skadelig programvare og en avhengighetsbrannmur er utformet for å gjøre, i stedet for å utelukkende stole på etterfølgende sårbarhetsskanning av kode som allerede finnes i et arkiv.

Hvor skal jeg starte

NPM-angrep i forsyningskjeden avtar ikke, og trendlinjen siden Shai-Hulud peker mot mer automatisering, ikke mindre. Teamene som er best posisjonert for neste kampanje er de som sluttet å behandle hver NPM-installasjon som en rutinehendelse og begynte å følge med på registeret, pipeline, og endepunktet som én tilkoblet angrepsflate.

Xygenis utviklerplan inkluderer MEW og avhengighetsbrannmurdekning for opptil 25 repositorier uten kostnad. Det er et rimelig sted å se hva som allerede ligger i et avhengighetstre.

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