123% meer gemelde CVE's per dag in 2026 dan vorig jaar.

Softwareketen

Wat is typosquatting?

Typosquatting is een aanval waarbij een aanvaller een naam registreert die lijkt op een populaire naam en wacht tot iemand zich vertypt. Het begon met websitedomeinen. In software publiceren aanvallers kwaadaardige pakketten met namen als crossenv in plaats van cross-env, en één typefout in een installatiecommando voert hun code uit op de machine van een ontwikkelaar of in een CI-pipeline.

Bijgewerkt op

Hoe typosquatting met pakketten werkt

  1. Een doelwit kiezen. De aanvaller kiest een populair pakket, waar zelfs een klein percentage typefouten flink oploopt.
  2. Een bijna gelijke naam registreren. Die verschilt door een letter, een ontbrekend koppelteken, een verwisseld teken of een geloofwaardig achtervoegsel.
  3. De payload verbergen. Het pakket omhult vaak het echte pakket, zodat alles blijft werken en niets verdacht lijkt.
  4. Draaien bij installatie. Pakketbeheerders kunnen tijdens de installatie scripts uitvoeren, dus de code draait voordat iemand die aanroept, met toegang tot omgevingsvariabelen en tokens.
  5. Stelen en verspreiden. Met gestolen inloggegevens kan de aanvaller meer pakketten publiceren of meer systemen bereiken.

Veelgebruikte technieken bij typosquatting

Techniek Echt pakket Lookalike
Ontbrekend scheidingsteken cross-env crossenv
Toegevoegd achtervoegsel jquery jquery.js
Verwisselde letters ffmpeg ffmepg
Weggelaten letter mongoose mongose
Toegevoegd voorvoegsel sqlite node-sqlite

Alle bovenstaande lookalikes komen uit één echte campagne, die hierna wordt beschreven.

Een echt voorbeeld: crossenv

In 2017 publiceerde een npm-gebruiker met de naam hacktask het pakket crossenv, als imitatie van het populaire cross-env. Het behield het gedrag van het echte pakket en stuurde daarnaast de omgevingsvariabelen van iedereen die het installeerde naar de server van de aanvaller. In een build staan tokens juist in omgevingsvariabelen. De analyse van Snyk toonde aan dat het een van meer dan 30 kwaadaardige pakketten van hetzelfde account was, en dat het ongeveer twee weken onopgemerkt bleef tot een engineer het ontdekte.

Waarom AI-codeassistenten het erger maken

Een AI-assistent kan een pakket voorstellen dat niet bestaat. Registreert een aanvaller die naam, dan installeert de volgende die het voorstel accepteert de malware. Dit wordt soms slopsquatting genoemd. Geautomatiseerde agents die afhankelijkheden installeren zonder dat een mens de naam leest, maken het risico nog groter.

Typosquatting vs dependency confusion

Beide misbruiken de manier waarop pakketnamen worden opgelost, maar de fout is een andere.

Typosquatting Dependency confusion
Wiens fout Iemand vertypt zich in een naam Een buildsysteem kiest de verkeerde registry
De naam Lijkt op een openbaar pakket Identiek aan een intern privépakket
Hoe het slaagt Iemand installeert het per ongeluk Een openbare versie met een hoger nummer krijgt voorrang
Belangrijkste verdediging Lockfiles en review van nieuwe afhankelijkheden Scoped packages en een registryconfiguratie die interne namen privé houdt

Dependency confusion werd in 2021 bekend toen onderzoeker Alex Birsan het gebruikte om code te laten draaien binnen meer dan 35 organisaties, waaronder Apple, Microsoft en PayPal, in het kader van bugbountyprogramma's of met toestemming.

