Cybersikkerhet

NPM Supply-Chain Attack: Hva skjedde og hvordan fikser du det

mm
Legg til Securities.io blant dine foretrukne kilder på Google
Opplysning: Securities.io kan motta betaling når du bruker lenker til produkter vi vurderer. Dette påvirker ikke våre redaksjonelle vurderinger. Vi er ikke en registrert investeringsrådgiver; dette er ikke investeringsråd. Les vår affiliateopplysning.
Digital vault being cracked open

Kryptovalutaindustrien og verden generelt opplevde nylig et skremmende øyeblikk da sikkerhetseksperter identifiserte et leverandørkjedeangrep mot Node.js-økosystemet som allerede hadde kompromittert opptil 18 npm-pakker.

Det er fordi disse få pakkene får milliarder av nedlastinger per uke.

Programvarepakker brukes til å distribuere tredjepartsprogramvare. Ofte hentet fra en ekstern kilde via en pakkehåndterer, inkluderer de vanligvis kildekode, biblioteker, dokumentasjon og andre filer som kreves for å bygge og kjøre programvaren.

Nå utgir en pakke som inneholder skadelig programvare seg for å være en legitim, men den er faktisk ondsinnet med hensikt å infisere programvare. Når den kommer inn i et system, kan skadelig kode i den ondsinnede pakken endre filer, stjele data, og til og med overta et helt system for å gjøre som angriperen ønsker.

Selv om andre store open source-økosystemer som Python og .NET er like sårbare for angrep, gjør den brede bruken av JavaScript det spesielt utsatt for cyberkriminelle.

Node.js er et åpen kildekode kjøremiljø bygget på toppen av JavaScript som gjør det mulig for utviklere å kjøre koden sin utenfor nettleseren. 

Tradisjonelt ble det tolkte programmeringsspråket, hovedsakelig kjent for å gjøre websider interaktive, primært brukt til klient-side webutvikling i nettlesere, men Node.js utvidet JavaScripts bruk til server-side og andre applikasjoner.

Med Node.js kan utviklere bygge raske og skalerbare applikasjoner som webservere, API-er, verktøy og mer.

Den drar nytte av et omfattende økosystem av åpen kildekode-biblioteker og verktøy tilgjengelig via npm, som forenkler utvikling og gir løsninger for ulike funksjonaliteter.

Node Package Manager, eller npm, er et viktig verktøy i JavaScript-utvikling, som brukes til å finne, bygge og administrere kodepakker. Det hjelper med å håndtere avhengigheter, muliggjør samarbeid og strømlinjeformer arbeidsflyter. 

Dette verdens største programvareregisteret inneholder over 3 millioner kodepakker og er helt gratis å bruke. 

Alle kan laste ned alle offentlige npm-programvarepakker uten å måtte registrere seg. Åpen kildekode-utviklere bruker npm for å dele og låne programvare, mens mange organisasjoner bruker det for å administrere privat utvikling.

For å installere npm på datamaskinen din, må du først installere Node.js.

Pakkehåndtereren for JavaScript vedlikeholdes av npm, Inc., et datterselskap av GitHub, verdens ledende plattform for programvareutvikling, som har vært eid av Microsoft (MSFT ) siden 2018, da teknologigiganten kjøpte det for 7,5 milliarder dollar for å styrke utviklere. 

Forrige uke ble verktøyet som mer enn 17 millioner utviklere verden over stoler på, kompromittert, noe som skapte panikk på Internett, men bare i et kort øyeblikk, da eksperter oppdaget det tidlig, og angriperne ikke klarte å stjele mer enn $50. Her er hva som skjedde!

Hva skjedde i NPM Supply-Chain-angrepet (Sept 2025)

I det massive leverandørkjedeangrepet som fant sted i JavaScript-økosystemet, kompromitterte hackere en rekke npm-pakker med skadelig programvare. Målet med angrepet var å stjele digitale eiendeler fra intetanende brukere. 

Spesielt ble npm-kontoen til utvikleren ‘qix’ hacket. 

Qix er en åpen kildekode-vedlikeholderkonto som ble kompromittert gjennom et phishing-angrep. Dette tillot angriperne å infisere 18 populære npm-pakker med ondsinnet kode. Til sammen blir disse pakkene lastet ned hundrevis av millioner ganger hver uke, ettersom de er innebygd i rammeverk, utviklerverktøy og produksjonstjenester.

De berørte pakkene inkluderer chalk, debug, color-name, wrap-ansi og ansi-styles, som er noen av de mest populære, mens mindre populære npm-pakker som ble påvirket er backslash, chalk-template og has-ansi.
Swipe to scroll →

Pakke Kompromittert versjon(er) Handling
debug 4.4.2 Fest til før-4.4.2; reinstallere; skanne bygglogger
chalk 5.6.1 Fest til før-5.6.1; distribuer ren bygg på nytt
ansi-styles 6.2.2 Fest til før-6.2.2; revidere nedstrøms avhengigheter
ansi-regex 6.2.1 Fest til før-6.2.1
strip-ansi 7.1.1 Fest til før-7.1.1
wrap-ansi 9.0.1 Fest til før-9.0.1
color, color-convert, color-string, color-name 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 Fest til før-listede versjoner; lås på nytt og bygg på nytt
has-ansi, supports-color, slice-ansi 6.0.1 / 10.2.1 / 7.1.1 Fest til før-listede versjoner
backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 Fest til før-listede versjoner
duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 Unngå listede versjoner; vent på leverandøroppdateringer

Alle de berørte pakkene har siden blitt fjernet av npm-registeret. Ved å kompromittere en høyt verdsatt åpen kildekode-vedlikeholder, har angrepet gjort tilliten i åpen kildekode-økosystemet (OSS) til et våpen, ettersom utviklere ikke reviderer hver avhengighet de bruker. Det de gjør er å stole på bruken og omdømmet, samt registrenes sikkerhet.

NPM Supply Chain Attack Tweet

For å kompromittere pakkene tok hackeren phishing-tilnærmingen. Angriperen startet en phishing-kampanje for å kapre kontoen til en npm-pakkevedlikeholder, og injiserte deretter sin ondsinnede kode i npm-pakker før de lastet opp de kompromitterte versjonene.

Utvikler Josh Junon var den som falt offer for en phishing-e-post som var en del av en større kampanje som etterlignet npm. Så brukte angriperne et phishing-nettsted som etterlignet npm sin påloggingsside for å stjele hans påloggingsinformasjon. Og så snart angriperne kom inn, låste de Junon ute ved å endre e-postadressen som var registrert for Junons npm-konto.

“Hei, ja jeg ble hacket. Beklager alle sammen, veldig pinlig,” skrev Junon på HackerNews, og bekreftet hendelsen. Han forklarte før han presiserte at kun npm var berørt:

“Virket legitimt ved første øyekast. Ikke noen unnskyldninger, jeg hadde bare en lang uke og en panisk morgen og prøvde bare å krysse av noe fra oppgavelisten min. Begikk feilen med å klikke på lenken i stedet for å gå direkte til nettstedet.”

Phishing-e-posten kom fra support [at] npmjs [dot] help og brukte en skremseltaktikk for å få Junon til å klikke på lenken, som omdirigerte ham til phishing-nettstedet.

Ved å late som de var fra npm, ba angriperne ham om å oppdatere sine 2FA-legitimasjoner, og hevdet at de var en del av en “pågående forpliktelse til kontosikkerhet,” og at de ber om det samme fra alle brukere.

“Våre registre viser at det har gått mer enn 12 måneder siden din siste 2FA-oppdatering,” stod det i phishing-e-posten, og la til at de med “utdaterte 2FA-legitimasjoner vil bli midlertidig låst fra 10. september 2025 for å forhindre uautorisert tilgang.”

Den samme e-posten ble også brukt til å målrette andre pakkevedlikeholdere og utviklere.

