Snilld

Slopsquatting: Når AI’s hallucinationer bliver leverandører af malware

En ny angrebsvektor rammer softwareforsyningskæden: slopsquatting. AI-kodningsværktøjer kan foreslå opdigtede pakker, som angribere efterfølgende registrerer og fylder med skadelig kode. Det omgår klassisk typosquatting-beskyttelse og kræver strammere kontroller i udviklingsprocessen, fra policy for AI-forslag til CI/CD-gates og dependency-verifikation.

12. juli 2026 Peter Munkholm

Der er et nyt ord at lære i dag. Slopsquatting. Det lyder fjollet, men mekanismen er alt andet. Kort fortalt handler det om, at AI-kodningsassistenter kan finde på plausible, men ikke-eksisterende open source-pakker, som udviklere så installerer i god tro, hvorefter angribere registrerer netop de navne og fylder dem med malware. Det ligner typosquatting på afstand, men er det ikke. Og det er præcis derfor, mange nuværende værn ikke fanger det i tide.

Begrebet er beskrevet i detaljer af VentureBeat, som kobler LLM-hallucinationer med en ny supply-chain-angrebsflade, og understøttes af tekniske beskrivelser fra CapTech, der forklarer, hvordan modeller kan foreslå opdigtede dependencies under kodning. Risikoen ligger tidligt i udviklingscyklussen, hvor fart ofte trumfer tvivl. Det er her, skadelig kode kan få fodfæste, før nogen når at blinke.

Hvad slopsquatting er og hvorfor det ikke bare er typosquatting

Typosquatting kender de fleste: en ondsindet aktør registrerer en stavefejl af et populært pakkenavn og lokker på den måde install scripts forbi opmærksomme øjne. Modforanstaltninger eksisterer, fra strengere navnepolitikker til string-similarity-filtre i registrene. Slopsquatting rammer et andet sted, for her er der ikke tale om en stavefejl af noget kendt, men et helt opdigtet navn, som lyder rigtigt. Netop det gør automatiske filtre blinde, for hvad skal de sammenligne med, når referencen ikke findes.

VentureBeat beskriver flowet simpelt: modellen foreslår en dependency, udvikleren følger rådet, angriberen spotter navnet og registrerer pakken, og den skadelige last sniger sig ind ved næste install. CapTech uddyber, at AI-modeller ikke prioriterer sandhed, men sandsynlighed, og at de derfor med selvsikker mine kan opfinde navne, der ligner resten af økosystemet. Det er ikke en fejl i klassisk forstand, men en egenskab der bliver farlig, når output får direkte adgang til værktøjskæden.

Et mekanisk rullebånd i en lille hal stopper idet en nylig kasse glider frem; en tekniker bremses og vurderer situationen. Indigo og cyan signaler skaber en anspændt stemning.

Det konkrete angrebsflow trin for trin

Det starter typisk i editoren. En prompt om en funktion, et bibliotek til OAuth, måske en logging-adapter til et specifikt framework, og modellen svarer med kode plus en installationslinje, der passer ind i konteksten. Udvikleren kopierer kommandoen i hasten, og pipeline eller lokal maskine henter pakken fra registry, helt som planlagt. En angriber, der overvåger fællesmængden af foreslåede, men ikke-eksisterende navne, har imens registreret det samme navn med ondsindet indhold, ofte med tilforladelig README og minimalt API.

Resten er forudsigeligt, og netop det er problemet. Når en falsk pakke først ligger i dependency graphen, kan den køre postinstall-scripts, stjæle tokens, åbne bagdøre eller bare snipe konfigurationsfiler. CapTech beskriver specifikt risikoen for credential-tyveri og bagdøre, mens VentureBeat fremhæver, at det ligner almindelig brug, og derfor kan glide igennem reviews. I praksis er det værst, når det sker tidligt, for så kan skade brede sig nedstrøms uden tydelig audit trail.

Hvorfor nuværende værn snubler

Registries har lært af typosquatting og blokerer tydelige stavevarianter af populære pakker. Men slopsquatting opererer i tomrummet mellem kendt og ukendt. Et opdigtet navn har ingen historik at matche imod, og derfor rammer hverken similarity-filtre eller de manuelle processer, der beskytter spydspidserne i økosystemet. VentureBeat pointerer, at den slags værn ikke skalerer til fabrikation af nye navne, og den analyse giver mening.

Banner

Hvor kommer hallucinationerne fra

Hallucination i LLM-sammenhæng betyder, at modellen producerer et svar, der lyder rigtigt, uden at det er forankret i fakta. Den optimerer for sandsynlighed, ikke rigtighed, og i kodefeltet bliver det ofte til import-linjer eller install-kommandoer, der passer ind i konteksten, men ikke i virkeligheden. CapTech beskriver, hvordan modeller kan producere plausible pakkenavne, der ligner økosystemets mønstre, men som ikke eksisterer.