Hoe u typosquatting voorkomt

  • Installeer in CI vanuit een lockfile. Gebruik npm ci en de equivalenten ervan. Een typefout kan dan alleen binnenkomen via een beoordeelde wijziging. Zie wat een lockfile wel en niet doet.
  • Beoordeel nieuwe afhankelijkheden in pull requests. Kijk naar de naam zelf, en lees een diff van de lockfile in plaats van die over te slaan.
  • Controleer vóór het installeren. Vergelijk de naam met de eigen documentatie van het project, en wees op uw hoede bij een pakket met weinig downloads, een recente eerste publicatie of geen link naar een repository.
  • Beperk installatiescripts. Schakel ze uit waar uw build dat toelaat.
  • Wacht voordat u nieuwe pakketten in gebruik neemt. Kwaadaardige pakketten worden vaak kort na hun verschijnen gevonden en verwijderd.
  • Beperk wat een build kan bereiken. Een build die alleen met bekende hosts kan communiceren, kan uw secrets niet naar een aanvaller sturen, zelfs niet als er een kwaadaardig pakket draait. Zie egressbeleid voor GitHub Actions.
  • Controleer elk AI-voorstel. Ga na of een pakket bestaat en of het het pakket is dat u bedoelde, voordat u het installeert.

Houd er rekening mee dat een typosquat op de dag dat hij verschijnt geen CVE heeft, dus een SCA-scan op basis van advisories markeert hem niet. Zie voor meer best practices voor ketenbeveiliging van software.

Typosquatting met domeinen

De oorspronkelijke vorm van de aanval, ook wel URL-hijacking genoemd, registreert een domein zoals een verkeerd gespelde bank- of inlogpagina. Bezoekers die het adres verkeerd typen, komen terecht op een kopie van de site die is gemaakt om inloggegevens te stelen of malware te verspreiden. De verdediging is anders: registreer veelvoorkomende verschrijvingen van uw eigen domeinen, monitor op registraties die erop lijken en gebruik een wachtwoordmanager, die op het verkeerde domein niets automatisch invult.

Hoe CRACI de schade beperkt

CRACI detecteert geen nieuwe kwaadaardige pakketten op basis van gedrag of reputatie, dus gebruik daarvoor een package firewall of een tool voor gedragsanalyse. Wat het wel doet, is ze indammen. Als uw GitHub Actions-runner handhaaft het een egressbeleid dat verbindingen blokkeert die uw build niet nodig heeft, zodat een pakket dat secrets steelt, ze nergens naartoe kan sturen, zelfs als niemand de aanval eerder heeft gezien. Elk pakket dat een job heeft opgehaald, is vastgelegd, dus zodra een aanval bekend is, ziet u welke builds het hebben binnengehaald, en releases met een gepubliceerde CVE worden gemarkeerd en kunnen door policy gates worden geblokkeerd. Zie wat is een aanval op de softwareketen.

Typosquatting: veelgestelde vragen

Wat is typosquatting in eenvoudige woorden?

Het is een naam registreren die bijna lijkt op een populaire naam, zoals die van een pakket of website, en wachten tot iemand zich vertypt. De lookalike levert vervolgens malware of steelt inloggegevens.

Wat is een voorbeeld van typosquatting?

In 2017 imiteerde het npm-pakket crossenv het populaire cross-env. Het werkte als het echte pakket en stuurde daarnaast de omgevingsvariabelen van gebruikers naar de server van de aanvaller.

Wat is het verschil tussen typosquatting en dependency confusion?

Typosquatting rekent erop dat iemand zich vertypt in de naam van een openbaar pakket. Dependency confusion gebruikt de exacte naam van een privépakket en rekent erop dat een buildsysteem in plaats daarvan een openbare versie ophaalt.

Is typosquatting illegaal?

Malware publiceren of inloggegevens stelen is op de meeste plaatsen illegaal. Typosquatting met domeinen kan ook het merkenrecht schenden, zoals de Amerikaanse Anticybersquatting Consumer Protection Act.

Wat is slopsquatting?

Een variant waarbij een aanvaller een pakketnaam registreert die AI-assistenten vaak verzinnen. Iedereen die het voorgestelde pakket installeert, krijgt de code van de aanvaller.

Hoe detecteert u typosquatting?

Beoordeel nieuwe afhankelijkheden op naam en metadata, en gebruik een tool die pakketnamen vergelijkt met populaire namen of gedrag analyseert. Scanners op basis van advisories helpen pas als het pakket is gemeld.

Dam het pakket in dat u niet hebt onderschept

Blokkeer de uitgaande verbindingen die uw builds niet nodig hebben, en leg elk pakket vast dat ze ophaalden.

Demo boeken