Gitt den brede bruken av de berørte pakkene, kunne dette ha blitt en stor hendelse hvis det ikke hadde blitt håndtert så raskt.

Som Charlie Erickson fra Aikido Security noterte i en rapport, unngikk utallige nettsteder alvorlig skade fra dette angrepet, ettersom npm-pakkene inneholdt kode som ville kjøres på en nettsides klient.

“Denne skadelig koden er i hovedsak en nettleserbasert avlytter som kaprer både nettverkstrafikk og applikasjons-APIer,” sa han i sin angrepsanalyse. “Det som gjør den farlig er at den opererer på flere lag: Endrer innhold som vises på nettsteder, tukler med API-kall, og manipulerer hva brukernes apper tror de signerer. Selv om grensesnittet ser korrekt ut, kan den underliggende transaksjonen bli omdirigert i bakgrunnen.”

Den ondsinnede koden var designet for å stjele kryptovaluta. Angriperen skanner strenger for kryptolommebokadresser, noe som setter de som jobber med kryptorelaterte applikasjoner i fare.

Malwaren jobbet stille i nettleseren uten at brukeren visste det, omskrev lommebokadresser og omdirigerte midler til kontoer som kontrolleres av angriperen. Den kaprer og manipulerer direkte transaksjoner på Bitcoin, Ethereum, Solana, Tron, Litecoin, og Bitcoin Cash på et kompromittert system.

For å gjøre dette, overvåket den ondsinnede koden nettleserens API-er som fetch og lommebokgrensesnitt som window.ethereum.

Den ondsinnede koden “avlytter stille kryptovaluta- og Web3-aktivitet i nettleseren, manipulerer lommebokinteraksjoner, og omskriver betalingsdestinasjoner slik at midler og godkjenninger blir omdirigert til angriper-kontrollerte kontoer uten noen åpenbare tegn for brukeren,” sa Erickson.

Når den er ferdig, dekker malwaren sine spor mens den fortsatt holder seg i bakgrunnen for å fange opp eventuelle fremtidige transaksjoner på offerets nettverk.

Gitt alvoret i angrepet, advarte Charles Guillemet, CTO i hardware-lommebokleverandøren Ledger, kryptobrukere om å være forsiktige når de bekrefter on-chain-transaksjoner. De berørte pakkene, han noterte i innlegget, har allerede blitt lastet ned over 1 milliard ganger.

Den omfattende leverandørkjedeangrepet, delte han med fellesskapet, retter seg mot kryptolommebøker med den ondsinnede nyttelasten “stille bytter kryptoadresser i sanntid for å stjele midler.”

“Hvis du bruker en hardware-lommebok, vær oppmerksom på hver transaksjon før du signerer, så er du trygg. Hvis du ikke bruker en hardware-lommebok, avstå fra å gjøre noen on-chain-transaksjoner for nå.”

– Guillemet

I mellomtiden tok 0xngmi, den pseudonyme grunnleggeren av DefiLlama, en kryptoanalyseplattform, til X for å dele at “det effektive påvirkningsområdet er mye mindre enn ‘alle nettsteder'”, ettersom kun de prosjektene som ble oppdatert etter at den malware-infiserte npm-pakken ble publisert kan være i fare. Likevel, “det er bare tryggere å unngå å bruke kryptonettsider til dette er over og de har ryddet opp i de dårlige pakkene,” la han til.

Til slutt klarte hackerne bare å stjele $50 i kryptovaluta fra et så massivt leverandørkjedeangrep. De $50 omfatter Ether og en rekke meme-mynter som Brett og Andy, blant andre.

Fikk bare $50?

 

Imidlertid var det mer flaks enn noe annet ettersom kryptointelligensplattformen Security Alliance noterte på X:

“Dette kunne ha vært mye verre. En stealth-implementert bakdør som målrettet utviklermaskiner med fokus på vedvarende tilstedeværelse, kunne ha forblitt under radaren i ukjent hvor lang tid.”

Siden da har mange kryptapplikasjoner som Aave, Uniswap, Ledger, Jupiter, MetaMask, Phantom, Blast og andre varslet sine brukere om at de er trygge fra npm-angrepet.