Der findes modtræk, men de har omkostninger. AWS fremhæver, at tilpasning og finjustering af modeller på domænespecifikke, kontrollerede datasæt kan sænke hallucinationer og gøre output mere forudsigelige i enterprise-brug. Det er plausibelt, men ikke en garanti. Effekten varierer med datasæt, mål og inferenssetup, og uden uafhængige målinger på netop kodeforslag bør man kalibrere forventningerne.

Tæt billede af et friskt tamper‑seal på en kasse, uden læsbar tekst; indigo og cyan lys fremhæver seglets kant.

Fra editor til produktion på to commit hops

Det interessante er den tidsmæssige kompression. En hallucineret pakke kan være i master på én eller to pull requests, hvis tempoet er højt og review-checks mere symbolske end reelle. I moderne CI/CD er det ikke unormalt, at builds kører automatisk ved dependency-bumps, og at deploy følger timer senere. Det øger produktivitet, men forstærker risikoen, når kilden til bumpet er en AI-suggestion uden provenance.

Når skaden først er i artefakterne, bliver oprydning tung. Rollback er muligt, men ikke altid rent, især hvis scripts har kørt ved install. Security-teams ender med at rekonstruere forløb via logs, PR-historik og registry-metadata, som ikke altid er komplette. I mellemtiden kan adgangstokens være eksfiltreret, og udgående trafik drukne i normal drift. Det er en realistisk hændelseskæde, givet hvordan pipelines typisk ser ud.

Tekniske værn der virker i dag

Der findes tiltag, som ikke kræver en total ombygning. Start med provenance: brug værktøjer til at spore oprindelse og signering af dependencies, og lad builds fejle, hvis der mangler tillidskæde. Fortsæt med SCA-scannere integreret i CI, der blokerer ukendte eller nyregistrerede pakker uden historik, indtil en menneskelig reviewer har godkendt dem. Supplér med least-privilege: lad ikke build-agenter have mere netværks- eller filsystemadgang end nødvendigt.

Der er tradeoffs. Strammere gates koster tid, og udviklere hader ventetid for små ændringer. Men tempo mod sikkerhed er et valg. Med få, klare regler kan man ramme et punkt, hvor nye dependencies kører i sandbox først, og hvor ingen AI-forslag kan tilføje pakker uden en dokumenteret kilde.

Policy for AI-forslag uden drama

En robust baseline-politik kan være enkel. Første regel: AI-genererede forslag må ikke introducere nye tredjepartsafhængigheder uden verificerbar kilde, versionspinning og manuel godkendelse. Anden regel: alle nye dependencies installeres i en isoleret container, hvor adfærd måles for netværkskald, filadgang og scripts. Tredje regel: alle installationslinjer, der stammer fra en assistent, logges og annoteres i PR’en, så reviewere kan se oprindelsen.

Derudover er whitelists stadig nyttige. For de store økosystemer giver det mening at kræve, at nye pakker enten er på en godkendt liste eller kommer fra kendte maintainers, man faktisk kan kontakte. Det dæmper innovation en smule. Det er pointen: ukendte komponenter skal have højere friktion, når kilden er en chat.

Slopsquatting: Når AI’s hallucinationer bliver leverandører af malware - billede 3

CI/CD som sikkerhedsventil

Pipeline-niveau er stedet, hvor man kan være konsekvent uden konstante påmindelser. Integrer SCA og licensscanning i build, og gør policy til kode: hvis pakken er yngre end X dage, eller hvis maintainer-historik er tom, så kræv ekstra reviewer. Brug også dependency signing, hvor det findes, og slå fejl på manglende signaturer for højrisiko-artefakter. Det er ikke perfekt, men det tvinger en pause ind, hvor slopsquatting ellers trives.

Overvej en simpel heuristik: score nyhedsværdi. En dependency, der ikke fandtes i går morges, bør ikke ryge i produktion i eftermiddag, medmindre der er tvingende grunde. Kombinér det med automatisk genereret SBOM for hvert build, så nye navne kan vælges ud til manuel gennemgang. Det føles som ekstra papirarbejde, men giver overblik, når noget går galt.

Banner

Modeltilpasning hjælper, men ikke alene

Tilpasning af modeller på interne, kuraterede datasæt kan reducere tomme forslag og øge andelen af kendte patterns og korrekte referencer. AWS beskriver færre hallucinationer som en mulig gevinst ved finjustering af foundation-modeller til domænet. Det er reelt, især hvis man fodrer modellen med organisationens egne approved dependencies og interne bibliotekskataloger. Men det løser ikke angreb, der udnytter hullerne i selve økosystemet.

Selv en veltrimmet model kan foreslå en pakke, der findes, men som senere bliver kompromitteret, eller som konflikter med policy. Derfor skal modelstyring kobles med pipeline-kontrol, ikke erstatte den. Tænk på tilpasning som en støddæmper, ikke som en bremse.

