Pass deg for skrivefeil – populære npm-pakker utsatt for «typo­squatting»

Hundrevis av populære JavaScript-biblioteker utnyttet av angripere.

Pass deg for skrivefeil når du skal installere noe fra npm. 📸: <a href="https://unsplash.com/@pinjasaur?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Paul Esch-Laurent</a>, <a href="https://unsplash.com/photos/orange-pink-keyboard-oZMUrWFHOB4?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a>
Pass deg for skrivefeil når du skal installere noe fra npm. 📸: Paul Esch-Laurent, Unsplash Vis mer

Hva var navnet på den npm-pakken igjen? Var det "puppeteer", "pupetier" eller "pupeter"?

Du bør helst være helt sikker før du kjører "npm install". De to sistnevnte npm-pakkene inneholder nemlig skadevare, og er en del av en større typosquatting-kampanje, skriver The Register.

Typosquatting innebærer at angripere forsøker å få utviklere til å installere noe annet enn de hadde til hensikt å installere, i dette tilfellet ved å laste opp pakker til npm-registeret med navn som ligner populære JavaScript-biblioteker.

Noen av disse bibliotekene lastes ned millioner av ganger i uken – som for eksempel Puppeteer som har 3,7 millioner ukentlige nedlastinger.

– Valget om å publisere pakkene sine under versjon 23.6.1 ser ikke ut til å være en tilfeldighet, siden den nyeste versjonen av Puppeteer er 23.6.1 og ble publisert for bare få dager siden, skriver Phylum Research, som står bak funnene.

Helt ny fremgangsmåte

Phylum skriver at de oppdaget typosquatting-kampanjen den 31. oktober, og at den ser ut til å rette seg mot utviklere som bruker en rekke populære npm-pakker. I tillegg til Puppeteer nevnes blant annet Bignum.js – en falsk versjon av bignumber.js som har over 12 millioner nedlastinger.

Totalt har selskapet identifisert 287 npm-pakker med skadevare. De nevnte pakkene ser i skrivende stund ut til å ha blitt fjernet fra npmjs.com.

Dette angrepet skiller seg ifølge Phylum og The Register fra tidligere angrep ved at de bruker Ethereum-baserte smartkontrakter til såkalte "command-and-control" (C2) -operasjoner. Smartkontrakter er programkode som ligger på Ethereum-blokkjeden.

Phylum har "de-obfuskert" og analysert koden og funnet ut at den laster ned kode som kjøres på "offerets" maskin. Men siden dette gjøres ved å interagere med smartkontrakter i en blokkjede finner man ikke IP-adressen koden lastes ned fra i kildekoden. Du finner en detaljert beskrivelse av hvordan det hele fungerer her.

Skadevaren gir ifølge Phylum angriperne kontroll over maskinen din.

Nesten umulig å stenge ned

Også sikkerhetsselskapet Socket har gått ut og advart mot den pågående typosquat-kampanjen.

I et blogginnlegg skriver Socket at bruk av Ethereum-smartkontrakter i praksis gjør det nesten umulig å stenge ned angripernes infrastruktur. Tidligere kunne man via kildekoden finne ut hvilke IP-adresser skadevaren "ringte tilbake til" og stenge ned serverne eller blokkere dem, det kan man ikke nå.

– I stedet for å bruke konvensjonelle "command and control"-servere som kan blokkeres eller tas ned, utnytter disse angriperne blokkjedenes desentraliserte natur for å beholde kontroll over skadevaren, heter det i blogginnlegget.

Det er ikke bare npm-pakker som er utsatt for typosquatting – dette har også vært et problem med VS Code-tillegg, som du kan lese mer om her: