Fikk utviklere til å installere falsk VSCode-utvidelse: – Vær forsiktig!

På 48 timer lastet 1.000 personer ned en falsk Prettier.

Hvor trygg er egentlig den utvidelsen du nettopp installerte i VS Code? 📸: <a href="https://unsplash.com/@afgprogrammer?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Mohammad Rahmani</a> / <a href="https://unsplash.com/photos/_Fx34KeqIEw?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>
Hvor trygg er egentlig den utvidelsen du nettopp installerte i VS Code? 📸: Mohammad Rahmani / Unsplash Vis mer

Sikkerhetsforskere har vist at det er mulig – og ifølge dem ganske enkelt – å distribuere en utvidelse til VS Code som utgir seg for å være en annen utvidelse.

Det skriver DevClass, som siterer en rapport fra sikkerhetsselskapet Aqua Security.

I løpet av 48 timer lastet 1.000 personer ned en falsk versjon av den populære VS Code-utvidelsen Prettier, der navnet på utvidelsen i URL-en var feilstavet til "Pretier":

Den legitime versjonen av Prettier øverst, den falske nederst. Den eneste måten å avsløre bedrageriet på er ved å se i URL-en, der "prettier" og "esbenp" er feilstavet. 📸: Aqua Security / skjermdump
Den legitime versjonen av Prettier øverst, den falske nederst. Den eneste måten å avsløre bedrageriet på er ved å se i URL-en, der "prettier" og "esbenp" er feilstavet. 📸: Aqua Security / skjermdump Vis mer

VS Code er den mest populære kodeeditoren på markedet, med en markedsandel på nesten 75 prosent, ifølge Stack Overflow. Mye av populariteten skyldes antagelig at det finnes et stort antall utvidelser som lar utviklere tilpasse og skreddersy editoren til egne behov. Utvidelsene installeres gjennom VS Code Marketplace, som er enkelt tilgjengelig direkte i editoren eller på web.

Vanskelig å skille ekte og falske

Microsoft skriver at de kjører en virussjekk på alle utvidelser som blir lagt inn på Marketplace, og at ingen utvidelser blir publisert offentlig før dette er gjort. Det skal heller ikke være mulig å utgi seg for å være et annet selskap, som for eksempel Microsoft.

I tillegg er det en blå hake ved utvidelser der den som har publisert utvidelsen har verifisert eierskapet til et domene.

Forskerne hos Aqua Security mener imidlertid det er vanskelig for selv sikkerhetsbevisste utviklere å skille mellom ekte og falske utvidelser. For eksempel kan hvem som helst registrere seg som utgiver av utvidelser med en ny engangs epost-adresse. Navnet på en falsk utvidelse og utgiveren som dukker opp på informasjonssiden om utvidelsen kan være den samme som for en legitim utvidelse.

En automatisert virussjekk kan heller neppe avdekke all skadelig kode.

Har full tilgang

Ettersom VS Code-utvidelser kjøres med samme privilegier som brukeren, kan skadepotensialet være ganske stort om du installerer en utvidelse som inneholder ondsinnet kode.

- Utvidelsen kan installere et hvilket som helst program på datamaskinen, inkludert løsepengevirus, programvare som sletter innhold og mer, skriver sikkerhetsforskerne i sin rapport.

I tillegg kan et skadelig tillegg i teorien endre koden du har lokalt og til og med bruke SSH-nøkkelen din til å endre koden i alle repoene du har liggende på GitHub.

Ekte utvidelser kan være skadelige

Sikkerhetsforskerne fant flere mistenkelige VS Code-utvidelser i Marketplace, men det er uklart hvorvidt disse tilleggene er laget av noen med onde hensikter, eller om det bare er snakk om utviklere som har gjort noen dårlige valg – og dermed introdusert sårbarheter i koden sin.

En av utvidelsene forskerne fant ("code-tester") sendte for eksempel ved hver oppstart en forespørsel til en server, for deretter å eksekvere responsdatene ved hjelp av den temmelig usikre JavaScript-funksjonen eval.

Serverforespørselen ble til og med gjort med HTTP og ikke HTTPS, noe som gjør utvidelsen sårbar for "Man in the Middle"-angrep. Om ikke sårbarhetene er lagt inn med vilje, er det uansett noe som kan utnyttes av andre.

Moralen er altså: Vær bevisst – og kritisk – til hvilke utvidelser du installerer i VS Code, og husk at alle utvidelser kan gjøre akkurat det samme som du selv kan gjøre.