Hvad registries og platforme kunne gøre

Der er også et ansvar på platformsiden. Registries kunne score nye pakker på usandsynlighed, fx ved at se på tekstlige mønstre, der ligner LLM-output, eller ved at monitorere pludselige navneklumper på tværs af sprogøkosystemer. VentureBeat peger på, at nuværende værn mod typosquatting ikke skalerer til fabrikation, og det er svært at være uenig. Platforme kunne i det mindste forsinke publicering for højrisiko-navne, indtil ekstra kontroller er kørt.

Krav om signaturer fra kendte maintainers eller verifikation via forudgående commit-historik kunne også hjælpe, selv om det ikke fanger alt. Et karantænevindue for nye pakker, hvor registries proaktivt kører statiske og dynamiske checks, inden de bliver søgbare, er en anden mulighed. Det koster drift og vil give debat i open source-miljøerne, men industrien bliver nødt til at afklare, hvor ansvaret ender.

Sikkerhedsøkonomi og hvornår alarmklokken skal ringe

Ikke alle teams har samme risikoprofil. Hvis produktet er afhængigt af dybe kæder af tredjepartslagre, eller hvis det opererer i regulerede miljøer, bør baren være højere. En praktisk triggerliste kunne være: ny dependency i kernekode, manglende maintainer-historik, nylig oprettet pakke, eller forslag der kun kan spores til en AI-chatlog. To eller flere af de signaler bør udløse manuel godkendelse og sandbox-installation som standard.

For teams med tynd bemanding i sikkerhed er prioriteringen enkel, men hård. Først: CI-gates og SCA som standard. Derefter: AI-governance med logging og tydelige policies. Til sidst: overvej modeltilpasning eller intern hosting, hvis AI bruges intensivt. Den rækkefølge rammer bedst på effekt per arbejdstime.

Hvad kilderne siger klart, og hvad de ikke gør

VentureBeat definerer og beskriver mekanismen bag slopsquatting og problematiserer, at klassisk typosquatting-beskyttelse ikke dækker opdigtede navne. CapTech forklarer, hvordan LLM’er kan generere plausible pakkenavne under kodning. Der mangler derimod brede, kvantitative data om udbredelse og konsekvenser i produktion. Kilderne leverer ikke tal for, hvor ofte identiske hallucinerede navne foreslås på tværs af værktøjer, eller hvor mange reelle hændelser der kan tilskrives netop denne vektor. Det er målinger, der bør udføres, før nogen drager konklusioner om omfang.

Praktiske konsekvenser for drift og incident response

Drift skal forvente nye typer af tillidshændelser. Når en ny dependency viser skadelig adfærd efter deploy, skal playbooks kunne isolere build, rulle tilbage og fastholde artefakter til efterforskning. Det kræver, at SBOM er tilgængelig, at man kan pege på, hvornår en pakke kom ind, og at netværksregler kan skærpes hurtigt uden at vælte alt andet. Det er ikke sexet arbejde, men det gør forskellen mellem en uges rod og en times sved.

Runtime-detektion bør også kigge efter mærkelig adfærd fra helt nye pakker: uventede DNS-lookups, kryptiske POST-requests, skrivning til usædvanlige stier eller aggressive postinstall-scripts, der rører ved SSH-keys. Små, automatiske alarmer kan fange det, som reviews ikke nåede, især når udviklingens fokus ligger andetsteds. Kontakt registry-maintainers tidligt; de ser mønstre, som enkeltstående teams ikke gør.

Det her er måske lidt niche, men navne betyder noget

Navngivning i open source er kaotisk, og mønstre er stærke. Modeller opsuger dem og spytter dem ud igen med variationer, der lyder rigtige. Det giver falsk tryghed: en import, der ser hjemmevant ud, glider let igennem. Det kan føles småligt at kræve kilde for en tilsyneladende enkel util, men netop de små valg åbner døren. Derfor skal kontrollerne være automatiske og kedelige.

Tre korte skridt at tage nu

Først: stop blind accept af AI-forslag, der introducerer dependencies. Kræv dokumenteret kilde, versionspinning og manuel godkendelse. Dernæst: implementer CI-gates med SCA, dependency signing hvor muligt, og sandbox-installation af nye pakker før merge. Til sidst: overvej modeltilpasning eller isolering, især hvis AI er dybt integreret i udviklingsarbejdet — som supplement, ikke erstatning.

Det koster tempo, og der kommer muligvis et par sure miner den første uge. Alternativet er værre: et usynligt hul tidligt i kæden, der siver ud i drift på måder, der er dyre at rulle tilbage. Man opdager først forskellen, når man sidder med det i hænderne — og dér vil man ønske, at gatede builds havde været standard fra start.

Kilder

    Gør brugeroplevelsen bedre.
    Hvilket firma arbejder du for?