Softwareketen
Wat is slopsquatting?
Slopsquatting is een aanval waarbij pakketnamen worden geregistreerd die AI-codeassistenten hebben verzonnen. Stelt een model een pakket voor dat niet bestaat, dan kan een aanvaller onder die naam malware publiceren, en de volgende ontwikkelaar of agent die het voorstel volgt, installeert die. Het is typosquatting zonder typefout.
Bijgewerkt op
Waar de naam vandaan komt
De term is een woordspeling op typosquatting, met "slop" in de betekenis van AI-output van lage kwaliteit. Hij wordt toegeschreven aan Seth Larson, security developer-in-residence bij de Python Software Foundation, in 2025.
Hoe pakkethallucinatie ontstaat
Een taalmodel schrijft wat waarschijnlijk lijkt. Een plausibele naam, zoals die van een bibliotheek voor een veelvoorkomende taak, kan even waarschijnlijk lijken als een echte, dus het model schrijft soms een import- of installatiecommando voor een pakket dat nooit iemand heeft gepubliceerd.
Een studie die op USENIX Security 2025 werd gepresenteerd testte 16 populaire modellen op 576.000 codevoorbeelden. Het aandeel gehallucineerde pakketten was minstens 5,2% bij commerciële modellen en 21,7% bij open-sourcemodellen, met 205.474 unieke verzonnen namen. De onderzoekers omschreven het probleem als hardnekkig en systemisch.
Hoe een slopsquatting-aanval werkt
- De namen verzamelen. De aanvaller stelt modellen veelvoorkomende programmeervragen en noteert welke pakketten niet bestaan.
- Ze publiceren. Hij registreert die namen op npm of PyPI, met een werkend pakket dat een payload verbergt.
- Wachten. Een ontwikkelaar plakt het voorstel, of een coding agent voert de installatie zelfstandig uit.
- Draaien. Een installatiescript wordt uitgevoerd op de machine van de ontwikkelaar of in CI, met toegang tot tokens en secrets.
Slopsquatting vs typosquatting
| Typosquatting | Slopsquatting | |
|---|---|---|
| Bron van de fout | Iemand vertypt zich in een naam | Een model verzint een naam |
| De naam | Lijkt op een echt pakket | Plausibel, zonder echt pakket erachter |
| Wie het installeert | Een ontwikkelaar | Een ontwikkelaar, of een agent zonder dat een mens de naam leest |
| Waarom detectie moeilijker is | Controles op lookalikes kunnen het vergelijken met populaire namen | Er is mogelijk geen populaire naam om het mee te vergelijken |
Waarom coding agents de inzet verhogen
Bij een chatassistent leest een mens het voorstel voordat het wordt uitgevoerd. Een coding agent kan in één stap de code schrijven, de afhankelijkheid toevoegen en de installatie uitvoeren. De menselijke controle die veel slechte namen tegenhoudt, is weg, en de installatie gebeurt waar de agent ook draait, vaak met de inloggegevens van de ontwikkelaar of binnen CI. Zie voor het bredere plaatje beveiliging voor AI-ondersteunde ontwikkeling.
Hoe u zich beschermt tegen slopsquatting
- Controleer voordat u installeert. Ga na of een voorgesteld pakket bestaat, een echte repository heeft en een geschiedenis heeft. Een pakket dat vorige week is gemaakt, verdient argwaan.
- Beoordeel lockfile-wijzigingen. Nieuwe afhankelijkheden moeten zichtbaar zijn in pull requests, wie of wat de code ook heeft geschreven. Zie wat een lockfile vastlegt.
- Beperk wat agents kunnen doen. Eis goedkeuring voordat een agent pakketten installeert, en laat agents draaien in een sandbox zonder productie-inloggegevens.
- Wacht met nieuwe pakketten. Een regel tegen pakketten die de afgelopen dagen zijn gepubliceerd, helpt.
- Schakel installatiescripts uit waar uw build dat toelaat.
- Beperk uitgaand verkeer van builds. Een pakket dat de aanvaller niet kan bereiken, kan uw secrets nergens naartoe sturen. Zie egressbeleid voor GitHub Actions.
Een nieuw slopsquatting-pakket heeft geen advisory, dus een SCA-scan of npm audit rapporteert het niet. Zie voor de volledige lijst met maatregelen best practices voor ketenbeveiliging van software.
Hoe CRACI de schade beperkt
CRACI detecteert geen nieuwe kwaadaardige pakketten, dus controleer ze met andere tools. Wat het wel doet, is de schade beperken wanneer er één uw build bereikt. Als uw GitHub Actions-runner handhaaft het een egressbeleid dat verbindingen blokkeert die de build niet nodig heeft, en dat beschermt u zelfs als niemand de aanval eerder heeft gezien. Het legt ook elk pakket vast dat elke job heeft opgehaald, dus zodra een slecht pakket bekend is, ziet u welke builds het hebben binnengehaald.
Slopsquatting: veelgestelde vragen
Wat is slopsquatting?
Een aanval waarbij iemand pakketnamen registreert die AI-codeassistenten verzinnen, zodat iedereen die het voorstel volgt de code van de aanvaller installeert.
Wie bedacht de term slopsquatting?
Hij wordt toegeschreven aan Seth Larson, security developer-in-residence bij de Python Software Foundation, in 2025.
Wat is een gehallucineerd pakket?
Een pakketnaam die een AI-model voorstelt terwijl zo'n pakket niet bestaat. Uit onderzoek blijkt dat dit voorkomt in een aanzienlijk deel van de gegenereerde codevoorbeelden.
Hoe verschilt slopsquatting van typosquatting?
Typosquatting rekent erop dat iemand zich vertypt in de naam van een echt pakket. Slopsquatting rekent erop dat een model een naam verzint die nooit heeft bestaan, dus er is geen echt pakket om het mee te vergelijken.
Hoe voorkomt u slopsquatting?
Controleer of voorgestelde pakketten echt zijn, beoordeel nieuwe afhankelijkheden in pull requests, eis goedkeuring voordat agents iets installeren en beperk uitgaand verkeer van builds.
Dam het pakket in dat niemand wilde installeren
Blokkeer de uitgaande verbindingen die uw builds niet nodig hebben, en bewaar een vastlegging van elk pakket dat ze ophaalden.
Demo boeken