Selv om angrepet har mislyktes, er det en kraftig påminnelse for utviklere om at for maksimal sikkerhet må de gå utover sin egen kodebase. Selv programvareavhengigheter som har blitt stolt på og bredt brukt kan også bli kompromittert når som helst.

Her må kodeplattformer som GitHub og npm også gjøre mer for å sikre sikkerheten til bredt brukte pakker.

“Mer populære pakker bør kreve attestasjon om at de kom fra pålitelig proveniens og ikke bare tilfeldig fra et sted på Internett.”

– Eriksen

En av de beste tingene npm kunne gjort

 

Kompromittering av kodearkiv kan til slutt være ekstremt katastrofalt for utviklere, som kan ende opp med å avbryte hele prosjektene sine som følge av en slik hendelse.

Hendelsen er et bevis på hvor sammenkoblet og sårbar dagens programvareøkosystem er for utnyttelse. En enkelt kompromittert konto kan gi angripere enorm rekkevidde, noe som gjør det kritisk å implementere forbedrede sikkerhetstiltak i leverandørkjeden på hvert trinn i utviklingsprosessen.

Sikring mot den raskt økende trusselen fra skadelig programvare 

Med trusler fra skadelig programvare på vei opp og angrepene blir mer avanserte og målrettede, er det viktig for brukere å være utdannet og alltid være årvåkne på tvers av alle plattformer.

Ondsinnet programvare eller malware er faktisk en av de mest vanlige typene cyberangrep. Her utvikler angripere en programvarekode eller dataprogram med hensikt å få tilgang til eller forårsake skade på offerets datamaskin uten at offeret vet at de har blitt kompromittert.

Hvert år skjer milliarder av malware-angrep over hele verden på alle slags enheter og operativsystemer. Ved å bruke malware holder cyberkriminelle ikke bare enheter, men hele bedriftsnettverk som gissel.

Ved å få uautorisert tilgang til offerets enheter, stjeler angripere digitale eiendeler og sensitiv data, inkludert påloggingsinformasjon, kredittkortnumre og annen verdifull informasjon. Malware-angrep retter seg i økende grad mot bedrifter fordi selskaper har betydelige mengder personlig data som hackere kan utnytte for å presse store pengebeløp.

Data viser at flertallet (59%) av organisasjoner ble utsatt for et slikt angrep i 2024. Selv mindre selskaper er ikke trygge, med 47% av dem rammet av løsepengevirus i fjor. I mellomtiden steg gjennomsnittlig løsepengerbetaling med 500% til $2 millioner i denne perioden.

Den gjennomsnittlige kostnaden for gjenoppretting etter et malware-angrep har også steget til så høyt som $2,73 millioner. En av de største truslene Internett står overfor i dag er malware, som kan ta ulike former med det eneste formål å skade datasystemer og deres brukere.

Virus, løsepengevirus, trojanere, ormer, spionprogrammer, adware og kryptojacking er alle forskjellige typer malware. Alle disse er designet for å få uautorisert tilgang til et nettverk eller skade datasystemer.

Når det gjelder rotårsakene til angrep, er den største med 32% at angripere utnytter sårbarheter, etterfulgt av kompromitterte legitimasjoner (29%) og deretter ondsinnede e-poster (23%).

Nå, hvordan kan man beskytte seg mot denne stadig tilstedeværende trusselen? Det første og enkleste steget er alltid å holde datamaskinen og programvaren oppdatert. I tillegg er det kritisk at du ikke klikker på alt på Internett. Spesielt som kryptobruker må man være mistenksom overfor lenker og absolutt ikke laste ned noe du ikke er sikker på.

Det samme gjelder for e-postvedlegg. Vær forsiktig med å åpne mistenkelige e-poster og prøv å holde fil-deling til et minimum. Det er fornuftig å ha antivirusprogramvare installert på enheten din.

