AI-codeassistenten genereren pakketnamen die niet bestaan, en aanvallers maken van deze hallucinaties echte risico's voor de toeleveringsketen.
Toen securityonderzoeker Bar Lanyado van Lasso Security een AI-gestuurde programmeertool vroeg om een Python-client, suggereerde het model het installeren van huggingface-cli. Het pakket is een spookpakket; de legitieme bibliotheek bestaat onder de naam huggingface_hub. Om het gevaar aan te tonen, registreerde Lanyado de valse naam op de Python Package Index (PyPI) als een lege placeholder. Binnen drie maanden had de placeholder meer dan 30.000 downloads verzameld, verscheen hij in publieke documentatie en kwam hij zelfs voor in codevoorbeelden die uit de repositories van Alibaba waren gehaald.
Hoe een spookpakket een echte dreiging wordt
- Prompt → hallucinatie – Een ontwikkelaar vraagt een AI om hulp. Het model, getraind op ruisachtige internetdata, verzint een plausibel klinkende pakketnaam.
- Kopiëren en plakken → documentatie – De suggestie belandt in een README, een Stack Overflow-antwoord of een interne wiki. Eenmaal opgeschreven, verspreidt de naam zich binnen de community.
- Code-integratie – De ontwikkelaar, die de AI vertrouwt, voegt de naam toe aan een requirements-bestand en pusht dit naar productie.
Waarom bestaande verdedigingsmechanismen het probleem missen
Statische analyse-tools en kwetsbaarheidsscanners zoeken naar bekende CVE's en naar bibliotheken met een releasegeschiedenis. Een onlangs gepubliceerd pakket met nul downloads vóór de AI-suggestie heeft geen CVE, geen reputatie en lijkt daarom veilig. De standaardcontrole "is de versie kwetsbaar?" geeft 'false' terug, wat ontwikkelaars een vals gevoel van veiligheid geeft.
Wat het experiment bewijst
- Door AI verzonnen namen bereiken productie – De meer dan 30.000 downloads laten zien dat ontwikkelaars deze spookpakketten daadwerkelijk binnenhalen.
- Hallucinaties worden documentatie – Zodra een valse naam in een publieke handleiding verschijnt, kan deze onbepaald blijven bestaan en de fout verspreiden.
- Registratie is triviaal – Het publiceren van een pakket op PyPI kost niets en duurt slechts enkele minuten, wat de drempel voor misbruik van de toeleveringsketen verlaagt.
Verdedigende stappen die daadwerkelijk werken
- Valideer elke dependency – Voordat je een nieuwe requirement toevoegt, zoek je in de pakketindex en bevestig je dat de naam overeenkomt met een bestaande, gedocumenteerde bibliotheek.
- Controleer met officiële bronnen – Vergelijk de voorgestelde naam met de repository van de leverancier of de officiële installatiehandleiding.
- Behandel nieuwe pakketten met een lage adoptie als een hoog risico – Markeer elke dependency met minder dan een handvol downloads of een zeer recente releasedatum voor handmatige controle.
Waar je op moet letten
De les is simpel: een AI-suggestie is geen garantie. Behandel elke nieuwe dependency als een niet-geverifieerde component van een derde partij, controleer de herkomst en houd de toeleveringsketen in de gaten voordat je een spookpakket in productie laat glippen.