Selv om det er uunngåelig, kan organisasjoner også forberede seg mot malware-angrep ved å styrke forsvaret. De mest rett frem måtene å gjøre dette på er ved å bruke sterke passord, multifaktorautentisering og VPN-er, som enkeltpersoner også kan bruke for å beskytte seg mer effektivt.

Organisasjoner må kontinuerlig overvåke enheter for tegn på mistenkelig aktivitet, vurdere eventuelle sårbarheter og utføre penetrasjonstesting. Sikkerhetskopier av sensitiv data på disker som er frakoblet nettverket, vil imidlertid hjelpe i gjenoppretting fra malware-angrep.

Ansatte må bli opplært til å oppdage slike angrep bedre og reagere raskt ved å ha hendelsesresponsplaner og vite hvem de skal kontakte ved mistanke om en malware-trussel.

Ved å bruke zero trust-nettverksarkitektur kan selskaper sikre at ingen får tilgang til data eller eiendeler de ikke skal ha. I zero trust blir brukere aldri stolt på, men alltid verifisert.

I dagens hyperdigitale liv kan disse praksisene hjelpe en person med å beskytte seg mot farene i en stadig mer sammenkoblet verden.

Når det gjelder å beskytte seg mot ondsinnede pakker, gjelder de generelle sikkerhetsanbefalingene for malware også for npm-angrep, men selvfølgelig er det tilleggsspesifikke forholdsregler man bør ta på grunn av økosystemets åpne natur, hyppige gjenbruk av små pakker og store avhengighetstrær.

For å beskytte deg mot denne alvorlige trusselen, må du alltid dobbeltsjekke at pakken er pålitelig før du installerer den. Å verifisere pakkens integritet vil sikre at ditt avhengighetstre ikke har blitt tuklet med.

Når du ser etter tegn på ugyldighet, i tillegg til kilde og eierskap til pakken, undersøk eventuelle endringer gjort av vedlikeholderne. Du kan også se på hva pakkene gjør og behovet for dem.

Bruk sikkerhetsverktøy som kontinuerlig overvåker nye trusler og gir handlingsrettet råd for å dempe situasjonen. npm audit-sjekker kan kjøres for kjente sårbarheter i prosjektets avhengigheter. Implementering av automatiserte sikkerhetsskanninger før utrulling vil sikre at kun gjennomgått og godkjent kode kommer i produksjon.

Nå, for å beskytte deg mot det siste malware-angrepet, må du pinne berørte pakker til deres sikreste versjoner før kompromitteringen ved hjelp av overrides-funksjonen i package.json.

Kjør npm audit eller bruk programvarekomposisjonsanalyse (SCA)-verktøy for å sjekke etter berørte versjoner i ditt avhengighetstre. Overvåk for indikatorer på kompromittering (IoC) ved å sjekke bygglogger, utviklermiljøer og utgående trafikk for mistenkelig aktivitet.

Klikk her for en liste over de fem beste selskapene som kjempet tilbake mot cyberangrep.

Avsluttende tanker: Styrking av åpen kildekode-avhengigheter

Truslene på internett øker stadig og blir mer sofistikerte. 

Med angripere som vender seg mot nye angrepsvektorer og retter seg mot underbemiddede prosjekter, blir det avgjørende for utviklere, bedrifter og brukere å ikke vente på at trusselen viser seg før de handler, men å ta proaktive tiltak fordi ett svakt ledd kan slå ned et helt system.

Det er ved å holde seg informert om nye trusler og kontinuerlig revidere programvareleverandørkjeder og overvåke trusler at vi virkelig kan beskytte oss mot de stadig utviklende cyberrisikoene.

Klikk her for en liste over de fem beste offentlige selskapene som betalte cyberangripere.

Gaurav startet med å handle kryptovalutaer i 2017 og har siden falt dypt forelsket i krypto-rommet. Hans interesse for alt som har med krypto å gjøre, har gjort ham til en skribent som spesialiserer seg på kryptovalutaer og blockchain. Snart fant han seg selv arbeidende med krypto-selskaper og mediekanaler. Han er også en stor fan av Batman.